![OpenVPN 允许通过两个 NIC 进行跨 NAT 流量](https://linux22.com/image/770313/OpenVPN%20%E5%85%81%E8%AE%B8%E9%80%9A%E8%BF%87%E4%B8%A4%E4%B8%AA%20NIC%20%E8%BF%9B%E8%A1%8C%E8%B7%A8%20NAT%20%E6%B5%81%E9%87%8F.png)
我在 Ubuntu 20.04 上运行 OpenVPN,并尝试允许用户访问位于不同子网上的服务器。以下是网络图:
因此,eth1 连接到 DHCP 和更广泛的互联网,而 eth0 连接到带有服务器的私有网络。因此 VPN 在 eth1 (192.168.1.0/24) 上运行,但我需要在连接到 VPN 时能够访问 eth0 (192.168.177.0/24) 上的机器。
我尝试添加临时 iptables 规则,但不确定它们是否有效,因为它们位于两个 NIC 上。我在 Google 上找到的所有信息都是关于它们位于同一个 NIC 上的情况。
编辑:我也添加了
push "route 192.168.177.0 255.255.255.0"
我的server.conf
OpenVPN,但似乎没有起作用。
编辑2:我也尝试了以下iptables规则:
sudo iptables -A INPUT -i tun0 -j ACCEPT
sudo iptables -A INPUT -i eth0 -j ACCEPT
sudo iptables -A INPUT -i eth1 -j ACCEPT
sudo iptables -A FORWARD -i eth0 -j ACCEPT
sudo iptables -A FORWARD -i eth1 -j ACCEPT
sudo iptables -A FORWARD -i tun0 -j ACCEPT
也:
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
route print
如果我在 Windows 客户端上运行,我可以看到列出的路线:
192.168.177.0 255.255.255.0 10.8.0.1 10.8.0.2 259