我刚刚用 Raspbian 设置了我的新 Pi2。一切正常,我安装了 avahi,这样我就可以通过 raspberrypi.local 访问 Pi。但是,Pi 找不到我的 MacBook,这通常可以通过 mymacbook.local 进行解析。例如,这是我 ping 时得到的结果:
raspberrypi $ ping mymacbook.local
ping: unknown host mymacbook.local
相反的方法效果很好。
我需要做什么才能让 Raspbian 搜索 .local 域?
Pi 使用 DHCP 通过 WiFi (wpa_supplicant) 连接。
答案1
您想要做的是将多播 DNS 添加到 Raspbian 上的名称搜索中。
安装 libnss-mdns 软件包(即sudo apt-get install libnss-mdns
:)。这将引入 Avahi 包来实现多播 DNS(用于“.local”域的名称解析)。
安装后确保 /etc/nsswitch.conf 包含以下行:
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
编辑:当从 mac-->raspi 确保 Mac 可以登录到你的 Raspberry Pi 时,安装 avahi-daemon 包并添加一个文件 /etc/avahi/services/ssh.service 包含
<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">%h</name>
<service>
<type>_ssh._tcp</type>
<port>22</port>
</service>
</service-group>
请注意,RaspberryPi 出厂时 IPv6 已关闭。如果另一台主机没有实现 IPv4 链路本地地址,那么您可能需要在 RaspberryPi 上打开 IPv6,以便在两台机器之间拥有共同的 IP 协议。您可以在 RasPi 上打开 IPv6,删除 /etc/modprobe.d/ipv6.conf 并重新启动。
答案2
使用 avahi 的命令行(在 Linux 上使用):
avahi-browse -a
使用 avahi 的 GUI:
avahi-discover
使用 MacOS 的 GUI:卓悦浏览器。
笔记:这些实际上都没有搜索.local
域。一般来说,浏览或枚举 DNS 域是不可能的。他们所做的就是浏览底层 Zeroconf 网络服务。