avahi-resolve 可以工作,但是 mdns

avahi-resolve 可以工作,但是 mdns

我有更新的 Debian 11 (bullseye) 设置,并且想要使用 avahi 连接到本地连接的计算机。

avahi 的工作方式,例如:

avahi-resolve -n4 prag11mono.local 

给出prag11mono.local 10.0.0.105哪个是正确的。但是,ping(或ssh) 对于同一主机

ping prag11mono.local
PING prag11mono.local.rpz.GS.local (127.0.0.2) 56(84) bytes of data.
64 bytes from 127.0.0.2 (127.0.0.2): icmp_seq=1 ttl=64 time=0.035 ms

这里我不明白这个rpz.GS.local加法是从哪里来的。它不会添加到ssh prag11mono.local,但请求也会添加到127.0.0.2

/etc/nsswitch.conf我有

主机:文件 mdns4_minimal [NOTFOUND=return] dns mdns4

但 getent 托管 bhutan.local

什么也不返回。我没有/etc/mdns.allow文件。

avahi-daeomon和之间的联系mdns4令人费解。我可以使用 systemctl 重新启动 avahi-daemon;但我该如何重新启动呢mdns

我担心我错过了一些安装。我尝试安装该软件包nss-mdns,但得到了unable to locate package——它应该可以用于靶心。我安装libnss-mdns并检查所需的文件是否位于“/lib/libnss_mdns*”中

缺什么?如何调试?

答案1

对于当前 Debian 11(牛眼)解决方案的适用范围存在很多混乱。我发现我还没有安装bind9(只是相关的特定包)并且需要

systemctl enable named-resolvconf

我想默认值nsswitch.conf就可以了。与named-resolvconf跑步。dig没有rpz像以前一样返回任何提示。但是,我不需要跑

systemctl status systemd-networkd
systemctl status systemd-resolved

返回两者disabled; inactive。我看到一些提示,这些可能是必要的,但可能需要其他配置。

区分resolvconf和可能很重要systemd-resolved,哪些做一些类似的事情,但不兼容。我的解决方案似乎依赖于resolvconfbind9

答案2

我在最近的 Debian 内核(Raspberry Pi OS)中遇到了同样的问题。在阅读了 nss-mdns 文档和互联网上的大量说明后,我尝试了mdnsmdns_minimal以及它们的组合,所有结果都相同,但 ping 从未工作。

然后我深入strace ping ...研究它进入libnss-mdnsand/or 的程度avahi-daemon,发现两个选项mdnsmdns_minimal都在尝试读取/etc/mdns.allow文件,如果没有找到,则放弃,这与多个地方声称如果文件没有找到相反存在,他们认为默认值就好像它与“*”一起存在 - 大谎言!

所以我添加了丢失的/etc/mdns.allow文件:

# /etc/mdns.allow
.local.
.local

你瞧,它开始起作用了。

相关内容