Java Can';无法连接到远程JMX主机

Java Can';无法连接到远程JMX主机,java,linux,jmx,visualvm,Java,Linux,Jmx,Visualvm,使用VisualVM,我可以看到连接远程主机的两种类型 杰斯塔德 JMX 所以我尝试使用JMX,我学习了很多教程,但到目前为止运气不佳 目前,有我的桌面和一个运行java服务器应用程序的linux设备。 我试图在桌面上设置VisualVM客户机,以查看在linux机器上运行的java应用程序 我在start.sh脚本上为linux上的JAVA应用程序添加了以下JAVA_OPTS脚本 JMX_PORT="-Dcom.sun.management.jmxremote.port=33333" <

使用VisualVM,我可以看到连接远程主机的两种类型

  • 杰斯塔德

  • JMX

  • 所以我尝试使用JMX,我学习了很多教程,但到目前为止运气不佳

    目前,有我的桌面和一个运行java服务器应用程序的linux设备。 我试图在桌面上设置VisualVM客户机,以查看在linux机器上运行的java应用程序

    我在start.sh脚本上为linux上的JAVA应用程序添加了以下JAVA_OPTS脚本

    JMX_PORT="-Dcom.sun.management.jmxremote.port=33333"  <-- allowed on firewall
    JMX_SSL="-Dcom.sun.management.jmxremote.ssl=false"
    JMX_AUTH="-Dcom.sun.management.jmxremote.authenticate=false"
    JMX_IP="-Djava.rmi.server.hostname=xx.xx.xx.xx"   <-- where linux box NAT ip.
    

    JMX_PORT=“-Dcom.sun.management.jmxremote.PORT=33333”最简单的方法是在服务器和桌面之间使用openvpn隧道,而不是清除防火墙和NAT。我是这样做的,它工作起来很有魅力。

    我没有其他线索可以解决这个问题,所以最终使用了ssh隧道

  • 我在远程主机上的java应用程序启动脚本中添加了jmx运行选项。 (jmxremote.port=33300,ssl为false,身份验证为false,主机名。)
  • 桌面上的ssh-d33300连接到远程主机
  • 使用system\u socks\u proxy=localhost:33300-J-Djava.net.useSystemProxy=true启动jvisualvm
  • 现在,使用VisualVm上的AddNewJMX连接成功添加了远程主机


    参考

    我只会使用一个ssh隧道,最简单、最简单painless@RC. 谢谢你的评论,但端口不是这里的主要问题,因为它是一个非常封闭的网络,我必须遵循特定的程序。归根结底,我对JMX连接和VisualVM的工作方式没有清楚的了解。由于这些问题,我不喜欢ssh隧道。使用openvpn,您可以使用UDP,并避免TCP over TCP问题。