问题根源是SMB协议未启用或配置异常,需依次启用SMB 2.0/3.0服务、按需开启SMB 1.0支持、调整客户端签名策略、验证TCP 445端口监听状态,并在必要时通过注册表修改协议开关。

如果您在局域网中尝试访问共享文件夹时提示“找不到网络路径”“拒绝访问”或“无法连接”,且确认设备在同一网络、IP可达,则问题极可能源于SMB协议未启用或配置异常。以下是针对性解决步骤:
一、启用SMB 2.0/3.0服务(推荐首选)
SMB 2.0及更高版本是Windows默认启用的安全协议,兼容性好、性能强,应优先启用并确保服务运行正常。
1、按Win+R输入optionalfeatures.exe,回车打开“启用或关闭Windows功能”。
2、在列表中展开SMB 2.0/3.0相关选项(如显示为“SMB Direct”“SMB Server”等),勾选SMB Server和SMB Client组件。
3、点击“确定”,等待系统完成启用操作。
4、按Win+R输入services.msc,定位到Server服务,右键选择“重新启动”。
5、同时检查Workstation服务状态,确保其“正在运行”且启动类型为“自动”。
二、启用SMB 1.0/CIFS支持(兼容老旧设备)
当共享端为NAS、旧版Windows Server、嵌入式设备或Samba服务器且仅支持SMB 1.0时,客户端必须显式启用该协议,否则连接将被静默拒绝。
1、按Win+R输入control打开控制面板,进入“程序”→“程序和功能”→“启用或关闭Windows功能”。
2、找到SMB 1.0/CIFS 文件共享支持,展开后勾选SMB 1.0/CIFS 客户端与SMB 1.0/CIFS 服务器(若需本机也作共享源)。
3、点击“确定”,系统提示安装完成后,必须重启计算机使协议栈生效。
4、重启后,在PowerShell(管理员)中执行:Get-SmbServerConfiguration | Select EnableSMB1Protocol,确认返回值为True。
三、强制启用SMB客户端签名策略(适配严格认证环境)
部分企业级SMB服务器要求通信数字签名,而Windows客户端默认禁用此签名,导致握手失败;反之,若服务器不签名而客户端强制要求,则同样无法建立会话。
1、以管理员身份运行PowerShell。
2、执行命令:Set-SmbClientConfiguration -RequireSecuritySignature $false -Force。
3、再执行:Set-SmbClientConfiguration -EnableSecuritySignature $false -Force。
4、运行gpupdate /force刷新组策略,确保配置立即应用。
四、验证SMB协议实际监听状态
仅启用功能不代表端口已开放或服务已绑定,需直接确认TCP 445端口是否处于监听状态,排除底层协议栈阻塞。
1、在共享设备上,以管理员身份运行CMD,输入:netstat -ano | findstr :445。
2、若无任何输出,说明SMB服务未成功绑定端口,需检查Server服务是否运行、是否存在端口冲突(如其他软件占用了445)。
3、若输出含LISTENING且PID对应svchost.exe,继续执行:tasklist /svc /FI "PID eq XXXX"(XXXX替换为PID),确认该进程承载LanmanServer服务。
4、若发现445被非svchost进程占用,需终止该进程或修改其端口配置,释放445供SMB使用。
五、注册表级SMB协议开关(绕过图形界面限制)
在部分精简版系统或组策略被锁定环境中,图形化功能开关可能不可用,此时需通过注册表直接控制SMB协议栈行为。
1、按Win+R输入regedit,导航至:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters。
2、右键空白处新建DWORD (32位)值,命名为SMB2,数值数据设为1(启用SMB2/3)。
3、同位置新建另一DWORD值,命名为AllowInsecureGuestAuth,数值设为1(允许来宾认证,配合SMB1使用)。
4、重启Workstation服务或整机,使注册表变更生效。










