zoukankan      html  css  js  c++  java
  • 记一个JConsole远程连接异常的问题(java版本1.8)

    这里只说明不配置密码的方法

    局域网liunx中tomcat - catalina.sh配置文件

    JAVA_OPTS="-server -Xms1024m -Xmx1024m -Xss256k -XX:PermSize=128m -XX:MaxPermSize=256m"
    JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote"
    JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.port=19999"
    JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.authenticate=false"
    JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.ssl=false"

    死活连接不上,网上大多数都是说是hosts配置文件的问题,我这边尝试了各种方法

    网上查的资料全部都是说hosts文件的问题

    我这边获取

    hostname -i

    得到的就是内网ip(192.168.2.13)

    如果不是的朋友可以用以下代码临时修改(重启失效)

    hostname 192.168.2.13

    但是我还是连接不上,又尝试在jvm启动的时候配置,在catalina.sh中增加配置

    JAVA_OPTS="$JAVA_OPTS -Djava.rmi.server.hostname=192.168.2.13"

    但是还是不行,最后在茫茫文章中看到有人指定了另一个端口

    -Dcom.sun.management.jmxremote.rmi.port=19999

    终于成功了!

    查了相关资料,应该是java7之后做出了修改(以下文字来源于网络)

    不过在我的工作做,此时发现仍然不能再远程访问,查询了相关资料后,有可能是防火墙的原因屏蔽了相关接口。在Java启动时,JMX会绑定一个接口,RMI也会绑定一个接口,在复杂网络环境下,有可能你通过打开防火墙允许了JMX端口的通过,但是由于没有放行RMI,远程连接也是会失败的。

    这是因为JMX在远程连接时,会随机开启一个RMI端口作为连接的数据端口,很有可能这个端口会被防火墙给阻止,以至于连接超时失败。好在在Java7u25版本后可-Dcom.sun.management.jmxremote.rmi.port=端口号来定死这个端口,好消息是,你可以将这个端口和jmx.port的端口设置成一个端口,这样防火墙策略就只需要同行一个端口就可以了。



    参考资料:

    https://www.jianshu.com/p/414647c1179e

    https://www.jianshu.com/p/b7790c9eabff

    https://www.linuxidc.com/Linux/2015-02/113420.htm

  • 相关阅读:
    5-1
    浅谈sql中的in与not in,exists与not exists的区别
    理解SQL SERVER中的分区表
    SQLSERVER SQL性能优化
    SQL Server Profiler使用方法
    SQL Server中的三种Join方式
    执行计划
    执行计划sql
    INSERT INTO SELECT
    设计模式学习笔记-单例模式
  • 原文地址:https://www.cnblogs.com/oldboyooxx/p/12705192.html
Copyright © 2011-2022 走看看