gpt4 book ai didi

java - 无法远程连接jmx端口

转载 作者:行者123 更新时间:2023-12-02 10:08:10 26 4
gpt4 key购买 nike

我正在尝试远程连接到 jmx 端口,但即使该端口打开,我似乎也无法连接到它。它是一个在 Nomad 工作服务器上的容器中运行的 java 进程。它在 29406 上运行。

以下是 netstat 显示的内容:

netstat -tulpn | grep 29406
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp 0 0 10.137.2.166:29406 0.0.0.0:* LISTEN -
udp 0 0 10.137.2.166:29406 0.0.0.0:* -

这就是 /etc/hosts 中的内容

cat /etc/hosts
127.0.0.1 localhost

# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

我已在服务器上下载了 jmxterm 来尝试连接到它,并注意到一个有趣的行为。当我尝试使用 localhost 连接到端口时,我得到以下信息:

#RuntimeIOException: Runtime IO exception: Failed to retrieve RMIServer stub: javax.naming.ServiceUnavailableException [Root exception is java.rmi.ConnectException: Connection refused to host: localhost; nested exception is: 
java.net.ConnectException: Connection refused (Connection refused)]

当我使用自己的 IP 地址时,它似乎可以工作:

$>open 10.137.2.166:29406
#Connection to 10.137.2.166:29406 is opened
$>

很想了解为什么当我在服务器本身上运行时 localhost 不起作用......

我让jconsole(在我的笔记本电脑上运行)连接到它的唯一方法是使用如下所示的 ssh 隧道:

ssh -Nf -D 7777 10.137.2.166
jconsole -J-DsocksProxyHost=localhost -J-DsocksProxyPort=7777 service:jmx:rmi:///jndi/rmi://10.137.2.166:29406/jmxrmi -J-DsocksNonProxyHosts=

我觉得我应该能够在不创建隧道的情况下连接到它,但不确定为什么不能。如果我从笔记本电脑本地运行 telnet 到主机,连接似乎确实打开了...

telnet 10.137.2.166 29406
Trying 10.137.2.166...
Connected to 10.137.2.166.
Escape character is '^]'.

最佳答案

成功的 JMX 握手

  1. jmx 服务器应该可以通过外部主机名使用(还应该通过 java.rmi.server.hostname 系统属性在服务器 jvm 上声明)

  2. 除了一个开放端口(可以通过 com.sun.management.jmxremote.rmi.port jvm 属性显式声明)之外,jmx 服务器还会随机选择另一个用于新 jmx 的端口联系。这是一个很大的问题,因为您无法预见特定端口以将其排除在服务器的防火墙限制之外,因此隧道是必要的。

关于java - 无法远程连接jmx端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59403650/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com