gpt4 book ai didi

Java JMX 拒绝与非常奇怪的案例的连接

转载 作者:行者123 更新时间:2023-11-28 22:35:43 24 4
gpt4 key购买 nike

我在某些服务器上启用 JMX 时确实遇到了一致的问题。似乎虽然这对某些人有效,但其中一些人以一种奇怪的方式拒绝连接。

端口打开,我可以从本地主机或其他主机远程登录到它。

这是我在尝试连接到其中一个有故障的 jmxterm 时得到的结果。

如果端口打开会发生这种情况:

$>open 10.80.16.195:8091
#RuntimeIOException: Runtime IO exception: Connection refused to host: 127.0.0.1; nested exception is:
java.net.ConnectException: Connection refused

如果端口真的关闭了,就会发生这种情况:

$>open 10.80.16.195:9999
#RuntimeIOException: Runtime IO exception: Failed to retrieve RMIServer stub: javax.naming.ServiceUnavailableException [Root exception is java.rmi.ConnectException: Connection refused to host: 10.80.16.195; nested exception is:
java.net.ConnectException: Connection refused]

以下是用于连接以启动 JVM(tomcat)的参数:/usr/lib/jvm/java-7-oracle/bin/java -Djava.awt.headless=true -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8091 -Dcom. sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=10.80.16.195 -classpath/opt/Confluence.5/bin/bootstrap.jar -Dcatalina.base=/opt/Confluence.5 -Dcatalina.home=/opt/Confluence.5 org.apache.catalina.startup.Bootstrap 启动

java -version
java version "1.7.0_51"
Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)

我观察到其他人也有类似的提示,但没有人为此提供明确的原因。它不太可能是 JMX 客户端,因为我使用了 3-4 个客户端,而且它们似乎都有相似的行为,在某些服务器上工作而在其他服务器上失败。

我知道 /etc/hosts 可能与此相关,因为我记得在某些情况下看到 127.0.1.1 报告,而且我知道 Debian 机器确实有此设置。

127.0.0.1 localhost
127.0.0.1 dowa-01.my.domain.com dowa-01
# by default the previous line had 127.0.1.1 instead and this was causing problems with JMX

# 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

正如您可能观察到的那样,JMX 绑定(bind)到机器的可路由地址,这是因为如果您手动指定 IP,这是允许来自外部的连接的唯一方法。

现在有什么问题?

最佳答案

在服务器的/etc/hosts 中,我将替换这一行:

127.0.0.1 dowa-01.my.domain.com dowa-01

有了这个:

10.80.16.195 dowa-01.my.domain.com dowa-01

服务器上的 JVM 将尝试解析本地主机的 IP 地址并获得 127.0.0.1。我的猜测是 JMX 然后只接受 127.0.0.1 上的远程连接,这会导致问题。相反,您希望 Java 识别真正的 IP 并监听它。

关于Java JMX 拒绝与非常奇怪的案例的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21604892/

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