WeaveBit 的检测结果回答的是指定方法、节点和时间下观察到了什么。正常不等于网站全部功能正常,明确异常不等于已经证明故障由某个机构造成,无法判定也不等于被封锁。
理解结果时,先区分任务是否完成、节点返回的协议状态,以及平台对这些状态的判定。这三层表达不同事实。
任务状态与检测判定
API v2 创建成功表示批次已受理;pending、running、completed 表示执行进度。completed 只表示生命周期完成,其中仍可能包含超时、节点错误或无法判定的项目。
协议 status 记录具体观测,例如 DNS_RESOLVE_OK、HTTP_HOST_RESET 或 TLS_HANDSHAKE_TIMEOUT。GFW 场景检测的 result_code 和 overall_result 才是平台判定字段,不要把一个原始状态字符串直接当作整个域名的结论。
三种结果分别说明什么
| 表达 | 场景结果值 | 应如何理解 |
|---|---|---|
| 正常 | 0 |
本次观测没有达到该检测定义的明确异常条件 |
| 明确异常 | 1 |
观察到平台定义的 DNS 污染或 HTTP TLS reset 等异常条件 |
| 无法判定 | null |
观测不足,例如超时、前置失败、未测试或其他不能分类的状态 |
英文界面中的 Normal、Blocked 和 Indeterminate 是结果分类。Blocked 应结合异常项目理解,不能扩展成“中国所有地区不可访问”或“确认是某个防火墙所为”。
DNS Resolve 成功表示获得了解析结果;它与专门的 DNS 污染判定不同。TCP Connect 成功只表示该 IP 和端口可以连接。ICMP 不响应可能是策略性禁用,不能自动当作业务服务宕机。
HTTP_RESPONSE_OK 表示收到合法 HTTP 响应,不保证状态码是 200,也不检查完整页面、跳转链和业务操作。TLS_HANDSHAKE_OK 表示该握手成功,不是证书有效期、主机名匹配和信任链的完整检查。检测方式。
GFW 全量结果怎样组合
GFW 域名全量包含 DNS 污染、HTTP Host Reset 和 TLS SNI 三个维度,并非把七种方法全部执行。查看各节点对应的三个维度,然后查看该节点的 overall_result。
平台规则为:任意维度是 1,汇总为 1;所有维度都是 0,汇总为 0;没有 1,但存在 null,汇总为 null。下面是规则示例,不是真实检测报告。
| DNS | HTTP | TLS | 汇总 | 解释 |
|---|---|---|---|---|
0 |
0 |
0 |
0 |
三个维度均能判读且未达到异常条件 |
0 |
0 |
null |
null |
TLS 证据不足,不能当作全部正常 |
0 |
1 |
0 |
1 |
HTTP 维度明确异常 |
1 |
null |
null |
1 |
DNS 已有明确异常,其他维度不足不抹除它 |
HTTP 维度只有 HTTP_RESPONSE_OK 映射到 0,HTTP_HOST_RESET 映射到 1;超时、EOF、未测试和读写错误等映射到 null。TLS 维度对应 TLS_HANDSHAKE_OK 和 TLS_HANDSHAKE_RESET;TLS Alert、EOF 或握手错误不直接归类为封锁。
无法判定时该怎么做
先看失败阶段。DNS 前置失败时,后续协议没有实际完成;TLS 未测试与 TLS reset 不是同一种观测。检查端口、目标格式、节点可用性与源站状态,再在原网络复测,必要时补充其他节点。
在 GFW 场景告警规则中,null 不作为异常,也不能用来触发恢复。如果上轮异常、这轮无法判定,不能据此宣布服务恢复。节点离线也应与目标异常分开显示。
多节点结果怎样汇报
同时保留明确异常、正常、无法判定和未返回观测的数量,并说明地区、运营商和时间。大量无法判定意味着覆盖证据不足;将这些观测删掉后只展示一个“正常率”容易误导。
发现 reset 时,平台可以把它分类为异常,但具体根因仍需结合源站日志、其他网络和复测。网络故障、服务端关闭连接和安全设备都可能造成失败,不应仅凭状态字段指定责任方。
如果只关心域名是否有 DNS 污染,使用免费检测;如果需要持续观察多节点结果,按照开始使用配置 Console 监控;如果要自行保存与分析,使用 API v2,并在其数据保留期限内完成保存。