我想知道是否有一种方法可以通过 Fedora 中的命令行列出本地网络上的所有 smb 服务器(就像在 Windows 中查看网络邻居一样)。
答案1
此命令是 Samba 中鲜为人知的秘密。它返回所有桑巴自己广播域内的服务器:
nmblookup __SAMBA__
这将返回附近所有 Samba 服务器的 NetBIOS 名称及其别名的列表(它'节点状态查询'):
nmblookup -S __SAMBA__
这将返回以下所有 IP 地址的列表:中小企业附近的服务器(即 Linux+Unix/Samba 或 Windows):
nmblookup '*'
最后,所有 SMB 服务器(Linux+Unix/Samba 或 Windows)的所有 NetBIOS 名称及其别名:
nmblookup -S '*'
其他答案中给出的命令nmblookup -S WORKGROUP
确实不是返回邻近的所有 Samba 或所有 SMB 服务器。相反,它返回所有服务器的 NetBIOS 名称他们恰好是名为“WORKGROUP”的工作组的成员。结果与服务器的操作系统无关(无论是 Windows 还是 Linux/Samba)——众所周知,有时许多 Windows 成员服务器都是 Samba 控制的域或工作组的一部分。[是的,Samba 的默认工作组名称恰好是“WORKGROUP”......但那又怎样?]。——但问题是“我如何了解我的网络邻居中的所有 SMB(Samba?!?)服务器?“
答案2
nmblookup -S WORKGROUP
来自:https://web.archive.org/web/20101121043732/http://brneurosci.org/linuxsetup38b.html
答案3
在我的网络上 - 截至撰写本文时(情况确实有所变化) - smbtree 是我的首选解决方案。它会要求您输入密码(即您的 Samba 密码),然后给出一个非常详细的列表,其中包括 netbios 名称、可用共享和共享描述。
另一方面,nmblookup 不会列出我网络上所有可用的共享。我不知道为什么它没有列出,但它确实没有列出。
来自 smbtree 手册页:
smbtree 是一个文本模式的 smb 浏览器程序。它类似于 Windows 计算机上的“网络邻居”。它会打印一棵树,其中包含所有已知域、这些域中的服务器以及服务器上的共享。
nmblookup 命令确实有更多开关和选项。nmblookup 手册页:nmblookup 手册页
为了后人着想 - 因为这些答案确实存在 - 而且正如我所说的,我发现 smbtree 对我网络上的 OP 来说是一个更好的答案。
答案4
另一种方法是通过 Avahi(Bonjour),只要服务器正在发布:
avahi-browse -r _smb._tcp