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

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

我使用 vpnc 连接到 VPN。当 VPN 因超时或达到会话限制而断开连接时,VPN 将被终止,但 resolve.conf 仍会包含对我的 VPN 网络的引用。

VPN连接前的resolv.conf:

nameserver 127.0.0.1
search mylocalnetwork

VPN 连接后以及 VPN 丢失后保留的 resolv.conf:

nameserver X.X.X.X
nameserver X.X.X.Z
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

但是,resolveconf在12.04中发生了变化,因此该脚本不再适用。

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

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

答案1

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

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

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

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

相关内容