如何在 Ubuntu 和 Debian 上为 IPv6 启用 mDNS?

Phi*_*ing 4 ubuntu debian mdns

我在所有家用机器上注意到的一点是,它们都不能解析.localIPv6 的地址。这看起来很奇怪,因为他们可以为 IPv4 解析它们,而且我所有的家用机器都有本地链接fe80::地址和公共2a00::地址。

到目前为止,我一直无法弄清楚这些工作缺少什么。

IPv4

# ping neptune.local
PING neptune.local (192.168.1.223) 56(84) bytes of data.
64 bytes from neptune (192.168.1.223): icmp_seq=1 ttl=64 time=275 ms
64 bytes from neptune (192.168.1.223): icmp_seq=2 ttl=64 time=197 ms
Run Code Online (Sandbox Code Playgroud)

IPv6

# ping -6 neptune.local
ping: neptune.local: Name or service not known

# ping -6 2a00:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx
PING 2a00:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx(2a00:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx) 56 data bytes
64 bytes from 2a00:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx: icmp_seq=2 ttl=64 time=2.21 ms
64 bytes from 2a00:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx: icmp_seq=3 ttl=64 time=3.13 ms
Run Code Online (Sandbox Code Playgroud)

主机条目来自/etc/nsswitch.conf

hosts:          files mdns4_minimal [NOTFOUND=return] dns
Run Code Online (Sandbox Code Playgroud)

如何在 Ubuntu 和/或 Debian 上为 IPv6 启用 mDNS?

Rui*_*iro 6

要在 mDNS 中启用 IPv6,avahi需要更改 Linux VM 客户端和服务器端的配置。步骤是:

1) 为 IPv6 配置 avahi,如果尚未完成(Debian 10 已经将其作为默认设置):

/etc/avahi/avahi-daemon.conf

[server]
use-ipv6=yes
Run Code Online (Sandbox Code Playgroud)

2) 将 mDNS 线路条目/etc/nsswitch.conf从:

hosts:          files mdns4_minimal [NOTFOUND=return] dns
Run Code Online (Sandbox Code Playgroud)

到:

hosts:          files mdns_minimal [NOTFOUND=return] dns
Run Code Online (Sandbox Code Playgroud)

3)然后重新启动avahi服务,或者使用:

sudo service avahi-daemon restart
Run Code Online (Sandbox Code Playgroud)

或者:

sudo systemctl restart avahi-daemon.service
Run Code Online (Sandbox Code Playgroud)

请参阅在 Avahi (Zeroconf/Bonjour) 中启用 IPv6 支持