好的,我已经设置好了,其中 eth0 是我的内部 IP 地址(192.168.1.3),它已使用 iptables 配置为我的默认网关
sudo sysctl -w net.ipv4.ip_forward=1
sudo iptables -P 转发接受
sudo iptables –-table nat -A POSTROUTING -o eth2 -j MASQUERADE
其中 eth2 是我的静态互联网 IP
一切正常,我可以通过 DHCP(192.168.1.10-200)从网络上的任何计算机访问互联网
当我运行 openvpn 时一切都停止工作
这是我的配置文件 http://pastebin.ubuntu.com/7556511/
这个配置不需要 NAT,因为我可以在电脑上浏览网页,如果我这样做
curl ifconfig.me
它为我提供了来自我的 VPN 提供商的远程 IP 地址。
当我说在其他电脑上失败时,我的意思是我无法加载页面,无法 ping 通,网络外部什么都行不通(但我仍然可以在内部接口上 SSH
答案1
错误出在你的 iptables 中,命令:
iptables –-table nat -A POSTROUTING -o eth2 -j MASQUERADE
应修改为
iptables –-table nat -A POSTROUTING -o tun0 -j MASQUERADE
如果你的接口不是 tun0,请进行相应更改(顺便说一句,如果你有一个轻敲接口,只需使用 tap0 代替 tun0 即可。
在 OpenVPN 中,所有流量都通过网桥而不是以太网接口从您的 PC 流出。但是,您不能将 iptables 应用于网桥(这需要ebtables),但您可以通过将 iptables 应用于虚拟接口来规避该问题。