睿诚科技协会

如何解决0x80070035找不到网络路径问题?

就像你知道朋友家的地址,但按门铃时没人应答,或者门锁坏了。

0x80070035找不到网络路径
(图片来源网络,侵删)

下面我将从易到难,为你提供一套完整的排查和解决方案。


核心思路:

这个错误通常不是由单一原因引起的,而是由 网络配置、防火墙、服务状态、权限 等多个因素共同导致的,请按照以下步骤逐一排查。


第一步:基础检查(最常见的原因)

  1. 检查网络连接和工作组/家庭组

    • 确保在同一个网络:确认你的电脑和目标电脑连接的是同一个路由器(同一个局域网),如果你连接的是 Wi-Fi,而目标电脑是有线连接,它们可能处于不同的网络子网,导致无法通信。
    • 检查工作组:在两台电脑上,右键点击“此电脑” -> “属性”,查看“工作组”是否相同,如果不同,需要将它们设置为相同的工作组,这是 NetBIOS 协议正常工作的基础。
  2. 检查目标电脑是否开机并启用共享

    0x80070035找不到网络路径
    (图片来源网络,侵删)
    • 目标电脑必须开机:这听起来很傻,但请务必确认。
    • 启用网络发现和文件共享
      • 在目标电脑上,进入“控制面板” -> “网络和 Internet” -> “网络和共享中心”。
      • 点击左侧的“更改高级共享设置”。
      • 展开“当前配置文件”(通常是“专用”网络)。
      • 确保 “启用网络发现”“启用文件和打印机共享” 都被选中。
      • 如果你的网络是“公用”网络,请确保“来宾或公用”的设置中,“启用网络发现”和“启用文件和打印机共享”也是开启的(但公用网络安全性较低,不推荐)。
  3. 检查共享文件夹是否存在

    在目标电脑上,直接访问该共享文件夹,确保它确实存在并且没有被意外删除。


第二步:使用网络诊断工具

  1. Ping 测试(测试基本网络连通性)

    • 在你的电脑上,按 Win + R,输入 cmd 打开命令提示符。
    • 输入 ping <目标电脑的IP地址>ping 192.168.1.101
    • 如果可以收到回复:说明你的电脑和目标电脑之间的物理连接是通的,IP 地址通信正常,问题更可能出在更高层的协议(如 SMB)或防火墙上。
    • 请求超时”或“目标主机无法访问”:说明基础网络连接有问题,请检查:
      • 两台电脑是否在同一网段。
      • 路由器是否正常工作。
      • 目标电脑的防火墙是否阻止了 ICMPv4 请求(Ping 使用的是 ICMP 协议)。
  2. Ping 测试计算机名

    0x80070035找不到网络路径
    (图片来源网络,侵删)
    • 在命令提示符中,输入 ping <目标电脑的计算机名>ping DESKTOP-ABC123
    • 如果可以解析到 IP 并收到回复:说明 NetBIOS 名称解析工作正常,这是“找不到网络路径”错误中一个比较好的迹象,说明问题很可能在防火墙或服务上。
    • Ping 请求找不到主机”:说明 NetBIOS 名称解析失败,请跳到 第五步 检查相关服务。

第三步:检查防火墙(最常见的原因之一)

