哦你好!
尝试使用此处的答案修复我的 Ubuntu 12.04 LTS 盒子上的名称解析...根本没有效果:
- 尝试移走 /etc/resolv.conf 链接
- 尝试更改 /etc/nsswitch.conf 中的主机顺序
- 尝试重启|移除|重新配置我的 LinkSys,它是我网络的 DHCP 服务器
没有结果。目前,我正在使用“重新加载按钮”方法,直到所需网站打开,尽管我拼错了其 FQDN。
有人能建议别的吗?
答案1
假设名称服务确实不起作用,这里有一个通用程序,可以修复几个已知的错误。
resolvconf 是否已安装?如果已安装,请执行以下操作。
sudo dpkg-reconfigure resolvconf
如果尚未安装,请执行以下操作。
sudo apt-get install resolvconf
现在 resolvconf 已正确安装,请重新启动以便为 resolvconf 提供名称服务器信息。
如果名称服务仍然中断,并且您正在使用 NetworkManager 来管理网络,则在编辑器中打开 /etc/NetworkManager/NetworkManager.conf 并注释掉“dns=dnsmasq”行。要注释掉它,请在行开头添加一个“#”字符。
gksudo gedit /etc/NetworkManager/NetworkManager.conf
接下来进入连接编辑器,确保您使用的连接配置正确。例如,最常见的是“网络指示器 | 编辑连接... | 有线 | 有线连接 1 | 编辑... | IPv4 设置 | 方法”设置为“自动 (DHCP)”,并且未设置“附加 DNS 服务器”地址。
然后重新启动网络管理器。
sudo restart network-manager
现在确认预期的名称服务器地址出现在 /etc/resolv.conf 中。
如果您没有使用 NetworkManager 来配置接口,而是使用,ifup
则编辑 /etc/network/interfaces 并根据需要在相应节中包含dns-nameservers
和行。确保 /etc/resolvconf/resolv.conf.d/head 仅包含注释行,并且 /etc/resolvconf/resolv.conf.d/base 和 /etc/resolvconf/resolv.conf.d/tail 不存在或为空。然后是和接口。确认您添加到 /etc/network/interfaces 的名称服务器地址现在出现在 /etc/resolv.conf 中。dns-search
iface
ifdown
ifup
如果名称服务仍然无法工作,那么很可能是本地问题:例如,DHCP 服务器配置错误。另一个已知的问题原因是第三方 VPN 客户端破坏了符号链接 /etc/resolv.conf。如果您的 LAN 看起来正常,并且您没有使用第三方网络软件,那么请针对 NetworkManager 或 resolvconf 提交错误报告,无论哪个您认为更可能是罪魁祸首。
答案2
我有同样的问题...并且我尝试了有dnamasq
和没有它的情况。
- 当用于
dnsmasq
DNS 时,它由网络管理器启动,/etc/resolv.conf
指向本地主机,但dnsmasq
无法解析任何 DNS 名称。
我的网络配置使得我只能通过 HTTP 代理退出,而棘手的部分是它设置了,proxy.pac
因此为了获取代理配置,我还需要 DNS 才能工作......
dnsmasq
不应尝试直接连接到 DNS 根服务器(它看起来是这样做的),而应仅使用我通过 DHCP 获得的网络内可用的 DNS 服务器。但是没有任何信息告诉它使用它们,因为和/var/run/nm-dns-dnsmasq.conf
都是/etc/NetworkManager/dnsmasq.d
空的。
- 当不在
dnsmasq
网络管理器中使用 DNS 时,我会在 中设置正确的 DNS 服务器/run/resolvconf/interface/NetworkManager
,但resolvconf
就是不会使用它们,因为它一直从 获得 localhost/run/resolvconf/interface/lo.dnsmasq
。删除此文件并重新启动 后,问题消失resolvconf
。
我认为可以通过两种方式解决这个问题:
- 如果使用 dnsmasq,你应该在
/etc/NetworkManager/dnsmasq.d
- 如果仅使用
resolvconf
,删除/run/resolvconf/interface/lo.dnsmasq
并重新启动 resolvconf 应该就可以了。
尽管如此,为了正确解决这个问题,应该修复 NetworkManager......