为什么 dnsmasq 将我的路由器 IP 放入 /etc/resolv.conf 而不是 127.0.0.1?

为什么 dnsmasq 将我的路由器 IP 放入 /etc/resolv.conf 而不是 127.0.0.1?

我在各种情况下都遇到了 DNS 解析问题,这些问题似乎可以追溯到我的网络配置。

我只在两个 Linux 安装(Lubuntu 12.04 和 12.10)上运行安装dnsmasq-basednsmasq我没有对configure做任何特别的事情dnsmasq,但我认为我之前所做的一些其他更改可能会导致升级时的配置不正确。

运行 12.04 的计算机“A”上的工作配置设置/etc/resolv.conf为使用 127.0.1.1(其中/etc/hosts设置为$HOSTNAME)。在某些应用程序(例如 OpenVPN)遇到 DNS 解析问题的计算机“B”上,/etc/resolv.conf设置为 192.168.1.1,这是我的网关知识产权。只有某些应用程序受到影响。例如,网络浏览就可以正常工作。

知道这种差异是否是 DNS 解析问题的原因,以及为什么“B”的行为不同?

编辑:

“A”和“B”都在运行dnsmasq,都使用 DHCP 来获取 DNS 配置,而我只使用 dnsmasq 作为 DNS。

没有/etc/dnsmasq.conf文件。我知道这在跑步时是正常的dnsmasq-base

两台机器上的内容/etc/resolvconf似乎是相同的。没有无关/丢失的文件。

抱歉,我无法更具体地说明问题的本质。 “DNS 解析问题”是我与 VPN 提供商的技术支持讨论的终点。

答案1

在机器 B 上,如果/etc/NetworkManager/NetworkManager.conf包含dns=dnsmasq,则resolv.conf应该只包含一行“nameserver”,即nameserver 127.0.1.1。127.0.1.1 是 NetworkManager 控制的本地转发名称服务器监听的地址。NetworkManager 会为该名称服务器提供要使用的转发地址。

尝试sudo dpkg-reconfigure resolvconf在机器 B 上运行。这会将所需的符号链接恢复/etc/resolv.conf../run/resolvconf/resolv.conf

您是否正在运行第三方 VPN 客户端?众所周知,此类客户端/etc/resolv.conf在退出时会破坏并且不会恢复它。sudo dpkg-reconfigure resolvconf每次阻止这样的客户时,您可能都必须这样做。

另一件要尝试的事情是:注释掉dns=dnsmasq然后/etc/NetworkManager/NetworkManager.conf重新启动。这会禁用 NetworkManager 控制的本地转发名称服务器,该服务器存在一些已知问题。

相关内容