通过 VPN 的 Jconsole

Ric*_*mon 3 monitoring vpn java iptables openvpn

我正在尝试使用 jconsole 监视远程 jvm。我需要通过 OpenVPN 网络进行这种监控,这可能是我的问题的一部分。这是网络配置:

 Server A         Server B         Server C
 Jconsole                             JVM
10.171.0.1 <---> 10.170.0.1 <---> 10.170.0.14
Run Code Online (Sandbox Code Playgroud)

当所有服务器都在不同的物理网络上时,它不起作用。当Server AServer C在同一个物理网络中时,它可以工作。在这两种情况下,traceroute 都是在网络配置中描述的,看起来像这样:

traceroute to 10.170.0.14 (10.170.0.14), 64 hops max, 52 byte packets
 1  10.170.0.1 (10.170.0.1)  114.440 ms  109.152 ms  109.581 ms
 2  10.170.0.14 (10.170.0.14)  234.207 ms  228.535 ms  229.630 ms
Run Code Online (Sandbox Code Playgroud)

关于如何解决这个问题的任何想法?

[编辑]

所有系统都是linux。

Jmx 远程参数为:

-Dcom.sun.management.jmxremote.port=8086 
-Dcom.sun.management.jmxremote.ssl=false 
-Dcom.sun.management.jmxremote.authenticate=false
Run Code Online (Sandbox Code Playgroud)

服务器Server B (10.170.0.1)用作两个网络之间的桥梁和防火墙。防火墙10.170.0.1如下:

*filter
:INPUT DROP [1000:900000]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A INPUT -s 127.0.0.1 -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 389 -j ACCEPT
-A INPUT -p udp -m udp --dport 1194 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8086 -j ACCEPT
-A INPUT -p udp -m udp --dport 8086 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT 
-A INPUT -p icmp -m icmp --icmp-type 13 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT 
-A INPUT -p icmp -m icmp --icmp-type 30 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT 
-A FORWARD -s 10.171.0.1 -d 10.170.0.0/16 -j ACCEPT
-A FORWARD -s 10.171.0.3 -d 10.170.0.0/16 -j ACCEPT
-A FORWARD -s 10.170.0.0/16 -d 10.171.0.0/16 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-port-unreachable 
-A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT 
COMMIT
Run Code Online (Sandbox Code Playgroud)

Ric*_*mon 5

很久没有问这个问题了,但由于@mark 表现出了一些兴趣,这就是我最终解决它的方法。问题是 JVM 绑定到本地 IP 地址而不是 VPN IP 地址。这一切都通过添加:

-Djava.rmi.server.hostname=10.170.0.14
Run Code Online (Sandbox Code Playgroud)

到我想监控的服务器。