编辑2:以前的帖子已被审核正确删除,我发布的是我发现的解决方案。抱歉
编辑:我刚刚找到了答案,并且它在此页面中-对不起我的忧郁。我在下面发布了我的发现,扩展了本页中的Richard Lindstedt的正确答案。我离开了早期的喧嚣,有了一些背景。请支持理查德的答案,他应得的。
这实际上非常容易。
只需打开您的接口配置文件-> sudo vi / etc / network / interfaces
那肯定没有帮助OP,现在也帮不了我。我们不需要静态地址,我们希望使用DHCP服务器发送给我们的地址。NetworkManager似乎可以识别它们,但是Ubuntu直截了当地忽略了它们:
# nmcli dev list iface wlan0 | grep IP4.DNS
IP4.DNS[1]: 10.*.*.*
IP4.DNS[2]: 10.*.*.*
IP4.DNS[3]: 8.8.8.8
但...
# dig microsoft.com
; <<>> DiG 9.9.5-4.3-Ubuntu <<>> microsoft.com
;; global options: cmd
;; connection timed out; no servers could be reached
我的/ etc / network / interfaces是:
auto lo
iface lo inet loopback
有点奇怪,我希望所有接口都在这里声明(或者我遗漏了什么?)。
因此,简而言之:
- 我没有弄乱任何文件开头
- 我已经跑了
dpkg-reconfigure resolvconf
- 正确的符号链接到位
- NetworkManager从DHCP检索正确的DNS服务器
- Ubuntu不使用此类地址
- 解决方法是在不希望的/ etc / network / interfaces上放置固定的8.8.8.8
- 我想在任何情况下都使用DHCP提供的DNS服务器。
不打开另一个线程,因为这是确切的问题,除了我现在在14.10上(但是自从12.10升级到13.04以来,这一直困扰着我)。
解
最后一句话使我走上了正轨,直到那时我才注意到理查德的回答。
问题似乎dnsmasq
与resolvconf
软件包冲突。直到12.10,dnsmasq
才被使用。从13.04开始,Ubuntu似乎切换到了dnsmasq / resolvconf混合驱动程序,您在其中安装了软件包dnsmasq-base
和resolvconf
,但没有安装dnsmasq
本身。
我不能说这是否是13.04或其他版本的升级脚本中的错误,因为在升级时(如在全新安装中),resolvconf已安装,dnsmasq-base已升级,而dnsmasq被(正确)卸载了。
问题是,升级脚本无法在中注释掉该dns=dnsmasq
行/etc/NetworkManager/NetworkManager.conf
。因此,即使系统上不再存在dnsmasq守护程序,/ etc / resolv.conf仍然希望它存在。