windows server 默认拒绝非加密 smb 连接,可通过注册表将 requiresecuritysignature 和 encryptdata 设为 0 并重启 lanmanserver 服务来允许,但存在安全风险,仅建议测试环境使用。
windows server 默认拒绝未启用加密的 smb 客户端连接(尤其是 smbv3 加密强制开启后),这是出于安全考虑。若需允许非加密 smb 连接(例如兼容老旧设备或特定测试环境),可通过注册表修改策略,但不建议在生产环境启用。
确认当前 SMB 加密策略状态
先检查是否已启用强制加密:
- 以管理员身份运行 PowerShell,执行:
Get-SmbServerConfiguration | Select-Object EncryptData - 若返回 True,说明服务器强制要求客户端使用 SMB 加密
修改注册表允许非加密连接
该设置位于 SMB 服务器服务的全局配置中,影响所有共享:
- 按 Win+R 输入 regedit,定位到:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters - 在右侧空白处右键 → 新建 → DWORD (32 位) 值,命名为:
RequireSecuritySignature - 双击该值,将数值数据设为 0(禁用签名强制)
- 再新建一个 DWORD 值,命名为:
EncryptData - 将其数值设为 0(禁用加密强制)
重启 SMB 服务使配置生效
注册表修改后必须重启服务,无需重启整机:
- 管理员权限运行命令提示符或 PowerShell
- 依次执行:
net stop server
net start server - 也可用 PowerShell:
Restart-Service LanmanServer -Force
补充说明与风险提示
仅修改注册表还不够,还需确保以下几点:
- 防火墙放行非加密流量:默认情况下 Windows 防火墙可能拦截未签名/未加密的 SMB 包,需检查入站规则“文件和打印机共享(SMB-In)”是否启用且作用域正确
- 客户端协议版本匹配:若客户端只支持 SMBv1 或未启用 SMBv3 加密,需同时确认服务器未禁用 SMBv2/v3(Get-SmbServerConfiguration | fl EnableSMB*)
- 网络位置类型:确保服务器网络配置文件为“专用”而非“公用”,否则部分 SMB 功能会被系统自动限制
- 替代方案更安全:与其关闭加密,不如在客户端启用 SMB 加密(如 Windows 10/11 默认支持),或对 Linux Samba 客户端配置 signing = mandatory 和 encrypt = yes











