如何禁用systemd-resolved并使用dnsmasq解析DNS?

Ubuntu 16.10+使用systemd-resolved作为DNS解析器。

我更喜欢设置16.04使用, dnsmasq作为解析器。

我怎么能在16.10 +上做到这一点,特别是在17.04?

dnsmasq软件包仍然可以在16.10和17.04中使用。

  1. 禁用systemd-resolved 之前 安装dnsmasq和依赖项 (或至少下载它们的软件包):

     sudo apt-get install dnsmasq 
  2. 禁用systemd-resolved并validationdnsmasq是否正在运行:

     sudo systemctl stop systemd-resolved sudo systemctl disable systemd-resolved systemctl status dnsmasq 
  3. 季节dnsmasq味道。 应用设置后,重新启动dnsmasq

     sudo systemctl stop dnsmasq sudo systemctl start dnsmasq 

在步骤2之后,您可能没有工作系统解析程序,直到第3步完成。 您可能需要重新启动网络子系统(或简单地重新启动)才能使用默认配置来运行dnsmasq 。 在我的测试中,将已知的DNS服务器添加到/etc/dnsmasq.conf并重新启动dnsmasq就足以让它在liveCD环境中运行。

除了@quixotic的答案:

确保你在/etc/NetworkManager/NetworkManager.conf中:

 [main] dns=dnsmasq 

如果您需要添加它,请重启NetworkManager,如下所示:

 sudo systemctl restart NetworkManager 

/etc/resolv.conf需要是/var/run/NetworkManager/resolv.conf的符号链接。 可以这样做

 sudo rm /etc/resolv.conf; sudo ln -s /var/run/NetworkManager/resolv.conf /etc/resolv.conf