在使用家用OpenVPN服务器并使用Mac上的Tunnelblick应用程序连接到它时,我遇到了这个问题。
我发生的事情是,从VPN断开连接后,一条路由以我的家庭IP为目的地,而错误的网关被留下了。删除这条路线即可解决问题
$ sudo route -n delete the.good.dns.name
示例:我在学校,重新启动计算机后,我连接到无线网络。我使用Tunnelblick连接到我的家庭OpenVPN服务器。
$ netstat -nr
Destination Gateway
....
[home-ip]/32 [school-default-gateway-1] ....
....
我从VPN服务器断开连接。我更改无线网络。这将更改我的默认网关。
$ netstat -nr
Destination Gateway
...
[home-ip]/32 [school-default-gateway-1] ...
...
$ ping [home-ip]
PING [home-ip]: 56 data bytes
ping: sendto: Network is unreachable
ping: sendto: Network is unreachable
Request timeout for icmp_seq 0
...
发生这种情况后,无论如何我都无法连接到我的家庭网络(VPN,Ping等)。如果我然后删除路由:
$ sudo route -n delete [home-ip]
delete net [home-ip]
$ ping [home-ip]
PING [home-ip]: 56 data bytes
64 bytes from [home-ip]: icmp_seq=1 ttl=56 time=13.111 ms
工作正常。
OpenVPN服务器/客户端的配置方式可能会出现问题,这将导致此问题消失(我很想知道那是什么),但是我安装了Tunnelblick断开连接后脚本来自动删除此路由。
route -n flush
了几次,然后通过“系统”偏好设置重新启动了网络。我只花了一年的时间就回来解决这个问题:)