Openvpn

通過 VPN 路由更多流量

  • April 8, 2018

我正在使用openvpn以下配置連接到 VPN 伺服器:

remote openvpn.vpn.domain.tld
port 1194
proto udp

dev tun
client
auth-user-pass login.conf
keepalive 10 60

執行後openvpn /etc/openvpn/client/myconf.conf,輸出ip route如下:

default via 192.168.1.1 dev wlp2s0 src 192.168.1.25 metric 303 
129.31.0.0/16 via 129.31.250.1 dev tun0 
129.31.250.0/24 dev tun0 proto kernel scope link src 129.31.250.111 
146.169.0.0/16 via 129.31.250.1 dev tun0 
146.179.0.0/16 via 129.31.250.1 dev tun0 
155.198.0.0/16 via 129.31.250.1 dev tun0 
172.16.0.0/12 via 129.31.250.1 dev tun0 
192.168.1.0/24 dev wlp2s0 proto kernel scope link src 192.168.1.25 metric 303

這會通過 VPN 重定向一些流量,這通常足以滿足我的目的,但有時我想重定向所有網際網路流量。我知道配置中的選項redirect gateway def1或多或少openvpn會這樣做,但我想要一個更靈活的手動解決方案。我認為通過以下方式添加預設路由:

ip route add default via 129.31.250.1 dev tun0

會這樣做,但是當我發出該命令時,我的瀏覽器無法再載入網站,所以我認為它有問題。有誰知道問題可能來自哪裡?

編輯:不知何故,使用0.0.0.0/1代替default似乎已經解決了這個問題……如果有一個原因,我仍然有興趣了解它。

使用“0.0.0.0/1”而不是“預設”並不能解決問題。充其量,它正在隱藏它。

問題是,如果您將預設路由設置到隧道中(沒有更具體的路由到 VPN 的端點),您還將更改openvpn用於連接到 VPN 的遠端端點的路由。換句話說,openvpn 不再知道如何到達遠端 VPN 端點。

您需要為您的遠端 VPN 提供商 ( openvpn.vpn.domain.tld) 設置靜態路由,以通過您原來的非 VPN 網際網路連接。

例如,假設在 interface 上wlp2s0

ip route add openvpn.vpn.domain.tld dev wlp2s0

順便說一句,您可能還需要為您的 ISP 的網路和/或他們為您提供的任何基本服務(例如 DNS、郵件服務)設置一條(或多條路由)以通過該連接。您的 ISP 可能只向他們擁有或知道在其下游的 IP 地址提供這些服務(即,不向世界另一端的某些 VPN 提供商擁有的某個隨機 IP 地址提供這些服務)。

引用自:https://unix.stackexchange.com/questions/420633