当JMX客户端连接时,启用JMX的Java应用程序似乎打开了一个随机的高阶端口 当JMX客户端连接时,启用JMX的Java应用程序似乎打开了一个随机的高阶端口

当JMX客户端连接时,启用JMX的Java应用程序似乎打开了一个随机的高阶端口 当JMX客户端连接时,启用JMX的Java应用程序似乎打开了一个随机的高阶端口,java,random,port,jmx,firewall,Java,Random,Port,Jmx,Firewall,我已经成功地配置了一个支持helloworld JMX的程序,并且可以从远程位置使用jconsole JMX客户端连接到它 当我尝试打开iptables时,我注意到当客户端登录时会建立一个随机的高阶端口。最后,我想监控防火墙隔离网段中的Java应用程序。我们可以控制随机端口打开的范围吗 如果有人建议,我会将此问题移至serverfault.com 可以控制RMI使用的端口。见: 这需要代码和命令行参数。据我所知,没有代码就无法做到这一点(尽管代码显然可以打包在不同的jar中)。因为Java 7u

我已经成功地配置了一个支持helloworld JMX的程序,并且可以从远程位置使用jconsole JMX客户端连接到它

当我尝试打开iptables时,我注意到当客户端登录时会建立一个随机的高阶端口。最后,我想监控防火墙隔离网段中的Java应用程序。我们可以控制随机端口打开的范围吗


如果有人建议,我会将此问题移至serverfault.com

可以控制RMI使用的端口。见:


这需要代码和命令行参数。据我所知,没有代码就无法做到这一点(尽管代码显然可以打包在不同的jar中)。

因为Java 7u25可以使用系统属性更改RMI端口:

-Dcom.sun.management.jmxremote.rmi.port=1234

有关详细信息,请参阅。

随机第三个端口似乎是预期行为

顺便说一句,这个第三个临时端口也可以控制-

解决方法是将RMI端口设置为与JMX端口相同;那么防火墙上只需要打开一个端口

例如:

-Dcom.sun.management.jmxremote.port=8989
-Dcom.sun.management.jmxremote.rmi.port=8989

请参见

端口是在客户端还是服务器上建立的?如果在客户机上,我想它是绑定到服务器端口的客户机端口……您提出了一个有趣的问题。JMX客户端通过服务器定义的端口连接到JMX服务器。发生这种情况后,另一个(随机?)端口打开并用于通信。因此,此端口位于客户端或服务器上?此随机端口在承载启用JMX的应用程序(服务器)的服务器上打开。我发现这篇博文也很有帮助