【问题标题】:Force JMX of Apache ActiveMQ to only be accessible from localhost强制 Apache ActiveMQ 的 JMX 只能从 localhost 访问
【发布时间】:2021-05-12 13:27:15
【问题描述】:

我有一个运行 Apache ActiveMQ 的 RHEL6 服务器,但我找不到禁用远程访问 JMX 的方法。 我可以完全禁用 JMX,但这会限制 ActiveMQ 的功能,它使用 JMX 访问代理以获取状态信息,或传达关闭请求(ActiveMQ 回退到 SIGKILL!)。 我想让 ActiveMQ 可以通过 JMX 访问,但只能从 localhost 访问。

根据Apache's website,默认情况下应该禁用远程连接,但我可以从其他机器连接到默认的 1099 端口。据我所知,JMX 的设置保留为默认设置。

我知道一些类似的问题,但建议的解决方案对我没有用,尤其是:

  • 添加 -Dcom.sun.management.jmxremote.host=localhost 和/或 -Dcom.sun.management.jmxremote.local.only=true 没有帮助
  • 添加 -Djava.rmi.server.hostname=localhost 也无济于事

尽管这个 solution 和一些 cmets 似乎表明我正在运行的 Java 版本 (>8u102) 修复了一些已知问题。

一些解决方案谈到有必要切换到“编码”(例如,thisthis),但我不清楚如何将这种方法与 ActiveMQ 一起使用。

【问题讨论】:

    标签: java activemq jmx


    【解决方案1】:

    在 bin/env(Apache ActiveMQ 构建)中添加:

    -Dcom.sun.management.jmxremote.host=127.0.0.1
    

    然后观察JMX端口绑定only到本地ip

    % netstat -na | grep 1099
    tcp4       0      0  127.0.0.1.11099        *.*                    LISTEN     
    

    【讨论】:

    • 我又试了一次,还是不行。 netstat 显示本地地址0.0.0.0:1099 和国外地址0.0.0.0:*
    猜你喜欢
    • 1970-01-01
    • 2013-03-28
    • 2010-12-02
    • 2011-07-17
    • 2023-04-04
    • 2018-01-20
    • 1970-01-01
    • 2014-04-20
    • 1970-01-01
    相关资源
    最近更新 更多