【发布时间】:2015-09-03 12:25:19
【问题描述】:
我在想使用 Java Mission Control 监控的某个远程服务器上运行了一个 Java 进程(在 Java 7 上)。但是,JMC 无法连接,尽管我可以使用 port jmx 远程端口(此处为 12345,见下文)远程登录到服务器。
远程 java 进程启动于
-Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.port=12345
-Djava.rmi.server.hostname=<some ip address>
-Dcom.sun.management.jmxremote.authenticate=false
这些对我来说似乎是正确的价值观。 12345端口已经在防火墙上开放了,但是我怀疑rmi服务器端口被防火墙屏蔽了。
因此,我的问题是:有没有办法(在服务器上使用 netstat 或者甚至从客户端使用 telnet)来确定 java 进程当前在服务器上使用哪个 rmi 服务器端口? (使用 netstat,我看到 java 进程使用了几个端口。但是,我不知道哪个是 rmi 端口。)
【问题讨论】:
-
如果防火墙阻止它,您将获得连接超时。如果您有其他问题,请向我们倾诉。您的实际问题的答案是阅读您已经完成的配置。
-
江铃的输出不是很能说明问题。我只说“无法连接”左右。而且需要很长时间。所以,是的,我猜这是连接超时...... :)
-
关于配置:据我了解,有一个jmx端口和一个rmi端口。上面的配置只指定了一个 jmx 端口,我想知道是否有某种方法可以找出 rmi 端口(使用 netstat 给了我一些我的 java 进程正在监听的端口)。
-
好的。现在我刚刚打开了我的 java 进程正在监听的所有端口,JMC 现在可以连接。知道确切的 RMI 端口仍然很高兴。将尝试 dave_thompsons 的建议。