Centos 7 Avahi 无法从 Windows 计算机解析

Centos 7 Avahi 无法从 Windows 计算机解析

我已经在 Centos 6.6 上安装并配置了 avahi-daemon 和 samba,当我从 Ubuntu 机器上测试它时,它可以正常工作。例如:ping myhostname.localsmb://myhostname.local

但是,当我从 Windows 机器上尝试时,Samba 既不能工作,也不能通过以下方式 ping 它:ping myhostname

谁能向我解释一下 Windows 和 Ubuntu 之间可能存在的区别。

此外,如果 Windows 可以在浏览网络时列出我的服务器,那就太好了,但我不知道是否应该启用类似广播的功能,或者只是正常配置就足够了。

提前致谢。

答案1

经过两天的工作和研究,多亏了Wireshark,我发现Windows不使用mdns协议来解析主机名,而只是使用自己的协议进行查询NetBios。因此,Avahi显然不会对其做出响应。

再看一遍后,我发现了本指南:http://sharadchhetri.com/2014/10/09/centos-7-rhel-7-install-and-setup-samba-server-file-sharing/得出以下结论:

Samba 包含一个名为的守护进程nmb,它处理 NetBios 请求,但它在 Centos 7 中默认被禁用。启动它后,Windows 可以轻松解析我的主机名。

答案2

对我有帮助的是在我的 CentOS 7 防火墙上永久允许 TCP/UDP 端口 548、5353、5354(firewalld由命令控制的服务firewall-cmd)。我的参考资料是:

命令:

sudo firewall-cmd --zone=public --add-port=548/udp --permanent
sudo firewall-cmd --zone=public --add-port=548/tcp --permanent
sudo firewall-cmd --zone=public --add-port=5353/udp --permanent
sudo firewall-cmd --zone=public --add-port=5353/tcp --permanent
sudo firewall-cmd --zone=public --add-port=5354/udp --permanent
sudo firewall-cmd --zone=public --add-port=5354/tcp --permanent

然后重新启动或者重启firewalld

笔记

  • 这个问题比较老了,主题中奇怪的表述是使用 CentOS 7,但在帖子中提到了 CentOS 6,导致我来到这里。
  • OP 自己的回答对我没有帮助。另外,我在 Windows 端使用 Windows 7,它确实可以与在 Linux 主机上运行的 mDNS (avahi) 配合使用。
  • 我使用上述方法以不同的方式解决了这个问题。
  • 我在这里发布我的解决方案以防其他人也在这里尝试解决 CentOS 7 上的这个问题。

相关内容