VPN断开连接:resolv.conf未刷新

我使用vpnc连接到VPN。 当VPN断开连接时,无论是超时还是达到会话限制,VPN都会终止,但resolve.conf继续包含对我的VPN网络的引用。

VPN连接之前的resolv.conf:

nameserver 127.0.0.1 search mylocalnetwork 

VPN连接后resolv.conf并在VPN丢失后保留:

 nameserver XXXX nameserver XXXZ nameserver 127.0.0.1 search internal.mycompany.com mylocalnetwork 

在10.04中,当VPN丢失时,我将运行此脚本来刷新resolve.conf:

 7$ cat bin/refreshResolvconf.sh #!/bin/bash #if [ -e /etc/resolvconf/run/interface/tun0 -a "`pidof vpnc`" == "" ]; then /sbin/resolvconf -d tun0; fi if [ -e /etc/resolvconf/run/interface/tun0 -a "`pidof vpnc`" == "" ] then /sbin/resolvconf -d tun0; echo "Refreshed resolv.conf" fi 

但是,在12.04中更改的resolveconf已更改,因此此脚本不再适用。

要解决此问题,我手动编辑resolve.conf或通过“gnome-control-center network”关闭/打开我的连接。

其他人有同样的问题吗? 如何在VPN断开后更新resolv.conf?

不再使用路径/ etc / resolvconf / run。

如果没有运行vpnc进程,以下代码段将删除tun0记录。

 [ "$(pidof vpnc)" ] || resolvconf -d tun0 

该问题的正确解决方案是安排vpnc以在退出之前清理的方式终止,其中清理包括删除它在连接时创建的任何resolvconf记录。