Openvpn客户端可以ping服务器,但无法ping通www.google.com

我之后在Ubuntu vps中设置了Openvpn

这是我的客户route -n

 Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 10.8.0.5 128.0.0.0 UG 0 0 0 tun0 0.0.0.0 122.84.124.1 0.0.0.0 UG 0 0 0 ppp0 10.8.0.1 10.8.0.5 255.255.255.255 UGH 0 0 0 tun0 10.8.0.5 0.0.0.0 255.255.255.255 UH 0 0 0 tun0 122.84.124.1 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0 128.0.0.0 10.8.0.5 128.0.0.0 UG 0 0 0 tun0 169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 ppp0 183.181.60.117 122.84.124.1 255.255.255.255 UGH 0 0 0 ppp0 

在客户端,我可以ping 10.8.0.1 ,但ping 10.8.0.1 ,我似乎没有互联网接入。 我试过mtr 8.8.8.8 ,我明白了

 Host Lost% ... 1. 10.8.0.1 0.0% ... 2. ??? 

在服务器上, mtr 8.8.8.8显示path。

任何意见可能出了什么问题? 谢谢!

您应该在服务器上正确设置NAT和路由。

如果来自服务器的mtr工作正常,但不是来自客户端,则应该在服务器上添加一条这样的规则:

 # iptables -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source <public IP of server> 

另外,请确保在服务器上启用了路由:

 # sysctl net.ipv4.ip_forward net.ipv4.ip_forward = 0 <<< disabled # sysctl net.ipv4.ip_forward=1 net.ipv4.ip_forward = 1 <<< enabled 

或者,如果要在启动时启用它,请在/etc/sysctl.conf中将net.ipv4.ip_forward更改为1,然后运行sysctl -p

以防万一它是有用的,虽然我看到其他答案已被接受…

@petrus的答案假设你想要所有的互联网stream量通过OpenVPNnetworking 。 如果这是你想要的,就是这样做的方法。

然而,通常只需要OpenVPN访问该networking中的资源(例如文件服务器/内联网),并使用普通的互联网连接进行一般的互联网访问。 在这种情况下,您可以通过告诉客户端机器不通过OpenVPN路由所有stream量来加快速度。 你如何做到这一点将取决于你的客户端软件和操作系统,但我想我会提供它,因为我注意到,这是发生在我的OpenVPN客户端,造成不必要的放缓。