查看内网主机的JVM信息
Java程序部署在没有公网IP的主机上,登陆该主机需要跳板机。
方法一
Java程序启动参数
启动参数:
-Djava.rmi.server.hostname=localhost
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=32345
-Dcom.sun.management.jmxremote.rmi.port=32345
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
注:-Djava.rmi.server.hostname=localhost
SSH做端口转发
$ ssh -L 32345:localhost:32345 remote-private-host
查看 JVM 信息
jconsole
$ jconsole service:jmx:rmi:///jndi/rmi://localhost:32345/jmxrmi
使用 visualvm
VisualVM -> 添加JMX连接,填入:localhost:32345
方法二
Java程序启动参数
添加类似如下的Java参数:
-Dcom.sun.management.jmxremote.port=32345
-Dcom.sun.management.jmxremote.rmi.port=32345
-Djava.rmi.server.hostname=<remote-ip-address>
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
本地创建 SSH tunnel
创建 ssh tunnel:
$ ssh -fN -D 4444 user@firewalled-host
查看JVM信息
使用jconsole
$ jconsole -J-DsocksProxyHost=localhost -J-DsocksProxyPort=4444 service:jmx:rmi:///jndi/rmi://localhost:32345/jmxrmi -J-DsocksNonProxyHosts=
使用 visualvm
VisualVM -> Preferences… -> 网络 -> 代理设置,手动设置代理,设置 SOCKS代理:localhost
,端口:4444
(根据ssh tunnel端口指定)。然后,添加JMX连接,填入:localhost:32345