我有更新的 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
,哪些做一些类似的事情,但不兼容。我的解决方案似乎依赖于resolvconf
和bind9
。
答案2
我在最近的 Debian 内核(Raspberry Pi OS)中遇到了同样的问题。在阅读了 nss-mdns 文档和互联网上的大量说明后,我尝试了mdns
和mdns_minimal
以及它们的组合,所有结果都相同,但 ping 从未工作。
然后我深入strace ping ...
研究它进入libnss-mdns
and/or 的程度avahi-daemon
,发现两个选项mdns
和mdns_minimal
都在尝试读取/etc/mdns.allow
文件,如果没有找到,则放弃,这与多个地方声称如果文件没有找到相反存在,他们认为默认值就好像它与“*”一起存在 - 大谎言!
所以我添加了丢失的/etc/mdns.allow
文件:
# /etc/mdns.allow
.local.
.local
你瞧,它开始起作用了。