首先,我查阅了几个Q/A,我可以确保以下几点得到满足:
IGMP 侦听不会被交换机/路由器过滤。
Bonjour 服务 (
mDNSResponder.exe
) 在防火墙上被授予并允许UDP端口5353(窗户一侧)。Avahi 配置正确(并且禁用了 ipv6)并且
nssitch.conf
已完成所需的修改hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
Avahi-daemon 以及 bonjour 服务正在运行。
- Windows 端
ipv6
在活动网络接口上被禁用,avahi-daemon 也配置为不使用 ipv6:use-ipv6=no
。
Pi 的 mDNS 问题
一段时间后,从 Windows 发出 a 后,与树莓派对应的主机名.local
不再解析ping pi.local
,请注意,启动时它响应完美,并且重新启动 avahi-daemon 将在问题再次出现之前临时修复它。
就在 mdns 解析失败后,我在锉刀上执行了以下命令,avahi-resolve -n pi.local
它显示了 ipv6 ( fe80::xxaa:yybb:zzde:ee
),这很奇怪,因为正如我提到的,我有禁用 IPv6在 avahi 配置中,就在我这次重新执行相同的命令之后,我得到了 ipv4 作为答案
pi.local 192.168.1.7
ping 似乎也再次响应。
聚苯乙烯
运行 Linux pi 4.4.38-v7+ #938
使用 Windows v2.0.2 版 Bonjour 打印服务:https://support.apple.com/kb/DL999,并且它作为服务运行。
avahi-resolve -n pi.local
仅禁用 ipv6命令的返回192.168.1.7
而不是 ipv6,但问题仍然存在。
/var/log/messages
与阿瓦希无关。
对问题的根源有什么想法吗?
avahi-daemon
重新启动并发送上述解析命令一段时间后的 syslog :
18:21:47 pi systemd[1]: Stopping Avahi mDNS/DNS-SD Stack...
18:21:47 pi avahi-daemon[427]: Got SIGTERM, quitting.
18:21:47 pi avahi-daemon[427]: Leaving mDNS multicast group on
interface wlan0.IPv4 with address 192.168.1.7.
18:21:47 pi avahi-daemon[427]: avahi-daemon 0.6.31 exiting.
18:21:47 pi systemd[1]: Starting Avahi mDNS/DNS-SD Stack...
18:21:47 pi avahi-daemon[1143]: Process 427 died: No such process;
trying to remove PID file. (/var/run/avahi-daemon//pid)
18:21:47 pi avahi-daemon[1143]: Found user 'avahi' (UID 105) and group
'avahi' (GID 110).
18:21:47 pi avahi-daemon[1143]: Successfully dropped root privileges.
18:21:47 pi avahi-daemon[1143]: avahi-daemon 0.6.31 starting up.
18:21:47 pi avahi-daemon[1143]: Successfully called chroot().
18:21:47 pi avahi-daemon[1143]: Successfully dropped remaining
capabilities.
18:21:47 pi avahi-daemon[1143]: Loading service file
/services/multiple.service.
18:21:47 pi avahi-daemon[1143]: Loading service file
/services/udisks.service.
18:21:47 pi avahi-daemon[1143]: Joining mDNS multicast group on
interface wlan0.IPv4 with address 192.168.1.7.
18:21:47 pi avahi-daemon[1143]: New relevant interface wlan0.IPv4 for
mDNS.
18:21:47 pi avahi-daemon[1143]: Network interface enumeration
completed.
18:21:47 pi avahi-daemon[1143]: Registering new address record for
fe80::f2f:3b5b:ab5b:35c1 on wlan0.*.
18:21:47 pi avahi-daemon[1143]: Registering new address record for
192.168.1.7 on wlan0.IPv4.
18:21:47 pi avahi-daemon[1143]: Registering HINFO record with values
'ARMV7L'/'LINUX'.
18:21:47 pi systemd[1]: Started Avahi mDNS/DNS-SD Stack.
18:21:48 pi avahi-daemon[1143]: Server startup complete. Host name is
pi.local. Local service cookie is 2501181696.
18:21:49 pi avahi-daemon[1143]: Service "pi"
(/services/udisks.service) successfully established.
18:21:49 pi avahi-daemon[1143]: Service "pi"
(/services/multiple.service) successfully established.
答案1
我有同样的问题,虽然我无法“修复”它,但我有一个巧妙的解决方法:在记录过期之前重新启动 avahi-daemon。它们的 TTL 似乎为 120 秒(根据dns-sd -G v4 pi.local
macOS 上的数据)
sudo crontab -e
# Add the following line to the crontab
*/1 * * * * systemctl restart avahi-daemon.service
# Save and exit
答案2
简而言之,在目标设备(即Raspberry Pi)上,首先通过暂时停止防火墙服务进行调试。如果这有帮助,那么这意味着你和我有同样的问题。仅允许 TCP/UDP 连接在目标设备上至端口 548、5353、5354。
我在超级用户上回答了同样的问题。请检查这了解详情。