使用SOCKS将jconsole连接到Amazon EC2

我正在尝试使用jconsole通过使用SSH创build的socks代理来查看EC2实例的统计信息。 我已经尝试了下面的链接中提到的各种脚本,但无济于事:

http://simplygenius.com/2010/08/jconsole-via-socks-ssh-tunnel.html

http://gabrielcain.com/blog/2010/11/02/using-ssh-proxying-to-connect-jconsole-to-remote-cassandra-instances/

我正在运行ssh -f -ND 8123 myuser@mymachine并validation至lessFirefox通过它作为代理。

然后我跑

 jconsole -J-DsocksProxyHost=localhost -J-DsocksProxyPort=8123 service:jmx:rmi:///jndi/rmi://ec2-XX-XX-XXX-XXX.compute-1.amazonaws.com:8080/jmxrmi 

我在我的EC2实例上运行netstat -n,并看到由我的机器创build的连接。 然而,连接最终消失,我得到了我的SSH隧道“通道2:打开失败:连接失败:操作超时”。

我已经通过安全组打开了jmx端口,并且已经检查了EC2实例上的端口以确保它是开放的(通过telnet连接到它)。

我不确定接下来要看的地方。 是否有一些属性在sshd_config或ssh_config我需要启用隧道? 或在Mac OS X中的任何东西?

我觉得自己是一个严肃的noob,但系统pipe理真的不是我的强项。 我花了几个小时,不能得到这个工作。

在您的Cassandra(v0.8.5)节点上,查找$CASSANDRA_HOME/bin/conf/cassandra-env.sh的以下行:

 # add this if you're having trouble connecting: JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=<public name>" 

确保第二行没有注释,并设置为ec2实例的公共DNS名称