嗨,伙计,我的 OpenVPN 连接出了问题。希望以下信息能满足您的所有需求。我认为 VPNConfig 应该无关紧要,因为它只在一个方向上起作用。
我的设置:
Network A (192.168.10.0/24)
* 192.168.10.110 Zentyal Server (OpenVPN Server is running here)
Network B (192.168.1.0/24)
* 192.168.1.10 RaspberryPI (OpenVPN Client is running here)
* 192.168.1.1 Router (routes correctly to 192.168.1.1 for 192.168.10.0/24)
* 192.168.1.x let's call this IP ClientB
这两个网络通过 192.168.2.2 上的隧道并排连接
是否配置
192.168.10.110 Zentyal服务器
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:192.168.2.1 P-t-P:192.168.2.2 Mask:255.255.255.255
192.168.1.10(树莓派)
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:192.168.2.10 P-t-P:192.168.2.9 Mask:255.255.255.255
路由表
192.168.10.110 Zentyal服务器
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 192.168.2.2 255.255.255.0 UG 0 0 0 tun0
192.168.2.0 192.168.2.2 255.255.255.0 UG 0 0 0 tun0
192.168.2.2 * 255.255.255.255 UH 0 0 0 tun0
192.168.1.10(树莓派)
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
192.168.10.0 192.168.2.9 255.255.255.0 UG 0 0 0 tun0
192.168.2.0 192.168.2.9 255.255.255.0 UG 0 0 0 tun0
192.168.2.9 * 255.255.255.255 UH 0 0 0 tun0
iptables 在两台计算机(192.168.10.110 和 192.168.1.1)上,我已使用以下设置了 iptables
sudo iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
什么有效 192.168.1.x 可以 ping 192.168.10.110,没有任何问题
什么不起作用 192.168.10.110 无法使用 192.168.1.0/24 地址 ping 网络 B 中的任何计算机
ping 192.168.1.10
tcpdump at 192.168.10.110 on tun0:
08:42:37.588653 IP (tos 0x0, ttl 64, id 13218, offset 0, flags [DF], proto ICMP (1), length 84)
192.168.2.1 > 192.168.1.10: ICMP echo request, id 392, seq 8, length 64
在我看来这看起来是正确的,不是吗?但是 192.168.1.10 上的 tcp dump 没有显示任何传入的数据包。
你们有什么想法吗?
非常感谢!!
答案1
您提到在两台计算机上都添加了如下 iptables:
sudo iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
我认为在服务器端应该是:(如果你在 OpenVPN 服务器上的接口:192.168.10.110 是 eth0)
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 确保此规则持久有效