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

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,但除此之外,我似乎无法访问互联网。我试过了mtr 8.8.8.8,我得到了

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

在服务器上时,mtr 8.8.8.8显示路径。

有什么建议可以解决吗?谢谢!

答案1

您应该在服务器上正确设置 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

或者如果您想在启动时启用它,请更改net.ipv4.ip_forward为 1/etc/sysctl.conf并运行sysctl -p

答案2

万一它有用,尽管我看到其他答案已经被接受了......

@petrus 的回答假设你想要所有互联网流量都通过 OpenVPN 网络。如果这是你想要的,那就这样做吧。

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

相关内容