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 

答案1

您覆盖通往真实网关的一条可能路径:

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通过的,因为 openvpn 希望与物理流量交换真实流量,但不与虚拟流量(如果存在)交换。tun0192.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 访问互联网,那么您需要告诉内核在哪里可以再次找到真正的网关来传递流量。

相关内容