windows原生smb不支持单用户限速,需三层协同:qos绑定用户进程(如explorer.exe)、路由器ip级限速、smb服务器认证节流(throttlelimit)及可选压缩/签名调整。
windows 原生 smb 服务不支持按单个用户(如某域用户或本地账户)直接限速。它的流量控制粒度是协议层或主机级,而非身份级。想实现“单用户带宽峰值限制”,需组合策略,在协议、系统、网络三层协同落地。
用QoS策略绑定用户进程(最贴近“单用户”效果)
虽然不能按用户名匹配,但可锁定该用户专属的SMB访问进程。典型场景是:某用户通过资源管理器(explorer.exe)或命令行(robocopy、xcopy)访问共享,这些操作由其登录会话下的进程发起。
- 打开组策略编辑器(gpedit.msc),路径:计算机配置 → Windows 设置 → 基于策略的QoS
- 新建策略,匹配条件设为:应用程序路径(例如
C:\Windows\explorer.exe) + 源端口 445 + TCP - 启用“指定限速”,填入目标速率(如
10240 Kbps即 10 Mbps) - 注意:此策略仅对运行该进程的当前登录用户生效;若用户以其他方式(如PowerShell调用SMB cmdlet)访问,则需额外为
powershell.exe或svchost.exe(承载SMB服务)单独建规则
在路由器/防火墙侧做IP级限速(推荐用于固定IP用户)
如果该用户设备有静态IP或DHCP保留地址,这是最稳定、跨系统、不依赖Windows版本的方案。
- 登录路由器管理界面,找到QoS或带宽控制功能
- 添加规则:目标IP = 用户电脑IP,上下行限速值(如上行5 Mbps / 下行15 Mbps)
- 部分企业级防火墙(如FortiGate、Palo Alto)还支持基于用户认证源(如AD账号)做带宽配额,需对接LDAP/Radius
启用SMB身份验证速率限制器(防滥用,间接控带宽)
从Windows 11 24H2和Server 2025起,默认开启此功能。它不直接限速,但能遏制单用户高频暴力尝试引发的连接风暴,避免其耗尽SMB会话资源或触发重传风暴挤占带宽。
- PowerShell管理员运行:
Set-SmbServerConfiguration -ThrottleLimit 5(限制每分钟最多5次失败认证) - 配合防火墙规则:仅允许该用户IP段访问445端口,拒绝其他来源,缩小攻击面
- 该设置对正常文件传输无影响,只作用于身份验证阶段
辅助手段:禁用SMB压缩与签名(慎用,仅调试)
若用户大量传输可压缩数据(如日志、虚拟机镜像),默认启用的SMB压缩可能让其实际吞吐远超预期。关闭后反而更易被QoS策略捕获并稳定限速。
- 注册表修改(需重启):
HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters→ 新建 DWORD 值SmbCompression=0 - 同时确认签名未强制:
RequireSecuritySignature=0(仅限可信内网,不建议生产环境长期关闭) - 此举会降低CPU开销,使QoS整形更精准,但牺牲部分安全防护









