dnsmasq 在终端中有效,但在 Ubuntu 12.04 中的应用程序中无效

dnsmasq 在终端中有效,但在 Ubuntu 12.04 中的应用程序中无效

我实际上试图添加Server=/example.com/11.22.33.44到 dnsmasq 的配置中,以便将对 example.com 的查询路由到特定的名称服务器。为了实现这一点,我做了以下事情。

  • 我注释掉该行dns=dnsmasq/etc/NetworkManager/NetworkManager.conf重新启动网络管理器
  • apt-get install dnsmasq
  • /etc/dnsmasq.conf根据需要进行编辑并重新启动 dnsmasq

从我的终端,测试像 一样host foo.example.com正常工作。但所有应用程序(例如 Firefox、midori、remmina)似乎都使用“旧”设置(也就是说,我看到 DNS 查询失败tcpdump)。我不知道如何合并像这样的自动和手动设置。

编辑:与此同时,我甚至尝试过一些不寻常的、绝望的措施(例如,重新启动),但没有成功。而且,似乎区别并不在于与其他应用程序。甚至在单个终端会话中,我观察到

#host foo.example.com
foo.example.com has address 1.2.3.4
#ping foo.example.com
ping: unknown host foo.example.com

最终,这让我找到了解决方案。不可否认,这是一个夸张的匿名化让问题无法回答的例子:我所讨​​论的域名实际上是 的一个子域名.local,mdns 从正确的 dns 中窃取了它。编辑/etc/nsswitch.conf解决了这个问题。

答案1

编辑/etc/nsswitch.conf主机行

hosts: files dns mdns4

相关内容