在日常折腾家庭实验室(HomeLab)与局域网服务时,经常会遇到各种奇奇怪怪的网络连通性问题。今天遇到了一个非常典型且极具迷惑性的“灵异现象”:局域网内所有设备都能正常访问群晖 NAS,唯独当前使用的这台主力 Windows 电脑死活连不上;但这台电脑访问局域网内的主路由、旁路由、PVE 宿主机却又全部正常。
经过层层剖析,最终从 Windows 内核过滤驱动(WFP)顺藤摸瓜查到了安全软件的底层 SQLite 数据库,不仅一举破案,还顺带揪出了一个容易被忽视的内网穿透与远程桌面(RDP)安全隐患。特将完整排查思路与解决过程记录如下。
一、诡异的故障现象
先梳理一下家庭局域网(脱敏网段以 192.168.10.0/24 为例)的基础拓扑:
- 爱快主路由:
192.168.10.1(连通正常) - PVE 虚拟化宿主机:
192.168.10.2(连通正常) - OpenWrt 旁路由网关:
192.168.10.251(连通正常) - 群晖 NAS:
192.168.10.3(手机、平板、软路由、其他电脑访问均正常) - 当前主力 Windows 电脑:
192.168.10.100(唯独无法访问群晖192.168.10.3)
具体表现为:在当前电脑(192.168.10.100)上无论是通过浏览器访问群晖 DSM 后台(5000 端口),还是通过资源管理器挂载 SMB 共享文件夹(445 端口),全部连接失败。
二、第一阶段:二层 ARP 与三层 Ping 排查(发现端倪)
遇到同网段单点不通,首先怀疑的是二层交换隔离、ARP 缓存污染、或者本机静态路由冲突。打开 PowerShell 进行基础排查:
1. 检查本机 ARP 邻居表
Get-NetNeighbor -IPAddress 192.168.10.* | Format-Table -AutoSize
输出结果:
ifIndex IPAddress LinkLayerAddress State PolicyStore
------- --------- ---------------- ----- -----------
18 192.168.10.251 BC-24-11-XX-XX-1A Reachable ActiveStore
18 192.168.10.25 D8-43-AE-XX-XX-B9 Stale ActiveStore
18 192.168.10.3 BC-24-11-XX-XX-A3 Stale ActiveStore
可以看到,本机网卡已经成功通过 ARP 解析到了群晖 192.168.10.3 的正确 MAC 地址(BC-24-11-XX-XX-A3),说明局域网二层链路是通的,并不存在 VLAN 隔离或 AP 隔离。
2. 批量 Ping 扫描同网段 IP
紧接着对同网段 IP 进行 Ping 和端口连通性测试,结果出现了极为关键的线索:
--- Ping 192.168.10.1 ---
Reply from 192.168.10.1: bytes=32 time=3ms TTL=64
--- Ping 192.168.10.2 ---
Reply from 192.168.10.2: bytes=32 time=3ms TTL=64
--- Ping 192.168.10.3 ---
Pinging 192.168.10.3 with 32 bytes of data:
General failure.
General failure.
--- Ping 192.168.10.4 ---
Request timed out.
--- Ping 192.168.10.251 ---
Reply from 192.168.10.251: bytes=32 time=4ms TTL=64
使用 Test-NetConnection 192.168.10.3 -Port 5000 测试时,PowerShell 同样抛出了底层状态码告警:
警告: TCP connect to (192.168.10.3 : 5000) failed
警告: Ping to 192.168.10.3 failed with status: 11050
💡 关键突破口:为什么是
General failure(一般故障 / 状态码 11050)而不是Request timed out(请求超时)?在 Windows TCP/IP 协议栈中,如果目标主机不开机或丢包,返回的是
Request timed out(如上方的192.168.10.4)。而针对某一个特定 IP 瞬间返回General failure (11050),说明数据包根本就没有发出本机网卡,而是在本机操作系统的网络层/传输层被直接阻断丢弃了!
三、第二阶段:顺藤摸瓜排查 WFP 内核过滤驱动
在 Windows 系统中,能够让单个 IP 直接报 General failure 的只有两类机制:
- 本机某张已断开连接的虚拟网卡恰好绑定了相同的静态 IP(排查
Get-NetIPAddress后排除); - WFP(Windows Filtering Platform,Windows 过滤平台)防火墙或第三方安全驱动拦截。
首先排查了 Windows Defender 防火墙的出站阻断规则(Get-NetFirewallRule -Action Block -Direction Outbound),并未发现针对 192.168.10.3 的策略。于是立即使用 driverquery 检查当前系统中正在运行的网络过滤驱动:
driverquery /v | findstr /i "callout wfp filter ndis bridge nat"
在驱动列表中,一行正在运行的内核驱动进入了视野:
hrwfpdrv Huorong Network Security Kernel Auto Running C:Windowssystem32DRIVERShrwfpdrv.sys
这台电脑上安装了火绒安全软件(Huorong Security),其网络防护模块正是通过 hrwfpdrv.sys 挂载在 Windows WFP 过滤层上的!
四、第三阶段:深挖火绒底层数据库,真相大白
为了确认是不是火绒在暗中拦截了 192.168.10.3,直接检查火绒位于 C:ProgramDataHuorongSysdiag 目录下的 SQLite 数据库(user.db 与 log.db)。
检索 user.db 中的 TmpBlack_60(临时黑名单表),果然抓到了“真凶”:
=== TmpBlack_60 (火绒临时封禁黑名单表) ===
CREATE TABLE TmpBlack_60(id INTEGER PRIMARY KEY AUTOINCREMENT, raddr TEXT UNIQUE, func TEXT, time INTEGER)
(18, '192.168.10.144', 'RDP', 1792499785)
(19, '192.168.10.3', 'RDP', 1792500581)
再查看 log.db 中 HrLogV3_60 表的详细拦截日志,整个事件的前因后果彻底清晰:
{
"fid": 53,
"detail": {
"laddr": "192.168.10.100",
"detection": "RDP",
"raddr": "192.168.10.3",
"rport": 50864,
"blocked": 1,
"lport": 3389,
"closeport": 0,
"time": 60,
"timeunit": 0
}
}
🤔 为什么群晖 NAS(192.168.10.3)会攻击本机的 3389 远程桌面?
看到这里可能会觉得奇怪:群晖只是一台老老实实的 NAS,怎么会去暴力破解 Windows 电脑的 3389(RDP 远程桌面)端口呢?
串联起网络架构后恍然大悟:
- 为了在外网偶尔连接家里的电脑,在群晖 NAS(
192.168.10.3)上部署了内网穿透客户端(如frpc/ Lucky 端口转发 / 反向代理),把公网端口转发到了内网这台 Windows 电脑的192.168.10.100:3389; - 公网上的自动化扫描器/黑客全天候在扫描公网端口,并对该端口发起高频的 RDP 弱口令暴力破解;
- 由于流量是由群晖(
192.168.10.3)在应用层/NAT 层转发给当前电脑的,当前电脑的 Windows 系统看到的TCP 连接源 IP 全部变成了群晖的内网 IP192.168.10.3; - 当公网爆破触发多次 Windows 登录失败后,本机火绒安全软件的「远程登录防护(RDP 暴破拦截)」立刻介入,误以为
192.168.10.3是攻击者,直接将群晖 IP 拉入TmpBlack_60临时黑名单封禁 60 分钟! - 一旦被火绒拉入 IP 黑名单,
hrwfpdrv.sys驱动会在本机底层阻断与192.168.10.3的一切进出流量(包括 ICMP Ping 和所有 TCP 端口),于是就出现了“全屋设备都能连群晖,唯独这台电脑连不上且 Ping 报一般故障”的现象。
五、解决办法与安全加固建议
1. 立即解除封禁(秒恢复)
- 打开右下角的火绒安全软件;
- 依次进入 防护中心 → 网络防护 → 远程登录防护(或右上角菜单 → 安全设置 → 网络防护 → 远程登录防护 / IP 黑名单);
- 在临时封禁的 IP 黑名单列表中,找到群晖的 IP(
192.168.10.3)并点击移除/解封,无需重启电脑,群晖网页后台与 SMB 共享即可瞬间恢复访问。
2. 治标 vs 治本(切勿盲目加白名单!)
很多人遇到这种情况的第一反应是:“既然火绒误封了群晖 IP,那我把 192.168.10.3 加进火绒的 IP 信任区(白名单)不就行了?”
⚠️ 千万注意:如果内网穿透仍然将公网流量直接转发到本机 3389 端口,千万不要直接把转发节点的 IP 加入火绒白名单!
- 因为一旦你将
192.168.10.3加入火绒白名单,意味着公网黑客通过群晖转发过来的所有 RDP 暴力破解请求,火绒将全部放行、不再拦截,你的 Windows 远程桌面将直接暴露在公网无限次撞库风险之下!
推荐的根治方案:
- 关闭 3389 公网直通映射:在群晖的 FRP(
frpc)或 Lucky 转发规则中,立即停用将公网端口直接裸映射到内网电脑3389的规则; - 改用虚拟局域网组网(最推荐):远程桌面连接建议使用 Tailscale、ZeroTier 或 WireGuard 组建加密虚拟局域网,不向公网暴露任何 3389 端口;
- 使用 FRP 的 STCP(安全访问端)模式:如果必须使用 FRP 穿透 RDP,请将类型从普通
tcp改为stcp(Secret TCP),要求访问端也必须持有密钥才能建立隧道,彻底杜绝公网扫描器爆破。
六、小结
排查网络故障时,错误提示的细微差别往往藏着最核心的线索:
Request timed out(请求超时):代表数据包已发出,但在链路上丢包或对端未响应;General failure(一般故障,状态码 11050):代表数据包在本机协议栈内部就被拦截或路由失败(重点排查本机 WFP 安全驱动、防火墙黑名单、虚拟网卡静态 IP 冲突)。
通过这一线索顺藤摸瓜,只需几分钟即可精准定位问题根源。














暂无评论内容