OpenVPN路由仅在一个子网中工作

OpenVPN路由仅在一个子网中工作

嗨,伙计,我的 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 确保此规则持久有效

相关内容