我已经在连接到路由器 LAN 的服务器上安装了 squid-deb-proxy。
如果我从直接连接到 LAN 的笔记本电脑浏览可用的零配置服务,我会看到 IP4 和 IP6 squid-deb-proxy 的广告:
$ avahi-browse -a
...
+ eth0 IPv6 Squid deb proxy on mythbox _apt_proxy._tcp local
+ eth0 IPv4 Squid deb proxy on mythbox _apt_proxy._tcp local
但如果我断开笔记本电脑并通过 WLAN 重试,我只会看到 IPv6 服务:
$ avahi-browse -a
...
+ wlan0 IPv6 Squid deb proxy on mythbox _apt_proxy._tcp local
我仍然可以 ping 通 IP4 地址,没有任何问题,这似乎只是 mdns 的问题?此外,服务器(在 LAN 上)可以看到其他(WLAN)机器的所有 IP4 mdns 条目。为什么我只能看到来自 WLAN 的 IPv6 服务?
答案1
我发现这种情况发生是因为我的笔记本电脑上有 iptables 防火墙阻止了 UDP 端口 5353。这阻止了 IPv4 地址的传入 mDNS 注册广播(通常仅通过 IPv4 传输)到达我的计算机avahi-daemon
并在缓存中注册。
我没有配置ip6tables
,因此携带 IPv6 地址的 IPv6 数据包不会被阻止,而是到达avahi-daemon
并存储在缓存中。所以我可以在缓存中看到它们,但看不到 IPv4 地址。