局域网共享访问各种报错全记录:从「能 ping 不能进」到「IP/名称差异」一次说清
场景:两台 Windows 10 电脑(A:192.168.3.154,B:192.168.3.100),B 装了 360 安全卫士。
症状:
- A 可以 ping 通 B,但
\\192.168.3.100
报 0x80004005;- 改用 NetBIOS 名称
\\PC-20250820JGVU
却能打开共享;
一、先让 ICMP 通:360 是罪魁祸首
现象 | 原因 | 解决方案 |
---|---|---|
来自 192.168.3.154 的回复: 无法访问目标主机 | 360 的「局域网隐身」在内核层丢弃 ARP Reply / ICMP | 在 B 上退出 360 → 设置 → 流量防火墙/木马防火墙 → 关闭「禁止本机被 Ping」 |
验证:A 再次 ping 192.168.3.100
,收到正常回显即可。
二、让 SMB 通:防火墙 + 共享权限双检查
-
B 上打开“文件和打印机共享”
控制面板 → 网络和共享中心 → 高级共享设置- 专用/来宾网络:启用 网络发现 + 文件和打印机共享
- 所有网络:
- 关闭密码保护共享(若想免输密码)
- 或保持开启,但给账户设密码并授予共享权限
-
Windows 防火墙放行 SMB
高级安全 → 入站规则 → 文件和打印机共享(SMB-In) → 全部“允许”
三、凭据弹窗何时出现?本地账户场景速查表
目标机策略 | 访问方式 | 是否弹窗 | 需填账户类型 |
---|---|---|---|
关闭密码保护共享 | IP / 名称 | 否 | 直接以 Guest 进入 |
开启密码保护共享 | IP / 名称 | 是 | 目标机本地非空密码账户(如 .\Administrator ) |
账户空密码 | 任意 | 无限弹窗/失败 | 先给账户设密码,或改组策略允许空密码网络登录 |
空密码网络登录开关:
gpedit.msc → 计算机配置 → Windows 设置 → 安全设置 → 本地策略 → 安全选项 → “帐户: 使用空密码的本地帐户只允许进行控制台登录” → 禁用
四、为什么 \\IP
失败、\\名称
却能成?
根本原因:Windows 安全区域策略
\\192.168.3.100
被当成 Internet 区域 → 强制 NTLMv2,拒绝空会话/Guest。\\PC-20250820JGVU
被当成 Intranet 区域 → 允许 NTLM 回退或直接使用缓存凭据。
修复思路(任选其一):
-
组策略:
gpedit.msc → 计算机配置 → Windows 设置 → 安全设置 → 本地策略 → 安全选项 → 网络安全:限制 NTLM → 仅允许向 Intranet 服务器发送
-
注册表:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters]
"AllowInsecureGuestAuth"=dword:00000001
-
凭据管理器:
在 A 的“Windows 凭据”里新增
Internet 地址: 192.168.3.100
用户名: PC-20250820JGVU\本地用户名
密码: ****
五、无密码也能访问的“懒人方案”
仅测试/家庭场景使用,生产环境不建议。
- 目标机本地账户 不设置密码
- 组策略:禁用“空密码只允许控制台登录”
- 共享目录 → 右键 → 属性 → 共享 → 高级共享 → 权限 → 添加 Everyone 读取/写入
- A 直接访问
\\192.168.3.100
即可免输密码进入。
六、一键排障流程图
A 无法访问 B
├─ ping 不通
│ └─ 360 拦截 → 关闭“禁止 ping”
├─ ping 通但 0x80004005
│ ├─ 检查 B 防火墙 SMB 规则
│ ├─ 检查共享权限 / 空密码
│ └─ 检查安全区域 → 用名称或改策略
└─ 弹凭据框
└─ 按上表格填本地账户 + 密码
至此,从 ICMP 到 SMB,再到凭据逻辑,全部打通。