我avahi-daemon
在 Debian 9.1 服务器上运行;但是,avahi-browse -a
在我的家庭网络(由单个网络组成)中不显示任何服务192.168.178.0/24
。
我可以访问所有客户端(ping
在适用的情况下使用 和进行测试ssh
)并且
server# tcpdump port 5353
给出了我的客户的大量输出,例如,
15:30:07.206879 IP Client-OSX.fritz.box.mdns > 224.0.0.251.mdns: 0 [20a] [9q] PTR (QM)? _services._dns-sd._udp.local. PTR (QM)? _http._tcp.local. PTR (QM)? _ipp._tcp.local. PTR (QM)? _pdl-datastream._tcp.local. PTR (QM)? _printer._tcp.local. PTR (QM)? _scanner._tcp.local. PTR (QM)? _privet._tcp.local. PTR (QM)? _http-alt._tcp.local. PTR (QM)? _ssh._tcp.local. (847)
但是,我的客户端看不到我的服务器,反之亦然,但客户端可以看到彼此的服务,例如,
client1# avahi-browse -a
+ enp0s25 IPv6 client2 SSH Remote Terminal local
+ enp0s25 IPv4 my-printer _privet._tcp local
...
/etc/avahi/avahi-daemon.conf
:
[server]
host-name=alexandria
#domain-name=local
browse-domains=fritz.box
use-ipv4=yes
use-ipv6=yes
allow-interfaces=eno1 eno2
# deny-interfaces=eth1
# check-response-ttl=no
# use-iff-running=no
enable-dbus=yes
# disallow-other-stacks=no
allow-point-to-point=yes
# cache-entries-max=4096
# clients-max=4096
# objects-per-client-max=1024
# entries-per-entry-group-max=32
ratelimit-interval-usec=1000000
ratelimit-burst=1000
[wide-area]
enable-wide-area=yes
[publish]
disable-publishing=no
#disable-user-service-publishing=no
#add-service-cookie=no
publish-addresses=yes
publish-hinfo=no
publish-workstation=no
publish-domain=yes
#publish-dns-servers=192.168.50.1, 192.168.50.2
publish-resolv-conf-dns-servers=yes
publish-aaaa-on-ipv4=yes
#publish-a-on-ipv6=no
[reflector]
enable-reflector=yes
#reflect-ipv=no
[rlimits]
#rlimit-as=
rlimit-core=0
rlimit-data=4194304
rlimit-fsize=0
rlimit-nofile=768
rlimit-stack=4194304
rlimit-nproc=3
客户端运行 Kubuntu 16.04 和 macOS。
我缺少什么?
答案1
为了使您的服务器对 Ubuntu 客户端可见,请在 debian avahi 守护程序配置文件中更改
publish-workstation=no
到
publish-workstation=yes
接下来重启avahi-daemon
服务。
答案2
经过几个月这在我的笔记本电脑上不起作用后,我意识到问题是 iptables...(就我而言,必须iptables-legacy
具体检查!)
因为我有时将其连接到会议和其他公共网络,所以拥有防火墙规则似乎是明智的。但如果这些阻止 5353/udp 数据包,那么当我在家时,mDNS 将无法工作。
不知道这是否是您 4-5 年前的问题,但是......这个结果在“avahi sees no Hosts”中显示得很高。希望我的评论有一天能对某人有所帮助。
答案3
在 Rocky Linux 9(RHEL、CentOS)上,avahi-browse 没有向我显示任何内容,因为默认情况下,分配给任何无线连接的“公共”区域的防火墙不允许 mdns。我必须通过运行以下命令将我的 wi-fi 重新分配给防火墙区域“home”:
sudo firewall-cmd --zone=home --change-interface=wlp8s0f3u4
其中“wlp8s0f3u4”是我的 Wi-Fi 接口名称。你可以从
ip a
它的名称应该以“wl”开头
答案4
avahi-browse 需要libnss-mdns
包并且/etc/nsswitch.conf
必须在其hosts:
行中附加两个条目mdns mdns4
,即
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4 mdns
net-tools
我还通过首先安装getifconfig
然后运行来将多播添加到接口中
服务器$ ifconfig eth0 allmulti