java - 启用 JMX 的 Tomcat7 打开 2 个额外的随机监听端口

标签 java security tomcat7 port jmx

我在 Centos6 上使用 JDK7 运行 Tomcat7。 我使用以下选项启用 JMX:

CATALINA_OPTS="${CATALINA_OPTS} -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9123 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.local.only=true"

不幸的是,当我检查打开了哪些端口时,我发现了 2 个额外的随机端口:

netstat -plunt | grep java
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
tcp        0      0 :::60555                            :::*                LISTEN      22752/java
tcp        0      0 ::ffff:127.0.0.1:8080               :::*                LISTEN      22752/java
tcp        0      0 :::9123                             :::*                LISTEN      22752/java
tcp        0      0 :::40867                            :::*                LISTEN      22752/java

我想 JMX 应该多开一个端口 JMX enabled Java application appears to open a random high order port when JMX client connects

为什么 Tomcat 中的 JMX 多开 2 个端口?

如何配置这些端口?

如果我配置 -Dcom.sun.management.jmxremote.local.only=true 是否意味着其他端口也可以仅使用本地访问来访问?

如何配置 ::ffff:127.0.0.1 出现在 JMX 打开的所有端口之前?

最佳答案

您可以使用 Tomcat 的 JMX Remote Lifecycle Listener这允许修复 JMX/RMI 服务器使用的端口。
JMX 远程生命周期监听器允许配置以下端口:

  • rmiRegistryPortPlatform - JMX/RMI 注册表使用的端口 对于平台 MBean。应该使用这个代替 com.sun.management.jmxremote.port 系统属性
  • rmiServerPortPlatform - 要使用的端口 通过平台 JMX/RMI 服务器。

此外,您可以配置 useLocalPorts 属性 - 如果使用这些端口的任何客户端都必须使用本地端口连接到 JMX/RMI 服务器。

请注意,此监听器需要将 catalina-jmx-remote.jar 放在 $CATALINA_HOME/lib 中。这个jar可以在二进制下载区的extras目录中找到。

关于java - 启用 JMX 的 Tomcat7 打开 2 个额外的随机监听端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20699068/

相关文章:

java - 如何使用 Sikuli-script + Java + Eclipse IDE 创建适用于任何平台的可执行 (.exe) 文件

Java并行多个任务超时

security - 保护 JSF 应用程序的安全

mysql - 如何将 Tomcat 上运行的 Spring Mvc Hibernate MySql 应用程序推送到 Bluemix 云?

eclipse - 中文开发者通知 : run tomcat 7. 0 使用eclipse juno抛出异常

java - Stormpath idSite 环境身份验证问题

java - 从 MouseListener 查找图 block

c# - 安全地存储共享图片以在 Web 应用程序中使用

php - 在 PHP 文件中存储加密 key 的安全性

java - 尝试通过 SOAP 网络服务创建或访问用户对象时,PermissionChecker 未初始化 Liferay 异常