首要解决SMB协议未启用问题:通过optionalfeatures.exe启用SMB 1.0/CIFS客户端(兼容老旧设备)或用PowerShell启用SMB 2.0/3.0并禁用SMBv1;再启用网络发现、文件共享及LanmanServer等服务;配置防火墙放行TCP 445端口;确保网络类型设为专用网络;必要时强制指定协议版本访问。

如果您尝试访问网络共享文件夹,但系统提示“无法连接”或“找不到网络路径”,则可能是由于 SMB 协议配置不当、服务未启用、防火墙拦截或版本协商失败所致。以下是解决此问题的步骤:
一、检查 SMB 客户端功能是否启用
Windows 系统需明确启用 SMB 客户端组件才能发起连接请求,尤其在 Windows 11 或 Windows Server 2019 及更高版本中,SMBv1 客户端默认不安装,而部分旧 NAS 或路由器共享可能仅支持 SMBv1;现代环境则依赖 SMBv2/v3 客户端支持。
1、按 Win + R 打开运行窗口,输入 optionalfeatures 并回车。
2、在“Windows 功能”窗口中,展开 SMB 1.0/CIFS 文件共享支持。
3、若需连接老旧设备(如部分早期路由器或嵌入式 NAS),勾选 SMB 1.0/CIFS 客户端;否则仅确保 SMB Direct 和 SMB 服务器(如需本机共享)处于启用状态。
4、点击确定后重启计算机。
二、验证并启用 SMB 服务器服务
若目标设备是 Windows 主机且作为共享提供方,必须确保 SMB 相关服务正在运行;Linux 主机则需确认 Samba 服务(smbd/nmbd)已启动并监听正确端口。
1、在 Windows 共享主机上,以管理员身份打开 PowerShell。
2、执行命令:Get-Service -Name LanmanServer, MRxSmb20, mrxsmb10 | Select-Object Name, Status, StartType。
3、若 LanmanServer 状态为 Stopped,运行:Start-Service LanmanServer。
4、设置开机自启:Set-Service LanmanServer -StartupType Automatic。
5、Linux 主机执行:sudo systemctl status smbd nmbd;若未运行,则执行:sudo systemctl start smbd nmbd 并启用自启。
三、确认网络发现与共享设置已开启
Windows 防火墙和网络配置策略会阻止跨设备发现与共享访问,即使 SMB 服务运行正常,若网络类型被识别为“公用网络”,则默认禁用所有共享功能。
1、进入“设置 > 网络和 Internet > 以太网(或 Wi-Fi)”,点击当前连接名称。
2、将网络配置文件设为 专用网络(非公用网络)。
3、进入“控制面板 > 网络和 Internet > 网络和共享中心 > 高级共享设置”,展开当前配置文件。
4、启用以下三项:启用网络发现、启用文件和打印机共享、关闭密码保护共享(测试阶段可临时关闭;生产环境建议启用并配置有效凭据)。
四、放行 SMB 相关端口的防火墙规则
SMBv2/v3 主要使用 TCP 445 端口进行通信;若该端口被系统防火墙或第三方安全软件拦截,连接将直接超时或拒绝。
1、在共享主机上,打开“控制面板 > Windows Defender 防火墙 > 高级设置”。
2、左侧选择“入站规则”,右侧点击“新建规则…”。
3、选择“端口”,点击下一步;选择“TCP”,在“特定本地端口”中填入 445,点击下一步。
4、选择“允许连接”,点击下一步;勾选全部网络类型(域、专用、公用),点击下一步。
5、命名为 Allow SMBv3 Inbound,完成创建。
6、Linux 主机若启用 ufw,执行:sudo ufw allow 445/tcp;若使用 firewalld,执行:sudo firewall-cmd --permanent --add-port=445/tcp && sudo firewall-cmd --reload。
五、强制指定 SMB 协议版本进行连接
当客户端与服务器因自动协商失败导致连接中断时(例如一方仅支持 SMBv2 而另一方尝试协商 SMBv3 加密),可绕过协商机制,强制使用兼容版本访问共享路径。
1、在客户端 Windows 上,以管理员身份打开 PowerShell。
2、禁用 SMBv3(仅限故障排查):Set-SmbClientConfiguration -EnableSMB2Protocol $true -EnableSMB1Protocol $false。
3、若需临时启用 SMBv2 并禁用 SMBv3,运行:Disable-WindowsOptionalFeature -Online -FeatureName smb1protocol -NoRestart(先确保 SMBv1 已卸载),再通过注册表键值 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanWorkstationParametersRequireSecuritySignature 设为 0。
4、访问共享时,在文件资源管理器地址栏输入完整 UNC 路径,并附加协议标识:\192.168.1.100share /v:2(部分工具支持,Windows 原生资源管理器不支持该语法,需改用 PowerShell 的 New-PSDrive 指定版本)。

















