Windows Server 中配置 SMB 3.0 加密需先禁用 SMB1、启用 SMB2/3,再通过 Set-SmbServerConfiguration -EncryptData $true -RejectUnencryptedAccess $true 全局启用,或用 Set-SmbShare -Name xxx -EncryptData $true 按共享启用,并用 Get-SmbConnection 验证 Encrypted 为 True。
windows server 中配置 smb 3.0 加密传输,核心是启用服务器端加密策略,并确保客户端协商使用 smb 3.0 或更高版本(如 3.1.1),同时关闭不安全的旧协议。加密不是“开关一开就自动生效”,它依赖协议版本、共享粒度设置和网络环境协同工作。
确认并强制使用 SMB 3.0+ 协议
SMB 加密仅在 SMB 3.0 及以上版本中支持,SMB 2.x 不具备该能力,SMB 1.0 更是必须禁用。务必先清理协议基础:
- 以管理员身份运行 PowerShell,执行:
Set-SmbServerConfiguration -EnableSMB1Protocol $false -Force - 确认 SMB 2/3 已启用:
Get-SmbServerConfiguration | Select EnableSMB2Protocol, EnableSMB3Protocol(输出应均为 True) - 若需全局强制最低协议版本(如禁止 SMB 2.x 连接),可通过组策略:计算机配置 → 管理模板 → 网络 → Lanman 工作站 → “最小会话安全性”设为“SMB 3.0”或更高。
启用全服务器级 SMB 加密
此设置让所有新建立的 SMB 连接默认尝试加密,适用于大多数内部可信网络场景:
- 运行命令:
Set-SmbServerConfiguration -EncryptData $true -RejectUnencryptedAccess $true -Force - 参数说明:
• EncryptData $true:允许服务器提供加密连接;
• RejectUnencryptedAccess $true:拒绝未加密的连接请求(强制客户端升级或重试加密协商)。 - 验证是否生效:
Get-SmbServerConfiguration | Select EncryptData, RejectUnencryptedAccess
按共享设置加密(更灵活的控制方式)
若只需对特定敏感共享(如 HR 或财务文件夹)启用加密,而其他共享保持兼容性,可单独配置:
- 假设共享名为 FinanceShare,运行:
Set-SmbShare -Name FinanceShare -EncryptData $true - 该设置优先级高于全局配置,且不影响其他共享行为。
- 查看当前共享加密状态:
Get-SmbShare | Select Name, EncryptData
验证与常见注意事项
配置完成后,不能只看“命令没报错”,要实测验证加密是否真正启用:
- 从 Windows 客户端访问后,在客户端上运行:
Get-SmbConnection | Select ServerName, Dialect, Encrypted
若 Encrypted 列显示 True,说明连接已走加密通道。 - macOS 或 Linux 客户端只要支持 SMB 3.0+(macOS 10.12+、Linux kernel 4.11+ 的 cifs.ko),通常能自动协商加密,无需额外配置。
- 注意性能影响:在 Windows Server 2016/2019 上启用加密可能导致 RDMA(SMB Direct)性能下降;Windows Server 2022 已优化此问题,推荐升级以兼顾安全与性能。
- 加密仅保护传输中数据,静态文件仍需 BitLocker 或 NTFS 加密配合。


















