如何搜索.local?

Arn*_*rne 4 dns avahi

我刚刚用 Raspbian 设置了我的新 Pi2。一切正常,我安装了 avahi,这样我就可以通过 raspberrypi.local 访问 Pi。但是,Pi 找不到我的 MacBook,这通常可以通过 mymacbook.local 解决。例如,这是我在 ping 时得到的结果:

raspberrypi $ ping mymacbook.local
ping: unknown host mymacbook.local
Run Code Online (Sandbox Code Playgroud)

另一种方式工作正常。

我需要做什么才能让 Raspbian 搜索 .local 域?

Pi 通过 WiFi (wpa_supplicant) 连接,使用 DHCP。

Cel*_*ada 6

使用 avahi 的命令行(在 Linux 上使用):

avahi-browse -a
Run Code Online (Sandbox Code Playgroud)

使用 avahi 的 GUI:

avahi-discover
Run Code Online (Sandbox Code Playgroud)

使用 MacOS 的 GUI:Bonjour 浏览器

注意:这些都没有实际搜索.local域。一般来说,浏览或枚举 DNS 域是不可能的。他们所做的就是浏览底层 Zeroconf 网络服务。


vk5*_*5tu 5

您要做的是将多播 DNS 添加到 Raspbian 上的名称搜索中。

安装软件包 libnss-mdns(即:)sudo apt-get install libnss-mdns。这将拉入 Avahi 包以实现多播 DNS(用于“.local”域的名称解析)。

安装后确保 /etc/nsswitch.conf 有以下行:

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

编辑:当从 mac-->raspi 去确保 Mac 可以登录到你的树莓派安装包 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>
Run Code Online (Sandbox Code Playgroud)

请注意,RaspberryPi 附带的 IPv6 已关闭。如果另一台主机没有实现 IPv4 链接本地地址,那么您可能需要在 RaspberryPi 上打开 IPv6,以便在两台机器之间拥有共同的 IP 协议。您可以在 RasPi 上打开 IPv6,删除 /etc/modprobe.d/ipv6.conf 并重新启动。