SMB加密指整个数据流端到端加密,非仅密码加密;必须启用场景包括敏感数据传输、跨网络访问、远程办公及关键业务共享;客户端强制加密需Win11 24H2/Server 2025+,通过组策略或PowerShell设置RequireEncryption;服务器端可对特定共享启用EncryptData;验证用Get-SmbConnection查看Encrypted属性。
windows smb 共享的加密传输(smb encryption)不是指密码本身是否加密——这部分从 windows nt 4.0 sp3 起就已默认通过 ntlm 或 kerberos 完成,全程不走明文。真正需要主动配置的,是整个 smb 数据流的端到端加密,即防止中间人窃听或篡改文件内容、元数据等全部通信载荷。
哪些场景必须启用 SMB 加密
当共享中涉及敏感文档、财务数据、员工信息或合规要求(如等保、GDPR)时,仅靠身份认证远远不够。SMB 加密可确保即使网络被监听,抓包也只看到密文。它特别适用于:
- 跨部门或跨办公点的文件服务器访问(尤其经由非受信 WAN 链路)
- 远程办公终端连接公司 NAS 或文件服务器
- Hyper-V 虚拟机存储、SQL Server 数据库文件共享等关键业务路径
- 与第三方 SMB 设备(如部分 NAS)交互,且对方明确支持 SMB 3.0+ 加密
客户端强制加密的配置方式(Win11 24H2 / Server 2025+)
从 Windows 11 版本 24H2 和 Windows Server 2025 开始,SMB 客户端支持全局强制出站连接启用加密。这意味着:只要目标服务器不支持 SMB 3.0 或未开启加密能力,连接将直接失败,不会降级回明文传输。
- 使用组策略:进入「计算机配置 → 管理模板 → 网络 → Lanman 工作站」,启用「启用会话加密」策略
- 用 PowerShell 执行:Set-SmbClientConfiguration -RequireEncryption $true
- 该设置作用于整台设备所有 SMB 出站请求,包括映射驱动器、PowerShell 文件操作、资源管理器访问等
服务器端按共享启用加密(兼容更广)
若客户端版本较旧(如 Win10、Server 2019),更稳妥的方式是在服务器端为特定共享开启加密,无需升级客户端系统。
- 在文件服务器上运行:Set-SmbShare -Name "ShareName" -EncryptData $true
- 也可通过「服务器管理器 → 文件和存储服务 → 共享」图形界面,在共享属性中勾选「加密此共享的数据」
- 注意:此设置仅对启用了 SMB 3.0 或更高协议的连接生效;SMB 2.x 及以下版本连接会被拒绝或自动降级(取决于服务器策略)
验证与常见误区
启用后可通过以下方式确认是否生效:
- 在客户端执行:Get-SmbConnection | fl ServerName,Encrypted —— 若显示 Encrypted : True 即表示当前连接已加密
- 密码始终加密是默认行为,无需额外开关;Set-SmbServerConfiguration –EncryptData $true 是开启全链路加密,不是“打开密码加密”
- SMB 加密与 SMB 签名(Signing)功能互斥:启用前者时后者自动禁用;如需防篡改但不要求防窃听,可单独启用签名
- 性能影响约 10% 延迟与 IOPS 下降,但在千兆局域网或 SSD 存储环境下通常感知不明显


















