Openvpn
openvpn 連接一段時間後所有連接都失去
我有一個openvpn在windows7下完美執行,但是在我的ubuntu OpenVPN 2.3.7下,就很奇怪了。我可以使 openvpn 登錄,並連接到我的 vpn 網路,瀏覽網際網路。但是幾分鐘後,所有連接都停止了,即使是我的路由器的本地預設網關(192.168.1.1)也失去了。
#> ip route show # this is after openvpn connected default via 10.89.0.153 dev tun0 proto static metric 50 default via 192.168.1.1 dev wlan0 proto static metric 600 10.10.1.0/24 via 10.89.0.153 dev tun0 proto static metric 50 10.16.128.0/24 via 10.89.0.153 dev tun0 proto static metric 50 10.16.129.0/24 via 10.89.0.153 dev tun0 proto static metric 50 10.82.1.0/24 via 10.89.0.153 dev tun0 proto static metric 50 10.89.0.0/24 via 10.89.0.153 dev tun0 proto static metric 50 10.89.0.153 dev tun0 proto kernel scope link src 10.89.0.154 10.89.0.153 dev tun0 proto static scope link metric 950 10.89.0.154 dev tun0 proto kernel scope link src 10.89.0.154 metric 50 172.16.50.0/24 via 10.89.0.153 dev tun0 proto static metric 50 172.16.128.0/24 via 10.89.0.153 dev tun0 proto static metric 50 172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.42.1 172.17.0.0/16 via 10.89.0.153 dev tun0 proto static metric 50 192.168.1.0/24 via 10.89.0.153 dev tun0 proto static metric 50 192.168.1.0/24 dev wlan0 proto kernel scope link src 192.168.1.110 metric 600 192.168.2.0/24 via 10.89.0.153 dev tun0 proto static metric 50 192.168.3.0/24 via 10.89.0.153 dev tun0 proto static metric 50 192.168.69.0/24 via 10.89.0.153 dev tun0 proto static metric 50 192.168.89.0/24 via 10.89.0.153 dev tun0 proto static metric 50 192.168.99.0/24 via 10.89.0.153 dev tun0 proto static metric 50 192.168.102.0/24 via 10.89.0.153 dev tun0 proto static metric 50 192.168.109.0/24 via 10.89.0.153 dev tun0 proto static metric 50 192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 221.123.111.254 via 192.168.1.1 dev wlan0 proto static metric 600
當我 ping 我的預設網關(我的路由器)時,你可以看到,時間突然飆升,它發生在 openvpn 連接幾分鐘後。
64 bytes from 192.168.1.1: icmp_seq=154 ttl=253 time=28.6 ms 64 bytes from 192.168.1.1: icmp_seq=155 ttl=253 time=27.8 ms 64 bytes from 192.168.1.1: icmp_seq=156 ttl=253 time=30.6 ms 64 bytes from 192.168.1.1: icmp_seq=157 ttl=253 time=29.3 ms 64 bytes from 192.168.1.1: icmp_seq=158 ttl=253 time=28.8 ms 64 bytes from 192.168.1.1: icmp_seq=161 ttl=253 time=30.1 ms 64 bytes from 192.168.1.1: icmp_seq=164 ttl=253 time=71935 ms 64 bytes from 192.168.1.1: icmp_seq=165 ttl=253 time=70965 ms 64 bytes from 192.168.1.1: icmp_seq=166 ttl=253 time=69985 ms 64 bytes from 192.168.1.1: icmp_seq=167 ttl=253 time=68977 ms 64 bytes from 192.168.1.1: icmp_seq=168 ttl=253 time=67969 ms 64 bytes from 192.168.1.1: icmp_seq=169 ttl=253 time=66961 ms 64 bytes from 192.168.1.1: icmp_seq=170 ttl=253 time=65984 ms
我的 openvpn 設置文件:cat client.ovpn
client remote 221.123.111.254 proto tcp dev tun ca ca.crt comp-lzo persist-key persist-tun verb 3 route-delay 2 route-method exe
在建立 openvpn 連接後我得到了這個:
~$ ip r get 192.168.1.1 192.168.1.1 via 10.89.0.153 dev tun0 src 10.89.0.154 cache
您覆蓋了通往真實網關的一種可能路徑:
default via 10.89.0.153 dev tun0 proto static metric 50
它的優先級高於您的實際預設路由,並且
192.168.1.0/24 via 10.89.0.153 dev tun0 proto static metric 50
這對您的設置無用且可能有害。
這兩條路線都重新定義
192.168.1.1
了通過tun0
這是不可能的,因為 openvpn 想要與物理192.168.1.1
而不是虛擬的(如果存在)交換真實流量。但是刪除
192.168.1.0/24 tun0
不會解決您的問題,您應該添加一個顯式路由,該路由將192.168.1.1
再次重新定義以通過您的真實界面:
ip r add 192.168.1.1/32 dev wlan0
請記住,一旦您(或任何 VPN 程序)重新定義了預設路由以讓您通過 VPN 到 Internet,那麼您需要告訴核心它在哪裡可以再次找到真正的網關來傳遞流量。