在Ubuntu 13.04中连接到VPN时出现DNS问题

我使用vpnc连接到Cisco VPN服务器。 连接后,我的机器无法自动更新新VPN的DNS设置。 我通过使用正确的名称服务器和搜索域临时更改/etc/resolv.conf进行测试,一切正常。 这显然不是一个长期的解决方案,所以我在网络管理器的VPN设置中添加了一个额外的DNS服务器和搜索域。 有了这些设置,resolvconf会添加搜索域,但不会添加DNS IP,我仍然无法进行任何查找。

从这里开始配置或排除故障的下一步是什么?

首先确保/etc/resolvconf/resolv.conf.d中的任何文件中都没有以nameserver开头的行。 如果/etc/resolvconf/resolv.conf.d/tail是目标original的符号链接,请将其指向/dev/null

其次,断开与VPN的连接。 编辑/etc/NetworkManager/NetworkManager.conf

 $ sudo gedit /etc/NetworkManager/NetworkManager.conf 

并评论出来

 dns=dnsmasq 

(即添加一个# ,使其看起来如下)

 #dns=dnsmasq 

然后

 sudo restart network-manager 

尝试检查/etc/resolv.conf是否具有/run/resolvconf/resolv.conf的符号链接。 它解决了我的问题。

要检查它是否有符号链接:

 ls -la /etc/resolv.conf 

示例输出,如果它有符号链接:

 lrwxrwxrwx 1 root root 27 Jun 30 22:22 resolv.conf -> /run/resolvconf/resolv.conf 

否则,删除或备份现有的/etc/resolv.conf然后:

 sudo ln -s /run/resolvconf/resolv.conf /etc/resolv.conf