我已经成功设置了两个OpenVPN服务器,如下所示:
- Ubuntu1(局域网IP: 172.23.6.148 广域网 IP: 60.242.175.132)
- Ubuntu2(局域网IP: 172.23.6.149 广域网 IP: 60.242.175.133)
连接到两台服务器的客户端可以访问我的两个 LAN 子网(172.23.6.0/24 和 172.23.7.0/24)。但是,连接到 Ubuntu2 的客户端无法访问互联网。以下是两台服务器的路由表:
来自 UBUNTU1 的内核路由表(172.23.6.148)
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.23.6.120 0.0.0.0 UG 0 0 0 br0
10.8.0.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0
10.8.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
10.9.0.0 0.0.0.0 255.255.255.0 U 0 0 0 tinc0
172.23.6.0 0.0.0.0 255.255.255.0 U 0 0 0 br0
172.23.7.0 0.0.0.0 255.255.255.0 U 0 0 0 br0
207.187.53.0 0.0.0.0 255.255.255.0 U 0 0 0 br0
来自 UBUNTU2 的内核路由表(172.23.6.149)
root@ubuntu2:~# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 50.242.184.134 0.0.0.0 UG 0 0 0 eth0
10.8.0.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0
10.8.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
10.9.0.0 0.0.0.0 255.255.255.0 U 0 0 0 tinc0
50.242.184.128 0.0.0.0 255.255.255.248 U 0 0 0 eth0
172.23.6.0 0.0.0.0 255.255.255.0 U 0 0 0 br0
172.23.7.0 172.23.6.1 255.255.255.0 UG 0 0 0 br0
207.187.53.0 172.23.6.1 255.255.255.0 UG 0 0 0 br0
请注意,我可以完全控制 Ubuntu2 的网关,但不能控制 Ubuntu1(第三方管理)。我需要做什么才能让连接到 Ubuntu2 的客户端获得互联网流量?我已准备好并愿意根据要求提供任何其他信息,谢谢。
编辑#1:
以下是我添加到防火墙规则中的内容(在/etc/ufw/before.rules就在*筛选线):
# START OPENVPN RULES
# NAT table rules
*nat
:POSTROUTING ACCEPT [0:0]
# Allow traffic from OpenVPN client to br0
-A POSTROUTING -s 10.8.0.0/24 -o br0 -j MASQUERADE
COMMIT
# END OPENVPN RULES
答案1
根据接受的答案这个问题,我将防火墙规则从 MASQUERADE 改为 SNAT,并且成功了:
-A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source 60.242.175.133
我将此规则添加到/etc/ufw/before.rules文件。不过,我确实注意到,如果我包括“iptables“在行中,UFW 无法重新加载。无论如何,我连接到 Ubuntu2 的客户端现在可以访问互联网。感谢所有提供建议的人,我非常感谢他们的帮助。
答案2
您正在伪装/natting 10.8.0.0/24,但是请求很可能来自 172.23 子网 - 但是如果没有更多细节就无法确定。
您应该尝试 natting 172.23.0.0/16 看看是否能解决您的问题。