在 Ubuntu 12.04.2 上,如果我禁用 dnsmasq 会发生什么?

在 Ubuntu 12.04.2 上,如果我禁用 dnsmasq 会发生什么?

我正在使用 Ubuntu 12.04.2 LTS。

如果我发出以下命令

sudo gedit /etc/NetworkManager/NetworkManager.conf

并改变行

dns=dnsmasq

#dns=dnsmasq

会发生什么?我应该禁用还是启用 DNS 缓存?

补充笔记:

有人告诉我,由于我正在使用 VPN 服务,因此最好执行上述操作。

答案1

摘自http://www.ubuntugeek.com/how-to-disable-dnsmasq-in-ubuntu-12-04precise.html

最大的优势在于,如果您连接到 VPN,您不必像过去那样将所有 DNS 流量都路由到 VPN,而是只需发送与该 VPN 宣布的子网和域相关的 DNS 查询。这对于高延迟 VPN 链接尤其有用,因为过去所有东西的速度都会变慢。

至于处理 DNS 故障,dnsmasq 通常会将 DNS 查询发送到多个 DNS 服务器(如果您在建立连接时收到多个 DNS 服务器),并会检测虚假/死机的 DNS 服务器,然后忽略它们,直到它们再次开始返回合理的信息。这与 libc 的 DNS 解析方式不同,在 libc 中,DNS 服务器的状态无法保存(因为它只是一个库),因此每个应用程序都必须经历相同的过程,尝试第一个 DNS,等待它超时,然后使用下一个 DNS。

因此它不会禁用它,但在某些情况下它会变得不那么“安全”和高效。就像 VPN

答案2

  1. NetworkManager 启动的 dnsmasq 默认不缓存查询结果。你可以运行以下命令来确认这一点:

    ps aux | grep dnsmasq
    

    您应该看到--cache-size=0它是 dnsmasq 的参数,它会禁用缓存。

  2. 如果你想确保 DNS 以及任何流量都通过 VPN 路由(我相信你确实基于你的其它问题),您可以用iptables它来接受发往 VPN 网关的输出流量并阻止任何其他目的地。因此无需触碰 Networkmanager 配置。

相关内容