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