/etc/hosts 中的 IPv6 链路本地地址

Man*_*cob 5 hosts ipv6

我有这样的条目/etc/hosts

fe80::XXXX:XXff:feXX:XXXX%enp0s25 test-ipv6
Run Code Online (Sandbox Code Playgroud)

这是一个链接本地地址。我在这篇文章中屏蔽了我的 MAC 地址(第七个最高有效位被翻转)。

我可以 ping 该地址,但 pingtest-ipv6给出

ping: test-ipv6: Name or service not known
Run Code Online (Sandbox Code Playgroud)
  • 为什么不起作用?
  • 是否有其他方法将 IPv6 链路本地地址分配给主机名?

我使用的是内核版本为 4.17.2 的 Arch Linux。

编辑:这主要是/etc/hosts 中 IPv6 范围 ID的重复。

Joh*_*éen 0

systemd-resolved在网络上使用链路本地多播名称解析 (LLMNR) 或多播 DNS (mDNS)(由 实现)。使用 LLMNR 或 mDNS,本地网络上的主机会使用自己的主机名进行响应。在现代 Linux 发行版上,解析器返回链路本地 IPv6 地址的作用域 ID,即使使用链路本地 IPv6 地址,一切也应该正常工作。

根据您的 Linux 发行版,您可能已经启用了 LLMNR:尝试

ping -6 somehost
Run Code Online (Sandbox Code Playgroud)

(或ping6somehost您尝试访问的同一 LAN 上的主机在哪里。