Bas*_*igt 141 dns systemd systemd-resolved
如何在 Ubuntu 17.04 中禁用 systemd-resolved?
禁用它systemctl disable
不起作用,该服务似乎已重新启动(由 Networkmanager?)
Bas*_*igt 245
此方法适用于 Ubuntu 版本 17.04 (Zesty)、17.10 (Artful)、18.04 (Bionic)、18.10 (Cosmic)、19.04 (Disco) 和 20.04 (Focal):
禁用并停止 systemd-resolved 服务:
sudo systemctl disable systemd-resolved
sudo systemctl stop systemd-resolved
Run Code Online (Sandbox Code Playgroud)
然后将以下行放在[main]
您的部分中/etc/NetworkManager/NetworkManager.conf
:
dns=default
Run Code Online (Sandbox Code Playgroud)
删除符号链接 /etc/resolv.conf
rm /etc/resolv.conf
Run Code Online (Sandbox Code Playgroud)
重启网络管理器
sudo systemctl restart NetworkManager
Run Code Online (Sandbox Code Playgroud)
另请注意,禁用 systemd-resolvd 可能会破坏某些用户在 VPN 中的名称解析。在启动板上看到这个错误(谢谢,文森特)。
use*_*436 30
我最近升级到 (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
Run Code Online (Sandbox Code Playgroud)
在不明白为什么这行不通之后,我发现还需要将 /etc/resolv.conf 切换到 systemd 提供的那个。在开箱即用的安装中情况并非如此(原因我不知道)。
sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
Run Code Online (Sandbox Code Playgroud)
然后不使用本地 DNS 服务器,所有 DNS 请求都发送到我的 HUB。
我认为这是一个比删除并放入其他解决方案更好的解决方案,因为 systemd-resolv 现在是默认设置。
顺便说一句,一个相关的问题是 /etc/nsswitch.conf 已被绝育。
它应该是:
主机:文件 mdns4_minimal dns [NOTFOUND=return] 解析 [!UNAVAIL=return] dns
这是一个令人困惑的配置,因为 [NOTFOUND=return] 意味着处理在那里结束。它之后的条目将永远不会被使用。
BIS*_*ISI 21
如果您使用的是 Ubuntu 18.04 Server(或 Ubuntu 20.04 Server),则这些答案都不适用。user2427436 的那个最接近。
问题是 systemd-resolved 是/运行一个存根解析器,我只需要完全禁用它(根据问题)。我需要这样做,因为 Zimbra 8.8.15 (FOSS) 带有自己的集成解析器(未绑定)。
在我的情况下,我从服务器 18.04 的库存(天真)安装开始,在裸机(实际上是 VM)上的选项最少。
所以这是食谱:
vi /etc/systemd/resolved.conf
edit line #DNSStubListener=yes
to be DNSStubListener=no
systemctl stop systemd-resolved
systemctl status systemd-resolved
rm /etc/resolv.conf
reboot to test...
Run Code Online (Sandbox Code Playgroud)
这是 /etc/systemd/resolved.conf 现在的样子:
# See resolved.conf(5) for details
[Resolve]
#DNS=
#FallbackDNS=
#Domains=
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
#Cache=yes
#DNSStubListener=yes
DNSStubListener=no
Run Code Online (Sandbox Code Playgroud)
这就是全部。
在此之后,请随意安装您想要的任何其他解析器。
归档时间: |
|
查看次数: |
259841 次 |
最近记录: |