java jmx连接不上_记一次JMX远程连接失败的问题

在测试服上遇到一个堆内存问题,尝试使用jvisualvm通过JMX远程连接,但连接失败。检查了JVM参数和服务器端口,发现一切正常。进一步排查发现JMX服务器还会监听额外的随机端口。通过查找服务PID和相关端口,确定了这两个随机端口,并在防火墙中开放,最终成功连接JMX进行远程诊断。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今日测试服上发现了一个堆内存问题,想要用jvisualvm远程连接jmx过去查看,但是发现连接失败了。e00c43839a9723b9f136667fc7733e2f.png

我赶紧查看服务器上的jvm参数,参数正常——-Djava.rmi.server.hostname=192.168.12.17 -Dcom.sun.management.jmxremote.port=18886 -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.managementote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false

接着,我去查看了一下linux服务器上的端口开放状态,jmx用的18886端口是开放的,没问题。然后我又在本地telnet到服务器的18886端口,也没问题。这就奇怪了……

后来查了一下,才知道原来除了JMX server指定的监听端口号外,JMXserver还会监听一到两个随机端口号。那就得找出这两个端口号,再到防火墙开放端口了。

操作如下——###找出服务所占用的pid

ps -ef|grep 服务名

###找出pid相关的监听端口

netstat -tupln |grep pid6856434b777ae1a6c7897e8c86e65cc8.png

图中,8091是我的服务端口,18886是jmx的端口,那么剩下两个就是随机监听端口了。###开放防火墙端口

firewall-cmd --zone=public --add-port=32816/tcp --permanent

firewall-cmd --zone=public --add-port=43235/tcp --permanent

firewall-cmd --reload

如此,再重新连接jmx,发现可以正常访问了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值