自从从 18.04 更新到 20.04 以来,解析.local
主机名变得很慢。事情很简单:
ping flibble.local
在 18.04 上立即生效,但在 20.04 上需要大约 5 秒左右,之后它表现正常。然而,再次运行时仍然需要另外 5 秒。
自更新以来,我没有自定义任何东西。如果有关系的话,Ubuntu 正在 Parallels 中作为 VM 运行。我可以根据需要在必要时提供详细信息。
我的/etc/nsswitch.conf
文件包含通常的内容:
hosts: files mdns4_minimal [NOTFOUND=return] dns myhostname
我尝试寻找解决这个问题的方法,但目前还没有任何方法可以解决它。
systemctl status systemd-resolved.service
输出:
● systemd-resolved.service - Network Name Resolution
Loaded: loaded (/lib/systemd/system/systemd-resolved.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2020-10-05 09:55:47 PDT; 10min ago
Docs: man:systemd-resolved.service(8)
https://www.freedesktop.org/wiki/Software/systemd/resolved
https://www.freedesktop.org/wiki/Software/systemd/writing-network-configuration-managers
https://www.freedesktop.org/wiki/Software/systemd/writing-resolver-clients
Main PID: 592 (systemd-resolve)
Status: "Processing requests..."
Tasks: 1 (limit: 7061)
Memory: 9.4M
CGroup: /system.slice/systemd-resolved.service
└─592 /lib/systemd/systemd-resolved
Oct 05 09:55:47 invasion-ubuntu20 systemd[1]: Starting Network Name Resolution...
Oct 05 09:55:47 invasion-ubuntu20 systemd-resolved[592]: Positive Trust Anchors:
Oct 05 09:55:47 invasion-ubuntu20 systemd-resolved[592]: . IN DS 20326 8 2 e06d44b80b8f1d39a95c0b0d7c65d08458e880409bbc683457104237c7f8ec8d
Oct 05 09:55:47 invasion-ubuntu20 systemd-resolved[592]: Negative trust anchors: 10.in-addr.arpa 16.172.in-addr.arpa 17.172.in-addr.arpa 18.172.in-addr.arpa 19.172.>
Oct 05 09:55:47 invasion-ubuntu20 systemd-resolved[592]: Using system hostname 'invasion-ubuntu20'.
Oct 05 09:55:47 invasion-ubuntu20 systemd[1]: Started Network Name Resolution.
Oct 05 09:55:47 invasion-ubuntu20 systemd-resolved[592]: Using degraded feature set (UDP) for DNS server 192.168.6.1.
答案1
看起来解决方案可能nss-mdns
根本不依赖于。我不熟悉systemd-resolved
,它似乎具有 mdns 解析能力。它似乎优于nss-mdns
。但是, mdnssystemd-resolved
似乎默认处于关闭状态。以下是我激活它并停用 的方法nss-mdns
。
改变
/etc/nsswitch.conf
:hosts: files dns myhostname
编辑
/etc/systemd/resolved.conf
:MulticastDNS=yes
创建一个
/etc/NetworkManager/conf.d/mdns.conf
包含以下内容的新文件:[connection] connection.mdns=2
重新开始
NetworkManager
:sudo service NetworkManager restart
可能还需要重新启动
systemd-resolved
:sudo service systemd-resolved restart
测试结果:
resolvectl mdns
当它工作时,你应该得到:
Global: yes
Link 2 (enp0s5): yes
现在:
time ping -c1 invasion.local
在 150 毫秒内完成。
答案2
此外比尔·巴顿非常棒回答这对我有很大帮助,我还必须在配置中禁用 IPV6。启用了 IPv6 的机器仍然可以快速解析。如果我尝试 ping 未启用 IPv6 的机器(例如我的 Nas4Free 服务器),则大约需要 5 到 10 秒才能开始响应。NSLookup 也一样。
我按照说明进行操作如何在 Ubuntu 20.04 LTS Focal Fossa 上禁用 IPv6 地址 - LinuxConfig.org在我的 Ubuntu 20.04 机器上禁用 IPv6。