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 A和Server 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)
很久没有问这个问题了,但由于@mark 表现出了一些兴趣,这就是我最终解决它的方法。问题是 JVM 绑定到本地 IP 地址而不是 VPN IP 地址。这一切都通过添加:
-Djava.rmi.server.hostname=10.170.0.14
Run Code Online (Sandbox Code Playgroud)
到我想监控的服务器。