我有一台树莓派,它使用 avahi-daemon 为多个服务宣布了它的主机名。但是,即使我在网络上的 PC 上接收到了这些信息,我也无法通过 ssh 访问它。
$ avahi-browse -at | grep -i ssh
+ wlp3s0 IPv4 raspi SSH Remote Terminal local
+ wlp3s0 IPv4 arch SSH Remote Terminal local
$ ssh [email protected]
ssh: Could not resolve hostname raspi.local: Name or service not known
$ ssh pi@raspi
ssh: Could not resolve hostname raspi: Name or service not known
我尝试更改了host
行/etc/nsswitch.conf
和一些参数/etc/avahi/avahi-daemon.conf
avahi-discover 完美地显示它是 IPv4 和 IPv6,但是当我获取我的机器已知主机时,我得到的只是我自己的机器
$ getent hosts
127.0.0.1 localhost.localdomain localhost arch
127.0.0.1 localhost.localdomain localhost arch
我也尝试过将 IP 设置为静态,/etc/network/interfaces
或者尝试从 dhclient.conf 设置中公布主机名,send host-name = "raspberry.pi";
但结果一样。
并且没有运行 iptables 服务或任何其他防火墙。
答案1
您可能需要将 avahi 添加到主机名解析中。ArchLinux 的说明(我猜是因为您的机器名称似乎是 arch)可在此处找到:https://wiki.archlinux.org/index.php/Avahi#Hostname_resolution。