情况是这样的,
有一台群晖A(DSM6.2+),电脑B(Win10 21H2),电脑C(Win10 1909)
均采用的是板载1G+USB 2.5G网卡
先说部署过程:
DSM部署过程:
(参考链接:https://mi-d.cn/8534)
DSM7
DSM7 比较简单只需要开启 SMB 后 / 控制面板 / 文件服务 /SMB/ 高级设置 / 最大 SMB 协议中选 SMB3,再到其它 启用 SMB3 多通道即可 。 图文教程如下
- 首先先到控制面板打开 SMB3.0 功能

- 点其它,勾选 启用 SMB3 多通道 对话框选是,再保存即可 。

DSM6
DSM6 比较麻烦开启之后还需要用 ssh 手动开启 SMB 多通道功能 才能体验速度迭加
- 首先先到控制面板打开 SMB3.0 功能

- 然后连接群晖的 SSH 并获取 root 权限,小白用户参考这个教程:群晖使用 SSH 终端连接并获取 root 权限
连接上群晖之后通过 sudo -i 获取 root 临时权限,注意需要再次输入密码,输入密码的时候是没有任何字符提示sudo -i
- 使用 vi 命令编辑 /etc/samba/smb.conf 文件
vi /etc/samba/smb.conf
- 按英文 i 进入编辑模式

- 然后按光标键拉到最未端,按一下回车然后粘贴以下内容
server multi channel support = yes aio read size = 1 aio write size = 1

- 按 ESC 键,再按 :wq 回车保存文件 ( 注意是英文状态下的 :),如果改错或者不想修改可以通过 :q!强制退出不保存内容 。
修改完之后输入 reboot 直接重启群晖或者在 WEB 控制台操作重启 。 重启之后一般就自动开启自动迭加!
Windows:
用管理员启动PowerShell:
# 检测SMB v2/v3协议是否开启 True代表已开启 False代表已禁用
Get-SmbServerConfiguration | Select EnableSMB2Protocol
# 开启SMB v2/v3协议 出现提示按A并回车
Set-SmbServerConfiguration -EnableSMB2Protocol $true
# 禁用SMB v2/v3协议 出现提示按A并回车
Set-SmbServerConfiguration -EnableSMB2Protocol $false
*注意,目前Windows无法查看已经连接的SMB是何种类型,建议通过任务管理器查看网卡吞吐量。
特别注意事项
看到这里恭喜你,有可能成功部署了。
这里说的有可能,具体现在开始正文:
请注意,这里部分是原创,可能是中文互联网首次实测哈哈哈(飘一下)
现在请你重启A、B、C设备,开启SMB访问,会发现神奇的一幕,
B访问A,C访问A,均能速度叠加,但双网卡速率大概为1G+1G(这里大概率是NAS瓶颈),理论上可以跑完1G+2.5G。
B和C互相访问,网卡工作为2~2.5G。
现在开始分析原因:
根本差异在于 SMB 实现:Windows 与群晖 (DSM) 通讯时用的是Samba (开源 SMB) via 微软 SMB 客户端,而 Windows 间是微软 SMB 客户端 via 微软 SMB 服务器,两者遵循不同的速率选择逻辑:
Samba 的 "兼容性优先" 策略:群晖 DSM 使用的 Samba 在混合速率 (1G+2.5G) 场景下会同时使用所有可用网卡,即使速率不同。
微软的 "性能优先" 策略:Windows 间严格遵循官方规则,只选择最快网卡并闲置慢网卡,确保单通道最优性能。
1. 微软官方核心规则(必须重视)
SMB Multichannel automatically selects the fastest network adapter. This is because network adapters that are the same type (such as RDMA, RSS, or neither) and have the same speed are simultaneously used by SMB Multichannel. The slower network adapters are idle.
中文翻译:SMB 多通道会自动选择最快的网络适配器。这是因为相同类型(如 RDMA、RSS 或两者都不支持)且相同速度的网络适配器会被 SMB 多通道同时使用,较慢的网络适配器则处于闲置状态。
2. 群晖与 Windows 间的特殊行为( A 与 B/C 情况)
群晖 DSM 的 SMB 实现与 Windows 存在差异,在以下条件下会出现非标准行为:
- 群晖与 Windows 的 SMB 协商过程中,可能同时建立针对不同网卡的连接
- 这种设计是为了兼容各种异构网络环境,确保在不同设备间都能建立多通道连接(出处:https://kb.synology.com/tr-tr/DSM/tutorial/smb3_multichannel_link_aggregation?f_link_type=f_linkinlinenote&flow_extra=eyJpbmxpbmVfZGlzcGxheV9wb3NpdGlvbiI6MCwiZG9jX3Bvc2l0aW9uIjowLCJkb2NfaWQiOiI3ZmFlODNkOGU2ZDgxNTRjLWFmNjQxNGQ3NTBiOTMxNjcifQ%3D%3D)
3. Windows 之间的严格行为( B 与 C 情况)
Windows 10/11 之间的 SMB 多通道严格遵循微软官方规则:
- 检测到 1G+2.5G 不同速率网卡时,仅使用 2.5G 单通道
- 完全闲置 1G 网卡,不会进行任何带宽叠加
- 这与 A 和 B/C 的情况形成鲜明对比,是操作系统实现差异导致
4. 为什么 Windows 之间严格遵循 "最快网卡" 规则?
微软 SMB 实现的速率选择算法是:
"If multiple network adapters are available, SMB Multichannel automatically selects the fastest network adapter. The slower network adapters are idle."
微软 SMB 实现的速率选择算法是:
这个规则是微软经过大量测试后确定的性能最优策略:
- 不同速率网卡叠加会导致数据包乱序、延迟增加,反而降低整体性能
- 只使用最快网卡可避免这些问题,确保单通道达到理论最大性能
- 微软认为 "稳定的 2.5G" 优于 "不稳定的 2.5G+1G",这是 Windows 生态的设计哲学
Windows 客户端与 Windows 服务器建立连接时:
- 双方交换网卡信息,包括速率、双工模式、RSS 支持等
- 服务器端会主动拒绝在慢于最快网卡的接口上建立连接
- 客户端收到拒绝后,仅在最快网卡上建立 TCP 连接,完全闲置其他网卡
- 这种行为是硬编码在 Windows SMB 实现中的,用户无法通过常规配置修改
那么,我们有没有办法让两台Win(B和C)使用上网络叠加呢?
NIC Teaming(网卡绑定 / 链路聚合)
参考文档:https://zhuanlan.zhihu.com/p/1949636612695761156
Window10目前支持自带的Powershell的链路聚合功能可实现多网卡的链路聚合,又称为NIC Teaming(网卡绑定),这里提示大家注意:
Windows Server和早几个版本的windows10用New-NetLbfoTeam命令去创建,否则报错!Windows10 1903以后的版本用New-NetSwitchTeam方式创建聚合组,否则报错!
但需要注意的是,该方案依然需要同速率的网卡。唯一前提是:两块网卡速率完全一样
最终总结
- SMB 多通道:只叠加同速率网卡,不同速率 Win→Win 禁用慢网卡,群晖→Win 勉强双跑但快网卡跑不满
- NIC Teaming(链路聚合):不支持不同速率网卡捆绑,1G+2.5G 直接无法创建
- 你看到的 1+1=2G,是2.5G 被限制到 1G + 真 1G的巧合结果,不是混合速率叠加技术生效
- 不存在任何官方 / 正规方式,能让 1G + 2.5G 网卡跑出 3.5Gbps 带宽
唯一可行的两条路
- 全换成同速率网卡双 2.5G → SMB 多通道 / LACP 可跑满≈5Gbps双 1G → 可叠到≈2Gbps
- 放弃混合速率叠加直接只用 2.5G 单网卡,优化到跑满 2.5G,比你现在 1+1=2G 更快
没有第三条路。
1万+

被折叠的 条评论
为什么被折叠?



