在 linux 中通过命令行列出网络上可用的 smb 共享

jcb*_*344 39 fedora samba server-message-block

我想知道是否有办法通过 Fedora 中的命令行列出本地网络上的所有 smb 服务器(例如查看 Windows 中的网络邻居)。

Kur*_*fle 54

这个命令是 Samba 一个鲜为人知的秘密。它返回自己广播域中所有Samba服务器的IP 地址:

nmblookup __SAMBA__

这将返回附近所有 Samba 服务器的所有 NetBIOS 名称及其别名的列表(它执行“节点状态查询”):

nmblookup -S __SAMBA__

这将返回附近SMB服务器(即 Linux+Unix/Samba 或 Windows)的所有 IP 地址列表:

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?!?)服务器?”

  • 有趣的是,使用这些建议,我只能在我当前所在的服务器上看到 Samba 共享。要真正检测另一个 Samba 服务器(它有 WORKGROUP 工作组),我必须运行 `nmblookup -S WORKGROUP` .. 不知道如何真正列出任何服务器,因为 `nmblookup -S '*'` 和其他命令只返回本地服务器正如刚才提到的。 (4认同)

and*_*ieb 14

nmblookup -S WORKGROUP 
Run Code Online (Sandbox Code Playgroud)

来自:https : //web.archive.org/web/20101121043732/http : //brneurosci.org/linuxsetup38b.html

  • 实际上,他并没有说他要寻找所有的 samba 服务器。他说“所有的smb服务器”。我想我没有像您那样详细说明,因为您可以搜索通配符工作组 - 但实际上,我明确表示我正在参考手册,并且我得到了他需要的 OP。更何况,我比你早回答了半个月——我不明白你为什么这么弯腰驼背。 (8认同)
  • 我会否决这个答案。- 我不敢相信这样一个 *** 错误的 *** 答案会得到 2 个赞成票。给定的命令仅列出作为名为“workgroup”的工作组成员的服务器。无论操作系统(Samba/Linux 与否,Windows 与否),它都会列出它们。问题是关于了解本地网络上的所有 ***SAMBA*** 服务器(无论工作组名称如何)。 (2认同)

小智 11

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

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

从 smbtree 手册页:

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

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

后人注意 - 因为这些答案确实存在 - 正如我所说,我发现 smbtree 将是我网络上 OP 的更好答案。


小智 6

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

avahi-browse -r _smb._tcp
Run Code Online (Sandbox Code Playgroud)


小智 6

一个更好的方法,更恶毒地打印,是使用 smbtree。

$ smbtree
Enter user01's password: DOMAIN_A
        \\FREEBOX_SERVER                Freebox Server
                \\FREEBOX_SERVER\IPC$                   IPC Service (Freebox Server)
                \\FREEBOX_SERVER\Disque dur             AutoShare of fbxhdiskd partition 2
Run Code Online (Sandbox Code Playgroud)


小智 6

在 samba 版本 4 中,nmblookup '*'不再有效;它只提供本地服务器。它曾经在 samba 版本 3 中工作。

现在,您必须使用nmblookup WORKGROUP,正如 Kurt 所说,它只返回 workgroup 中的服务器WORKGROUP