mDNS (Avahi) 在 RP 上工作,但不在它们之间工作

问题描述 投票:0回答:2

Avahi/mDNS 在最新版本的 Raspian 上默认运行。伟大的。非常方便就

ssh [email protected]
.

我正在 Mac 上进行开发并运行无头 Raspberry Pi 的本地网络。到目前为止,我已经能够使用 mDNS 访问 Pi,并且 Pi 也使用 mDNS 相互连接。

今天,我通过将 RP 设置在未连接到互联网的无线路由器上,将它们转移到专用本地网络。一旦我加入专用网络,我仍然可以通过 mDNS 访问它们:

% ssh [email protected]
Linux scheduler 5.10.63-v7l+ #1459 SMP Wed Oct 6 16:41:57 BST 2021 armv7l

Last login: Mon Aug  1 09:07:43 2022
pi@scheduler:~ $ 

wes@macbook % ssh [email protected]
Linux crossing 5.10.17-v7l+ #1414 SMP Fri Apr 30 13:20:47 BST 2021 armv7l

Last login: Mon Aug  1 09:07:46 2022
pi@crossing:~ $

但是当他们尝试互相访问时,我得到了一些我不明白的结果:

pi@scheduler:~ $ ping crossing.local
PING crossing.local (10.0.0.1) 56(84) bytes of data.
From 192.168.0.1 (192.168.0.1) icmp_seq=1 Destination Net Unreachable
From 192.168.0.1 (192.168.0.1) icmp_seq=2 Destination Net Unreachable
From 192.168.0.1 (192.168.0.1) icmp_seq=3 Destination Net Unreachable
From 192.168.0.1 (192.168.0.1) icmp_seq=4 Destination Net Unreachable

以下是 Avahi 的报道:

pi@scheduler:~ $ service avahi-daemon status
● avahi-daemon.service - Avahi mDNS/DNS-SD Stack
   Loaded: loaded (/lib/systemd/system/avahi-daemon.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2022-08-01 09:07:37 PDT; 41min ago
 Main PID: 388 (avahi-daemon)
   Status: "avahi-daemon 0.7 starting up."
    Tasks: 2 (limit: 1438)
   CGroup: /system.slice/avahi-daemon.service
           ├─388 avahi-daemon: running [scheduler.local]
           └─414 avahi-daemon: chroot helper

Aug 01 09:08:08 scheduler avahi-daemon[388]: Leaving mDNS multicast group on interface wlan0.IPv4 with address 169.
Aug 01 09:08:08 scheduler avahi-daemon[388]: Joining mDNS multicast group on interface wlan0.IPv4 with address 192.
Aug 01 09:48:29 scheduler avahi-daemon[388]: Files changed, reloading.
Aug 01 09:48:29 scheduler avahi-daemon[388]: No service file found in /etc/avahi/services.

这是我的主机和主机名文件:

pi@scheduler:~ $ cat /etc/hosts
127.0.0.1   localhost
::1     localhost ip6-localhost ip6-loopback
ff02::1     ip6-allnodes
ff02::2     ip6-allrouters

127.0.1.1   scheduler
pi@scheduler:~ $ cat /etc/hostname 
scheduler

avahi 对此有何评论?让我们看看:

pi@brs-scheduler:~ $ avahi-resolve --name brs-crossing.local -4
brs-crossing.local  192.168.0.214
pi@brs-scheduler:~ $ ifconfig | grep "inet 192"
        inet 192.168.0.109  netmask 255.255.255.0  broadcast 192.168.0.255
pi@brs-scheduler:~ $ ping brs-crossing.local
PING brs-crossing.local (10.0.0.1) 56(84) bytes of data.
From 192.168.0.1 (192.168.0.1) icmp_seq=1 Destination Net Unreachable

因此,由于某种原因,在此专用网络上,mDNS 可以正确解析,但 ping 和 ssh 无法正确解析?

我错过了什么?

raspberry-pi mdns avahi
2个回答
1
投票

不出所料,由于 pi 在本地网络上工作正常,但在使用新路由器的私有网络上停止工作,这与新路由器的配置有关,而不是 mDNS。

mDNS 工作正常:

pi@scheduler:~ $ avahi-resolve --name crossing.local -4
crossing.local  192.168.0.214

专用网络上的新路由器有两种工作模式“路由器”和“接入点”。在“路由器”模式下,路由器将 DNS 名称服务器 IP 推送到客户端,该客户端以某种方式托管 ping 和 ssh 以及其他服务,尽管 mDNS 工作正常。

pi@scheduler:~ $ cat /etc/resolv.conf
# Generated by resolvconf
nameserver 192.168.0.1

将路由器置于“接入点”模式并手动打开 DHCP 后,一切正常。

模糊的问题。模糊的解决方案。


0
投票

我在 Raspbian Buster 上遇到了同样的问题,解决方案是添加一个包含内容的文件

/etc/mdns.allow

.local. .local
这足以使 

ping somename.local

 发挥作用。

为后代提供更多详细信息:

这是一个非常奇怪的问题。如果我向该命令发送大约 30 到 50 次垃圾邮件,我就能让单个

ping somename.local

 命令发挥作用。我比较了成功的输出和未成功的输出之间的 
strace
 输出,显然失败的输出找不到 
/etc/mdns.allow
。奇怪的是,成功的人甚至从未检查过这个文件。一定有某种情况不需要进行此检查?

© www.soinside.com 2019 - 2024. All rights reserved.