使用iptables将NAT客户端连接到Internet

我build立了一个可以正常工作的OpenVPN服务器和客户端,并且可以很好地连接到对方。

我试图通过VPN服务器路由所有的客户端stream量(网页+ DNS),但它不工作。 根据OpenVPN教程,我正在做:

sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

而这显然没有做什么。 一旦连接到VPN,客户端可以ping通服务器就好,但绝对没有互联网接入。

sudo iptables -S或者sudo iptables -L

看起来没有任何改变..我已经改变了服务器和客户端configuration文件按照教程的指示。

任何帮助将是伟大的,谢谢。

更新

Chain PREROUTING (policy ACCEPT) target prot opt source destination Chain INPUT (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain POSTROUTING (policy ACCEPT) target prot opt source destination MASQUERADE all -- 10.8.0.0/24 0.0.0.0/0 MASQUERADE all -- 10.8.0.0/24 0.0.0.0/0 MASQUERADE all -- 10.8.0.0/24 0.0.0.0/0 MASQUERADE all -- 10.8.0.0/24 0.0.0.0/0 

与OP交谈之后,我们得出结论:这是DNSconfiguration的一个问题,OpenVPN通过DHCP推送“10.8.0.1”作为DNS服务器。 由于VPN服务器上没有运行名称服务器,导致客户端无法parsing远程主机。

通过OpenVPN的DHCP推送“8.8.8.8”作为DNS服务器解决了这个问题。

我们还需要打开ip_forward。

OP需要将以下内容添加到/etc/sysctl.conf中:

net.ipv4.ip_forward = 1

(或取消注释,如果已经有一行)