avahi-daemon和“ .local”域问题


12

我有一个运行24/7的基于Ubuntu 16.04的HTPC / Media Server 。就我所记得使用的官方Ubuntu发行版而言,avahi-daemon一直存在问题。这个问题经常在网上讨论。有人决定只删除守护程序,但是,当我运行CUPS服务器并使用Kodi作为我的AirPlay接收器时,我实际上需要它。

问题

mDNS / DNS-SD本质上与单播DNS区域.local不兼容。我们强烈建议不要在这种网络设置中使用Avahi或nss-mdns。注意:nss-mdns通常不与Avahi捆绑在一起,并且需要单独下载和安装。(avahi.org)

症状很简单-大约2-4天的正常运行时间后,网络连接将断开,并将对此进行记录

Mar 17 18:33:27 15 avahi-daemon[1014]: Withdrawing address record for 192.168.1.200 on enp3s0.
Mar 17 18:33:27 15 avahi-daemon[1014]: Leaving mDNS multicast group on interface enp3s0.IPv4 with address 192.168.1.200.
Mar 17 18:33:27 15 avahi-daemon[1014]: Interface enp3s0.IPv4 no longer relevant for mDNS.

网络将涨回去没有问题,如果你身体重新连接以太网插头,或者如果你重新连接的软件端。

可能的解决方案

官方Wiki上列出了三种解决方案,该解决方案自2016年6月以来一直不起作用,所以我提供了一个非直接archive.org链接。

1.)从/ 编辑/etc/nsswitch.conf

"hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4"

hosts: files dns mdns4

2.)修改/etc/avahi/avahi-daemon.conf

domain-name=.local

domain-name=alocal

3.)“要求管理员移动.local区域”(如Wiki所述)

我做了什么

第一个解决方案似乎没有为我工作-守护进程仍然有效,但是,网络将同样的方式会下降,前(说句公道话,在wiki上它的确说过Ÿ我们的中号 ileage 中号 AY V元”)

第二个解决方案会导致守护进程(如果你看一下日志没有错)看似正常工作,但在iOS设备无法“看到”本机作为打印机或AirPlay的reciever(以及我的Windows机器上的iTunes)

第三个解决方案是棘手的,因为我不是在深谙“来龙去脉”网络是如何运作的; 而且我不确定我是否真的尝试过。这就是我的意思:在运行Asuswrt-Merlin的Asus路由器上,我进入了设置子类别/ LAN / DHCP Server / Basic Config。在那里,我将“ RT-AC68U的域名 ”设置为“ lan”(我在网络上看到的域名建议,因为它与“ local”不同,不会与任何内容冲突)。据我了解,这就是“ 移动.local区域 ”的含义。如果这实际上是正确的,那么此解决方案对我也不起作用。

结论

所以我该怎么做?我一直在与这个问题作斗争超过4个月,每个在线答案都归结为我已经尝试过的答案。坦白说,我完全迷路了。提前致谢!


这并不能说明你是如何知道的avahi是造成 “网络下乡”的,而不是该日志消息是症状。另请参见unix.stackexchange.com/a/271412/29483
sourcejedi

@sourcejedi搜索“网络随机中断”的症状是指与Ubuntu相关的主板,其中提到了此问题,那里的大多数人都提到avahi是问题所在。链接
Halfer

链接有误,尽管我不会对此争论。至少在前10个单词中,搜索短语也不会为我显示任何此类结果。根据您所写的内容,我只能推断出您尚未测试删除avahi。有趣的是,搜索“提取地址记录”会给我一些有关“网络随机中断”的结果,这些结果被解决为硬件错误,avahi中没有错误。2)Q中的archive.org链接为我显示“未找到结果”。3)哪个“对我不起作用”适用于您的第三个解决方案?,其含义是结果与#1相同,但并不是100%清楚。
sourcejedi

AFAICT Barton的答案是在您的第三个解决方案仅导致avahi / MDNS / bonjour解析/发现导致某些错误,并且不会导致“网络[连接]断开”问题的前提下写的。因此,弄清楚当您尝试应用第三个解决方案时出现的症状真是太好了!
sourcejedi

在你的辛苦,比如,我怀疑你已经看到了答案在这里你的辛苦。请注意,答案没有明确提及网络故障,询问者也没有接受答案,也没有对接下来发生的事情说任何话。
sourcejedi

Answers:


1

我认为第三个解决方案是访问路由器配置时要走的路。我会尝试将“ RT-AC68U的域名”设置为空白。

我接下来要做的是运行诸如wirehark之​​类的操作,并监视avahai-daemon发送和接收的数据包,以及以.local... 结尾的任何域名发送和发送的任何数据包,如果avahai以外的其他设备正在设置LAN .local您可以在其中找到域名。

也有可能是其他问题完全存在,wireshark可能也会告诉您。

如果您完全使用Avahai来为网络上的计算机分配域名,则可以考虑使用dnsmasq。您可以在RT-AC88U路由器上运行它,也可以在Ubuntu盒子上运行它(实际上,它可能已经在ubuntu盒子上运行了,您只需要调整配置文件)。

在Asus-Merlin下设置dnsmasq的文档


因暗示Avahi有一个错误,导致“不兼容”导致它随机地将网络接口设置为脱机状态而被否决,因为这是一种误解,似乎正在蔓延,没有任何具体证据。
sourcejedi

1
我正在使用avahi来向Apple设备和软件宣传AirPlay和AirPrint服务
2015年

1

因此,我尝试将“ avahi-daemon.conf”中的“ host-name”参数更改为不是计算机主机名的名称,并且我已经运行了2周,没有任何问题。也许这与使用“ .local”域运行samba和Windows的计算机本身有关吗?


Windows / Samba不会为“ .local”分配特殊含义。(.尽管出于某些目的,也可以在netbios中使用s)。avahi是在ubuntu / fedora上默认启用的,而且我从未见过关于同时运行samba的警告。我无法想象为什么avahi-daemon会包含任何设置接口地址或状态的代码。感谢您返回测试结果,希望该设置从现在开始继续工作!
sourcejedi '17
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.