重启后无法 ping 通 Windows 主机名

重启后无法 ping 通 Windows 主机名

我有两台笔记本电脑,每台都装有相同版本的 Kubuntu(19.10),安装时间相隔不到一个月。

通过遵循本网站其他地方的建议,我设法将它们设置为查看装有 Windows 的第三台计算机。我通过安装winbindlibnss-winbind并在中设置以下行来实现此目的/etc/nsswitch.conf

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

第一台笔记本电脑运行良好,此后我一直能够使用pingWindows 机器。第二台笔记本电脑也运行良好,我能够使用pingWindows 机器,但是重启后不再出现这种情况。如果我执行 ,它就会开始工作sudo systemctl restart winbind,但我想避免每次启动机器时都必须这样做。

我得到的错误是典型的:

ping: windowspc: Name or service not known

我还在本网站的其他地方找到了一些建议,建议将wins条目立即放在后面files,但(a)这并不能解决问题,并且(b)第一台笔记本电脑可以使用旧配置正常看到 Windows 机器。

在两台笔记本电脑上使用相同的操作系统执行了完全相同的程序后,我真的不确定这里的问题是什么。我不知道该去哪里找,所以有人能给我指出正确的方向吗?

答案1

好吧,经过几个小时的测试,我可以确认。;-) 首先要检查的是您是否安装了完整的桑巴 服务器变体。

sudo apt-get install samba

大多数 Linux 发行版仅包含最低限度的桑巴 客户构建。(不要与 smbclient 调试工具混淆。)samba 客户端变体缺少(除其他外)nmbd 守护进程 nmbd.service

nmbd 是一个可以理解并回复 IP 上的 NetBIOS 名称服务请求的服务器,例如由 SMB/CIFS 客户端(例如 Windows 95/98/ME、Windows NT、Windows 2000、Windows XP 和 LanManager 客户端)发出的请求。它还参与构成 Windows“网络邻居”视图的浏览协议。 (来源:https://www.samba.org/samba/docs/current/man-html/nmbd.8.html

因此,精简版 Samba 客户端版本仅提供基本功能。访问 SMB 共享就足够了。关于对 Windows / NetBIOS 主机名的 ping,完整的 Samba 服务器版本是绝对必要的!

我花了很长时间才意识到这个重要的区别。;-) 或者,如果您只有一个小型家庭网络,那么编辑主机文件并手动添加所需的计算机主机名就足够了sudo nano /etc/hosts

答案2

假设你的 windbind 服务在第二台笔记本电脑上启用了(需要在启动时自动启动)(使用 进行验证systemctl list-unit-files --state=enabled),我将通过以下方式开始查看 winbind 服务的日志:

journalctl -u service-name.service(仅为当前启动附加 -b)

查找可能表明服务无法正常启动的错误。如果那里没有任何有用的信息,我接下来会检查 windbind 日志(在我的 18.04 安装中,它们存在于文件夹中/var/log/samba)。

服务可能启动时出现错误或类似情况,无法访问正确启动 winbind 所需的资源。日志与查看服务文件相结合,以systemctl cat winbind检查先决条件进程是否存在问题(即,After=network.target nmbd.service允许您指定启动前应达到的服务/目标),应该可以提供所需的信息,以查明服务无法在启动时启动的原因。

相关内容