windows smb多通道需客户端、服务器、网卡(支持rss)、网络路径四者协同才能生效;仅启用开关不够,必须通过get-smbmultichannelconnection和netstat -na | findstr :445验证多连接建立,且需双向配置connectioncountperrssnetworkinterface、禁用smb签名与带宽节流等干扰项。
windows smb 多通道(multichannel)不是“开了就快”,而是需要客户端、服务器、网卡与网络路径四者协同生效。默认启用不等于自动高性能,关键在连接数、rss 支持和协议版本匹配。
确认多通道是否真正启用
仅靠 Set-SmbClientConfiguration -EnableMultichannel $true 不够,必须验证实际连接状态:
- 运行
Get-SmbMultichannelConnection | fl,检查 CurrentChannels > 1 且 MaxChannels > 1 - 用
netstat -na | findstr :445查看是否有多个 ESTABLISHED 连接指向同一共享 IP - 若只显示 1 个连接,说明 RSS 未激活、网卡驱动过旧或 NIC 未启用接收方缩放(RSS)
网卡与底层驱动必须支持 RSS
单网卡实现多通道依赖接收方缩放(RSS),否则所有 TCP 流量仍被绑定到单个 CPU 核心:
- 在设备管理器中右键网卡 → “属性” → “高级” → 确认 RSS 或 Receive Side Scaling 已启用
- 更新网卡驱动至厂商最新版(尤其 Intel I225/I226、Realtek RTL8125B/RTL8168 等常见型号)
- 禁用节能相关选项:关闭“节能以太网(EEE)”、“PCI Express Link State Power Management”
客户端与服务器端需双向开启并匹配连接数
多通道性能随连接数提升而增长,但存在边际收益拐点:
- 客户端执行:
Set-SmbClientConfiguration -ConnectionCountPerRSSNetworkInterface 4(4 是随机 I/O 场景下最优值) - 服务器端同步执行:
Set-SmbServerConfiguration -ConnectionCountPerRSSNetworkInterface 4 - 顺序大文件传输可尝试设为 8,但超过 8 后吞吐提升极小,且增加 CPU 调度开销
- 每次修改后需断开共享再重连(
net use X: /delete→net use X: \servershare)才能生效
规避性能干扰项
即使多通道就绪,以下设置仍会严重压制实际带宽:
-
禁用 SMB 1.0:PowerShell 运行
Disable-WindowsOptionalFeature -Online -FeatureName smb1protocol -NoRestart -
关闭 SMB 签名(仅限可信内网):客户端和服务端均执行
Set-SmbServerConfiguration -RequireSecuritySignature $false -Force和Set-SmbClientConfiguration -RequireSecuritySignature $false -
禁用带宽节流:客户端执行
Set-SmbClientConfiguration -EnableBandwidthThrottling $false - 确保防火墙放行 445/TCP,且未启用“网络发现”以外的冗余服务(如 SSDP、UPnP)











