JMX/RMI 的连接端口问题
问题
有个在某个特殊网络区域的tomcat的jmx链接不通, 用vistualvm链接不上。该区域防火墙限定了端口范围。
于是按照tomcat的文档增加了jdk jmx port的配置。
如下:
-Dcom.sun.management.jmxremote.port=6061
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=true
-Dcom.sun.management.jmxremote.password.file=$CATALINA_BASE/conf/jmxremote.password
-Dcom.sun.management.jmxremote.access.file=$CATALINA_BASE/conf/jmxremote.access
然后仍然不通。
这时可以看到
解决:
JMX/RMI
有些调用实际上是rmi调用,因此两个端口都要打通
配置修改为
-Dcom.sun.management.jmxremote.port=6061
-Dcom.sun.management.jmxremote.rmi.port=6061
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=true
-Dcom.sun.management.jmxremote.password.file=$CATALINA_BASE/conf/jmxremote.password
-Dcom.sun.management.jmxremote.access.file=$CATALINA_BASE/conf/jmxremote.access
通过netstat 可以看到
tcp6 0 0 :::6061 :::* LISTEN
tcp6 0 0 xxxxx:6061 xxxx:59838 ESTABLISHED
tcp6 0 0 xxxxx:6061 xxxx:58744 ESTABLISHED
参考:
http://stackoverflow.com/questions/20884353/why-java-opens-3-ports-when-jmx-is-configured