ubuntu 无法解析 USB 设备名称

ubuntu 无法解析 USB 设备名称

我有一台运行 Linux 的 ARM SBC,配置为使用 rndis 小工具通过 USB 连接到 PC。在我的设备中,我配置了 dnsmasq 以向主机 PC 提供 ipv6 地址,我还配置了 avahi-daemon 以(通过 ipv6)提供我的设备的名称(device-1234)。如果我从 ms-prompt 将我的设备连接到 Windows PC,我可以使用它的名称 ping 该设备(ping device-1234)我还有一台装有 Ubuntu 20.04 的 PC,我可以使用 IPV6 ip ping 我的设备,但如果我尝试使用它的名称 ping(ping device-1234),我会收到:“名称或服务未知”

我必须在 Ubuntu 中安装一个软件包以允许它解析我的设备名称吗?

我的问题是,在 Ubuntu 中我无法从名称中解析 ipv6 地址(就像 Windows 那样)在我的设备中我配置了 avahi-daemon 如下:

[server]
host-name=device-1234
use-ipv4=no
use-ipv6=yes
allow-interfaces=usb0
..

一旦连接到 Windows PC,从 Windows 提示:

ping device-1234 

Pinging device-1234.local [fda7:cae0:0:7::1] with 32 bytes of data:
Reply from fda7:cae0:0:7::1: time=7ms
Reply from fda7:cae0:0:7::1: time<1ms
Reply from fda7:cae0:0:7::1: time=1ms
Reply from fda7:cae0:0:7::1: time=2ms

一旦连接到 Ubuntu 电脑,从 Ubuntu 控制台:

ping device-1234
ping: device-1234: Name or service not known

but if I ping using my device ipv6 address

ping fda7:cae0:0:7::1
PING fda7:cae0:0:7::1(fda7:cae0:0:7::1) 56 data bytes
64 bytes from fda7:cae0:0:7::1: icmp_seq=1 ttl=64 time=14.8 ms
64 bytes from fda7:cae0:0:7::1: icmp_seq=2 ttl=64 time=3.34 ms
64 bytes from fda7:cae0:0:7::1: icmp_seq=3 ttl=64 time=3.06 ms

Ubuntu 似乎无法解析我的设备主机名,而 Windows 可以。zeroconf 似乎在 Windows 中有效,但我不知道如何让它在 Ubuntu 上工作

此致

答案1

我找到了解决方案:

默认情况下,Ubuntu 仅解析 ipv4 的 mDNS。要启用 ipv6 上的 mDNS,必须将文件 /etc/nsswitch.conf 从:

files mdns4_minimal dns myhostname

到:

files mdns_minimal dns myhostname

相关内容