通过 Linux 中的命令行列出网络上可用的 SMB 共享

通过 Linux 中的命令行列出网络上可用的 SMB 共享

我想知道是否有一种方法可以通过 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

答案3

在我的网络上 - 截至撰写本文时(情况确实有所变化) - smbtree 是我的首选解决方案。它会要求您输入密码(即您的 Samba 密码),然后给出一个非常详细的列表,其中包括 netbios 名称、可用共享和共享描述。

另一方面,nmblookup 不会列出我网络上所有可用的共享。我不知道为什么它没有列出,但它确实没有列出。

来自 smbtree 手册页:

smbtree 是一个文本模式的 smb 浏览器程序。它类似于 Windows 计算机上的“网络邻居”。它会打印一棵树,其中包含所有已知域、这些域中的服务器以及服务器上的共享。

nmblookup 命令确实有更多开关和选项。nmblookup 手册页:nmblookup 手册页

为了后人着想 - 因为这些答案确实存在 - 而且正如我所说的,我发现 smbtree 对我网络上的 OP 来说是一个更好的答案。

答案4

另一种方法是通过 Avahi(Bonjour),只要服务器正在发布:

avahi-browse -r _smb._tcp

相关内容