Windows 自带的防火墙或第三方杀毒软件的防火墙是导致此错误的头号元凶,它们会阻止 SMB (端口 445) 等关键网络端口。

  1. 临时禁用防火墙进行测试

    • 在目标电脑上
      • 进入“控制面板” -> “系统和安全” -> “Windows Defender 防火墙”。
      • 点击左侧的“启用或关闭 Windows Defender 防火墙”。
      • 临时关闭“域网络”、“专用网络”、“公用网络”的防火墙。
      • 尝试重新访问共享文件夹,如果成功了,100% 是防火墙的问题
    • 安全提示:测试成功后,请务必立即重新启用防火墙,然后通过添加“例外规则”的方式来允许共享,而不是永久关闭。
  2. 添加防火墙例外规则(正确做法)

    • 重新启用防火墙。
    • 再次进入“Windows Defender 防火墙”。
    • 点击左侧的“允许应用或功能通过 Windows Defender 防火墙”。
    • 点击“更改设置”(需要管理员权限)。
    • 找到 “文件和打印机共享”,确保在“专用”和“公用”列中都是勾选状态。
    • 如果找不到,可以点击“允许其他应用...”,然后手动添加 svchost.exe(确保它位于 C:\Windows\System32\ 目录下),并勾选“专用”和“公用”。
  3. 检查第三方安全软件

    如果你安装了 360、火绒、卡巴斯基、诺顿等第三方杀毒或安全软件,请暂时禁用其网络防火墙功能,然后再次尝试访问,如果成功,说明是这些软件的规则问题,需要在其设置中添加信任程序或放行局域网通信。


第四步:检查服务

SMB 文件共享依赖于几个核心 Windows 服务,请确保在目标电脑上,以下服务正在运行:

  1. Function Discovery Provider Host
  2. Function Discovery Resource Publication
  3. SSDP Discovery
  4. UPnP Device Host
  5. Server (最关键的服务)
  6. Workstation (最关键的服务)

如何检查和启动服务:

  • Win + R,输入 services.msc 并回车。
  • 在服务列表中找到上述服务。
  • 双击每个服务,确保其“启动类型”为“自动”,服务状态”为“正在运行”,如果不是,请点击“启动”,然后点击“应用”和“确定”。

第五步:高级排查(如果以上步骤都无效)

  1. 启用 NetBIOS over TCP/IP

    • 在目标电脑上,右键点击“网络” -> “属性” -> “更改适配器选项”。
    • 右键点击你正在使用的网络连接(如“以太网”或“WLAN”)-> “属性”。
    • 选中“Internet 协议版本 4 (TCP/IPv4)” -> “属性”。
    • 点击右下角的“高级”按钮。
    • 切换到 “WINS” 选项卡。
    • 确保 “NetBIOS 设置” 被设置为 “默认”(通常是首选),如果设置为“禁用 NetBIOS”,可能会导致旧版系统或某些软件无法找到网络路径。
  2. 重置网络堆栈

    • 在你的电脑上(有时也需要在目标电脑上操作),以管理员身份打开命令提示符。
    • 依次执行以下命令:
      netsh winsock reset
      netsh int ip reset
      ipconfig /release
      ipconfig /renew
      ipconfig /flushdns
    • 执行完毕后,重启电脑
  3. 检查 SMB 协议版本

    • 在某些情况下,特别是新版本的 Windows (如 Win10/11) 连接旧版本的服务器时,SMBv1 可能被禁用。
    • 在目标电脑上,以管理员身份打开 PowerShell 或命令提示符。
    • 输入以下命令检查 SMBv1 状态:
      Get-SmbServerConfiguration | Select EnableSMB1Protocol
    • 如果返回 False,说明 SMBv1 已禁用。强烈建议不要重新启用 SMBv1,因为它存在严重的安全漏洞,你应该确保客户端和服务器都支持更安全的 SMBv2/v3。
    • 可以尝试在客户端电脑上强制使用 SMBv2/v3:
      echo [AutoShareServer]>c:\windows\inf\smbv2.reg
      echo "HKLM\System\CurrentControlSet\Services\LanmanServer\Parameters\SMB1">>c:\windows\inf\smbv2.reg
      echo "0">>c:\windows\inf\smbv2.reg
      regedit /s c:\windows\inf\smbv2.reg

      (注意:这是一个比较底层的操作,请在操作前备份重要数据。)


排查流程图


开始
  |
  V
检查是否在同一网络和工作组? -- 是 --> 检查目标电脑共享是否开启?
  |
分享:
扫描分享到社交APP