为什么 NSS 不使用 mDNS?

为什么 NSS 不使用 mDNS?

我有一台无法通过 mDNS 解析主机名的机器:

### mDNS is working
$ avahi-resolve -n foo.local
foo.local   1.2.3.4

### NSS is configured to use mDNS
$ grep ^hosts /etc/nsswitch.conf 
hosts:          files mdns4_minimal [NOTFOUND=return] dns

### But something's not working in practice...
$ getent hosts foo.local   # returns empty

为避免疑问,getent hosts对于在单播 DNS 中定义的名称/etc/hosts和通过单播 DNS 解析的名称均返回成功/正确的结果。

重新启动可以解决问题,但我想知道出了什么问题/如何在不重新启动的情况下解决问题。

大概libnss-mdns需要某种形式的踢,虽然我得到的印象是nsswitch.conf:是否有我需要重新启动的守护进程?那没有必要。

答案1

我刚刚在 16.04 盒子上遇到了这个问题。可惜我浪费了几个小时却没有意识到简单的解决方案就是弹出盒子。

从我在 bsd 上看到的情况来看,我怀疑需要重新启动的服务是 dbus。参考资料是https://revprez.github.io/posts/2016-06-26-avahi-conquered.html

相关内容