.local 主机名解析在 20.04 上很慢

.local 主机名解析在 20.04 上很慢

自从从 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

  1. 改变/etc/nsswitch.conf

    hosts:          files dns myhostname
    
  2. 编辑/etc/systemd/resolved.conf

    MulticastDNS=yes
    
  3. 创建一个/etc/NetworkManager/conf.d/mdns.conf包含以下内容的新文件:

    [connection]
    connection.mdns=2
    
  4. 重新开始NetworkManager

    sudo service NetworkManager restart
    
  5. 可能还需要重新启动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。

相关内容