首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JMX开放端口1099

JMX开放端口1099
EN

Stack Overflow用户
提问于 2014-01-13 02:44:34
回答 1查看 2.3K关注 0票数 0

我使用CentOS 6.5Jetty 9.1.0.v20131115。我使用Jetty的JMX功能。

我希望只有在运行的计算机(localhost,或127.0.0.0/8)中才能访问JMX,而不能从外部访问JMX (例如,JMX不能从public.example.com访问)。

因此,我将Jetty的JMX主机配置为使用jetty.jmxrmihost=localhost而不是通配符jetty.jmxrmihost=0.0.0.0

然而,我的Jetty服务器实例仍然可以从“外部”访问,允许任何人通过JMX连接到我的Jetty服务器。

我需要配置什么才能让Jetty只听那些源自localhost的JMX连接

下面是与本主题相关的Jetty配置文件:

文件${jetty.base}/start.d/jmx.ini

代码语言:javascript
复制
--module=jmx
#jetty.jmxrmihost=localhost # I tried this one, but it didn't work either
jetty.jmxrmihost=127.0.0.1
jetty.jmxrmiport=1099

文件${jetty.base}/start.d/jmx-remote.ini

代码语言:javascript
复制
--module=jmx-remote
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-16 01:00:31

从问题提出的方式来看,这似乎不是Jetty/JMX问题,而是防火墙问题--您想要的是阻止不需要的外部流量到此服务器上的JMX端口。

如果您有权限并且愿意这样做,您将希望从/etc/sysconfig/iptables中删除打开JMX端口的任何规则(在本例中是1099)。这样的规则如下所示:

代码语言:javascript
复制
[0:0] -A INPUT -s SOME_IP_SUBNET -p tcp -m tcp --dport 1099 -j ACCEPT

或者,另一方面,您可能希望只对特定的子网(例如公司的子网)启用JMX监视,此时您需要添加以下内容:

代码语言:javascript
复制
[0:0] -A INPUT -s MY_IP_SUBNET_HERE -p tcp -m tcp --dport JMX_PORT -j ACCEPT

,分别用您自己的IP子网和JMX端口替换MY_IP_SUBNET_HERE和JMX_PORT。

我自己还没有为iptables编写过很多规则,所以请考虑上面的示例,而不一定是您所需要的确切语法。*nixCraft提供了一个处理iptables/sysctl的基本指南,它还介绍了如何在不编辑文件的情况下修改规则(我通常只是修改文件)。

两个注意事项,如果您使用修改iptables文件的路线:

  • 确保重新启动iptables (/etc/init.d/iptables restartservice iptables restart)
  • /sbin/sysctl -p 重新启动iptable之后调用。重新启动iptables将清除sysctl.conf中的任何自定义规则,调用sysctl -p将恢复这些规则。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21083080

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档