Windows 用 net session 查 SMB 活跃会话数,Linux 用 smbstatus 查 Samba 连接数;二者均统计已认证且未超时的 TCP 会话,非登录账户总数。
在 windows 或 linux 系统上运行 smb 共享服务时,查看当前连接的用户数,关键在于区分“活跃会话数”和“已认证但空闲的连接数”。不同平台提供不同工具,但核心目标一致:获取正在使用共享资源的客户端数量。
Windows 系统查看 SMB 当前连接用户数
Windows 内置命令 net session 是最直接的方式,它只统计通过 SMB 协议(非 RDP)建立的文件/打印机共享会话:
- 以管理员身份打开命令提示符或 Windows 终端,运行:
net session - 输出中每行代表一个活动连接,右侧显示“用户名”“计算机名”“空闲时间”等;行数即为当前连接用户数
- 若需仅统计数量,可配合管道过滤:
net session | findstr /c:"\" | find /c "\"(统计含反斜杠的连接行数) - 注意:quser 和 query session 查的是远程桌面(RDP)会话,与 SMB 文件共享无关,勿混淆
Linux 系统(Samba)查看当前连接用户数
Samba 提供了 smbstatus 命令,专用于实时查看 SMB 连接状态,结果清晰且包含用户、IP、共享名等信息:
- 终端执行:
smbstatus - 关注输出中的 Service 部分:每行对应一个已打开的共享连接,左侧为用户名,右侧为客户端 IP 和共享路径
- 快速统计连接数:
smbstatus -p | wc -l(统计进程数,近似活跃连接)
或更准确:
smbstatus | grep -A 10 "^Locked files" | tail -n +2 | grep -v "^$" | wc -l(排除空行后计数) - 如需只看用户名列表去重统计:
smbstatus | awk '/^[a-zA-Z]/ {print $1}' | sort -u | wc -l
图形化辅助确认(Windows)
计算机管理界面提供直观视图,适合快速核对:
- 按 Win + X → 计算机管理 → 系统工具 → 共享文件夹 → 会话
- 右侧列表即为所有当前 SMB 连接,每条记录对应一个用户+客户端组合
- 右键可关闭指定会话,操作即时生效
注意事项
用户数 ≠ 登录账户数。一个 Windows 用户可能映射多个驱动器(产生多个会话),也可能断开但未超时释放(仍计入 net session)。Samba 默认会话超时由 deadtime 参数控制(单位分钟),设为 0 表示永不自动断开。因此实际连接数反映的是“当前 TCP 连接中已认证并保持活跃或未超时的会话总数”,不是账号池规模。


















