如何在Ubuntu中禁用systemd-resolved?
如何在Ubuntu 17.04中禁用systemd-resolved?
使用systemctl disable
禁用它不起作用,服务似乎重新启动(由Networkmanager?)
警告! 请注意,禁用systemd-resolvd可能会破坏VPN中某些用户的名称解析。 在启动板上看到这个bug (谢谢,Vincent)。
禁用systemd-resolved服务并将其停止:
sudo systemctl disable systemd-resolved.service sudo service systemd-resolved stop
/etc/NetworkManager/NetworkManager.conf
的[main]
部分中:
dns=default
删除符号链接/etc/resolv.conf
rm /etc/resolv.conf
重启网络管理器
sudo service network-manager restart
我最近升级到(k)Ubuntu 17.04,我也偶然发现了对systemd的更改。
我认为我的设置非常典型,因为我的宽带HUB中有一个DNS提供商,这是我网络上所有设备的主要信息来源(我有一些)。
systemd中有一些美,它并不是一件坏事,但真正糟糕的是文档,Ubuntu团队缺乏沟通以及“尽管它打破了每个人”的心态,“让我们改变它”。
撕掉一些头发后的解决方案是编辑/etc/systemd/resolved.conf:
[Resolve] DNS=192.168.1.254 # <-- change to your router address #FallbackDNS=8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860:4860::8844 Domains=lan # <-- change to your localdomain name (maybe .local) #LLMNR=yes <-- I dabbled with this for a while but it doesn't matter #DNSSEC=no #Cache=yes #DNSStubListener=udp
在不明白为什么这不起作用后,我发现还需要将/etc/resolv.conf切换到systemd提供的那个。 在开箱即用的安装中不是这种情况(由于我不知道的原因)。
sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
然后不使用本地DNS服务器,并将所有DNS请求发送到我的HUB。
我认为这是一个比删除和放入其他解决方案更好的解决方案,因为systemd-resolv现在是默认的。
btw的一个相关问题是/etc/nsswitch.conf是绝对的。
它应该是:
hosts:files mdns4_minimal dns [NOTFOUND = return] resolve [!UNAVAIL = return] dns
这是一个令人困惑的配置,因为[NOTFOUND = return]表示处理结束。 之后的条目永远不会被使用。
如果您的VPN存在泄漏问题,并且无法弄清楚如何设置systemd(像我一样),您可以按照第一个答案中描述的方式将其删除,但不要添加dns=default
行,因为它会激活名称服务器127.0.0.1。 要将路由器设置为dns,请在/etc/resolvconf/resolv.conf.d/
文件夹中创建文件“tail”,添加nameserser 192.168.1.1
的行。
如果您搞砸了这个文件,请执行ln -sf /var/run/resolved/resovl.conf /etc/resolv.conf
。