我有一个在某个 IP ( ) 上运行 OpenVPN 服务器的远程 VPS my.vps.host.ip
。此外,我还有一个运行 OpenVPN 客户端的 Raspberry Pi 路由器 (RaspPI),它将连接到它的所有流量路由wlan0
到该 OpenVPN 服务器。问题是:从通过 连接到 Raspbery Pi 路由器的任何设备wlan0
,我都可以 ping 除 之外的任何有效 IP 地址my.vps.host.ip
。因此,我无法使用 连接到 VPS ssh
。
Kernel IP routing table (RaspPI)
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.8.0.1 128.0.0.0 UG 0 0 0 tun0
0.0.0.0 192.168.31.1 0.0.0.0 UG 0 0 0 eth0
10.8.0.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0
128.0.0.0 10.8.0.1 128.0.0.0 UG 0 0 0 tun0
my.vps.host.ip 192.168.31.1 255.255.255.255 UGH 0 0 0 eth0
192.168.17.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0
192.168.31.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
通过 VPN 连接的设备跟踪路由得到以下结果:
traceroute to my.vps.host.ip, 64 hops max
1 192.168.17.1 0,859ms 0,928ms 0,845ms
2 * * *
从 RaspPI 本身my.vps.host.ip
可以 ping 通。RaspPI 和 VPS 上的防火墙都已禁用。如何才能让my.vps.host.ip
VPN 客户端可以访问?
答案1
我仍然不知道上述问题的原因,但找到了一种解决方法:直接通过网关路由所有流量,反之亦然wlan0
。添加以下几行即可解决问题:my.vps.host.ip
eth0
iptables
sudo iptables -I FORWARD -i wlan0 -o eth0 -d my.vps.host.ip -j ACCEPT
sudo iptables -I FORWARD -i eth0 -o wlan0 -s my.vps.host.ip -j ACCEPT
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE