【问题标题】:The JVM option jmxremote.local.only=true does not work properlyJVM 选项 jmxremote.local.only=true 不能正常工作
【发布时间】:2012-10-08 10:00:15
【问题描述】:

我编写了一个应由 JMX 客户端控制的批处理 Java 7 应用程序。 JMX 服务已启动并正在运行,我可以使用我机器上的 jConsole 连接到它。

我设置选项 -Dcom.sun.management.jmxremote.local.only=true 以避免任何传入连接,但来自 127.0.0.1 的连接除外。

但是...当我尝试从另一台计算机连接时,我的连接没有被过滤掉,并且我能够远程访问 JMX。

这里是java调用:

java -Dcom.sun.management.jmxremote ^
 -Dcom.sun.management.jmxremote.port=7000 ^
 -Dcom.sun.management.jmxremote.local.only=true ^
 -Dcom.sun.management.jmxremote.authenticate=false ^
 -Dcom.sun.management.jmxremote.ssl=false ^
 -cp lib/*;hns-consumer.jar it.andrearota.com.Main %1

似乎尚未考虑该选项。

有什么帮助吗?

【问题讨论】:

  • 如果您省略该选项,会有什么行为?根据文档,默认值为true,仅允许本地连接,因此一开始就不需要该选项。
  • 我认为设置端口可能会触发'远程'操作
  • 同意@DaDaDom,这个选项的默认值应该是true,见oracle.com/technetwork/java/javase/compatibility-417013.html
  • @BrianAgnew 根据docs.oracle.com/javase/1.5.0/docs/guide/management/… 你是对的:... setting this property publishes an additional RMI connector in a private read-only registry at the specified port using a well known name, "jmxrmi".
  • @BrianAgnew 我必须设置端口,因为我想看到 JMX 注册表暴露在一个众所周知的端口上。

标签: java jmx


【解决方案1】:

我正在寻找一种方法来限制 JMX 服务器只接受本地主机上的请求,并偶然发现了这个问题。现在可以使用标志-Dcom.sun.management.jmxremote.host=localhost。请参阅 similar question 上的 this comment

【讨论】:

    猜你喜欢
    • 2021-05-22
    • 1970-01-01
    • 2014-07-17
    • 2019-04-27
    • 2012-07-12
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多