我有两台笔记本电脑,每台都装有相同版本的 Kubuntu(19.10),安装时间相隔不到一个月。
通过遵循本网站其他地方的建议,我设法将它们设置为查看装有 Windows 的第三台计算机。我通过安装winbind
和libnss-winbind
并在中设置以下行来实现此目的/etc/nsswitch.conf
:
hosts: files mdns4_minimal [NOTFOUND=return] dns wins mdns4
第一台笔记本电脑运行良好,此后我一直能够使用ping
Windows 机器。第二台笔记本电脑也运行良好,我能够使用ping
Windows 机器,但是重启后不再出现这种情况。如果我执行 ,它就会开始工作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
允许您指定启动前应达到的服务/目标),应该可以提供所需的信息,以查明服务无法在启动时启动的原因。