在 Debian 6.0.6 系统 (squeeze) 上,我无法使用 Avahi 和 IPv4 解析主机。以下是示例输出:
: nr@homedog 10102 ; avahi-browse -a
+ eth0 IPv6 yorkie [00:1f:3b:d8:67:1d] Workstation local
+ eth0 IPv6 homedog [bc:5f:f4:5a:b1:73] Workstation local
+ eth0 IPv4 homedog [bc:5f:f4:5a:b1:73] Workstation local
请注意homedog
,本地计算机在 IPv6 和 IPv4 上均可见。但yorkie
远程计算机仅在 IPv4 上可见。并且avahi-resolve-host-name -4 yorkie.local
挂起而无结果。
编辑:情况是对称的:在 IPv4 和 IPv6 上都能看到自己,但只能在 IPv6 上yorkie
看到。homedog
在 上yorkie
,输出iptables -vnL
为
Chain INPUT (policy ACCEPT 109K packets, 98M bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 108K packets, 94M bytes)
pkts bytes target prot opt in out source destination
(为了使显示适合 StackExchange 而不换行,我对水平空间进行了一些改动。)homedog
除了数字外,显示内容相同:对于所有三个,它都显示 0 个数据包和 0 个字节。(我不知道如何解释这些输出,但可能有用的是, 的yorkie
当前正常运行时间为 41 天,homedog
的当前正常运行时间为 6 小时。)
我发现了一个已关闭的票http://avahi.org/ticket/297,这表明问题出在某种防火墙配置上。我在这方面完全是新手,通过网络搜索,我无法了解如何使用该iptables
命令来诊断或修复问题。我找到了另一张票Debian 错误 547974,但这个错误被关闭了,并没有解释如何解决这个问题。
假设服务发现包不知何故被阻止了——我不知道在哪台机器上。有人能告诉我如何发现哪台机器阻止了数据包和如何重新配置它那么 Avahi 发现了 IPv4 地址吗?
答案1
这个问题还没有完全诊断出来,但它是两个问题的结合:
在主机上
yorkie
,一些未知的守护进程不断安装iptables
规则。我删除了规则,但最终它们又重新出现。更有害的部分:
yorkie
是无线连接的,并且**我的 Verizon ActionTec 路由器正在阻止 mDNS 数据包。
和两个都问题已解决,avahi-browse -a
按预期工作。