我有两台笔记本电脑,每台都安装相同版本的 Kubuntu(19.10),安装时间不到一个月。
通过遵循本网站其他地方的建议,我设法将它们设置为查看第三台装有 Windows 的机器。我通过安装winbind
andlibnss-winbind
并在中设置以下行来做到这一点/etc/nsswitch.conf
:
hosts: files mdns4_minimal [NOTFOUND=return] dns wins mdns4
第一台笔记本电脑运行良好,此后我总是能够ping
使用 Windows 机器。第二台笔记本电脑也可以工作,我可以ping
使用 Windows 机器,但重新启动后不再是这种情况。如果我执行 a sudo systemctl restart winbind
,它就会开始工作,但我想避免每次启动机器时都必须这样做。
我得到的错误是典型的:
ping: windowspc: Name or service not known
我还在该站点的其他地方找到了一些建议,建议将wins
条目立即放在 之后files
,但是(a)没有解决问题,并且(b)第一台笔记本电脑可以在旧配置下正常看到 Windows 机器。
在具有相同操作系统的两台笔记本电脑上完成了完全相同的过程,我真的不确定这里有什么问题。我不知道在哪里看,所以有人能指出我正确的方向吗?
好吧,经过数小时的测试,我可以确认。;-) 首先要检查的是您是否安装了完整的samba 服务器变体。
大多数 Linux 发行版仅包含最小的samba 客户端构建。(不要与 smbclient 调试工具混淆。) samba 客户端变体缺少(除其他外)nmbd 守护进程
nmbd.service
:nmbd 是一个服务器,它可以理解并可以回复 NetBIOS over IP 名称服务请求,例如由 Windows 95/98/ME、Windows NT、Windows 2000、Windows XP 和 LanManager 客户端等 SMB/CIFS 客户端产生的请求。它还参与构成 Windows“网络邻居”视图的浏览协议。 (来源:https ://www.samba.org/samba/docs/current/man-html/nmbd.8.html )
因此,精简的 samba 客户端构建仅提供基本功能。访问 SMB 共享就足够了。关于 ping Windows / NetBIOS 主机名,完整的 samba 服务器变体是绝对必要的!
我花了很长时间才意识到这个重要的区别。;-) 或者,如果您只有一个小型家庭网络,编辑主机文件并手动添加所需的计算机主机名可能就足够了
sudo nano /etc/hosts
。假设您在第二台笔记本电脑上启用了 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
将允许您指定应在启动之前达到的服务/目标)应提供根除服务原因所需的信息没有在启动时启动。