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 用戶端發生了這種情況並導致不必要的速度減慢。

相關內容