我最近将我的桌面从 12.04 升级到了 14.04,现在我的互联网连接无法正常工作。我可以访问我的路由器。我可以通过输入 IP 地址来访问 Google。
我的 resolv.conf 文件:
nameserver 8.8.8.8
nameserver 8.8.4.4
dns=dnsmasq
根据其他说明,我已从/etc/NetworkManager.conf 中注释掉
[main]
plugins=ifupdown,keyfile,ofono
#dns=dnsmasq
no-auto-default=00:19:66:45:52:39,
[ifupdown]
managed=false
如果我没有dns=dnsmasq
注释掉那么我的 resolv.conf 只有这个条目:
nameserver 127.0.1.1
这时我惊呆了,因为据我所知,DNS 应该可以正常工作。我很感激任何帮助。
PS 我应该补充一点,在升级之前,我在桌面上运行了一个 FTP 服务器,用于从办公室扫描仪发送图像。扫描仪找不到 FTP 服务器。其他办公室电脑(包括我运行 12.04 的笔记本电脑)可以正常使用互联网。
答案1
好的,我的 DNS 又能正常工作了。由于 DNS 似乎配置正确,我开始怀疑 iptables。我刷新了当前的 iptables 规则,DNS 立即开始工作。iptables -F
但是,重新启动后问题又出现了。现在看来,我需要对我的 iptables 进行永久性编辑。
显然我之前曾安装过 lokkit。我彻底删除了 lokkit,问题在启动时得到解决。我可以断定 lokkit 参与了其中,因为输出中sudo iptables -L
包含了对 lokkit 的引用。
答案2
您是否有任何特殊原因要避免使用 dnsmasq?否则,我建议您将更改恢复到 NetworkManager.conf,然后重新配置 resolvconf 包。
之后,将模式从“自动(DHCP)”更改为“仅自动(DHCP)地址”后,您应该能够通过 nm-applet GUI 的“IPv4 设置”选项卡添加您选择的 DNS 服务器。
答案3
在 /etc/dhcp/dhclient.conf 中,将你想要的 dns 服务器添加到 supersede domain-nameserver 行。用逗号分隔你的 dns 地址。保存文件并重新启动网络管理器