← 返回全部文章
·约 14 分钟PPT

🔥 rkn-block-checker:分层诊断网络封锁,逐层检测 DNS/TCP/TLS/HTTP

配套媒体

本页对应的 PPT 与演示视频

rkn-block-checker-recommend.mp4
PPT
rkn-block-checker-recommend.pptx浏览器不能直接打开 PPT,下载后用 PowerPoint / WPS / Keynote 查看
下载没反应?点这里复制直链

侧边栏预览窗口(Electron webview)会拦截下载,把下面的链接复制到 Chrome / Edge 地址栏打开即可保存。

PPT../../rkn-block-checker-recommend.pptx
视频../../rkn-block-checker-recommend.mp4
本文目录
  1. 🚀 什么是 rkn-block-checker?
  2. 解决的问题
  3. ✨ 核心功能一览
  4. 1. 分层诊断技术
  5. 2. 置信度评估机制
  6. 3. 白名单对照系统
  7. 4. JSON 输出与批量监控
  8. 🛠️ 快速上手:5 分钟跑通示例
  9. 安装
  10. 基本使用
  11. 自定义目标列表格式
  12. 📊 常见封锁类型与应对策略
  13. DNS 污染 (HIGH 置信度)
  14. TCP 重置 (MEDIUM 置信度)
  15. TLS DPI (MEDIUM 置信度)
  16. HTTP 仿冒页 (HIGH 置信度)
  17. 📊 竞品对比分析
  18. rkn-block-checker vs 传统网络工具
  19. 💡 适用场景
  20. 场景 1:网络封锁诊断
  21. 场景 2:网络监控与审计
  22. 场景 3:开发与自定义检测
  23. 💰 技术与安装
  24. 系统要求
  25. 安装方式
  26. 开源协议
  27. 🎯 总结

🔥 rkn-block-checker:分层诊断网络封锁,逐层检测 DNS/TCP/TLS/HTTP

rkn-block-checker 封面图

一个智能的 CLI 工具,用于诊断 RKN/TSPU 互联网封锁,可精准确定封锁类型(DNS 污染、TCP 重置、TLS DPI、HTTP 仿冒页)。


🚀 什么是 rkn-block-checker?

rkn-block-checker 是一款Python 命令行网络诊断工具,专为检测网络封锁而设计。通过分层检测技术,它能精准确认网络封锁的具体类型和层级。

核心定位:分层诊断网络封锁,逐层检测 DNS/TCP/TLS/HTTP,提供精确封锁类型报告

解决的问题

  • ❓ 我的网络被封锁了吗?
  • 🎯 是什么类型的封锁?(DNS 污染还是 TCP 重置?)
  • 🔍 封锁发生在哪一层?(DNS/TCP/TLS/HTTP)
  • 📊 能自动化监控吗?(支持 cron + JSON 输出)

适用人群:

  • 🌐 网络工程师
  • 👨‍💻 开发者
  • 🔬 研究者
  • 🧪 CAA(审查评估)分析师

✨ 核心功能一览

rkn-block-checker 检测原理

1. 分层诊断技术

rkn-block-checker 通过逐层递减的方式检测封锁类型:

检测流程:

DNS 探测 → TCP 探测 → TLS 探测 → HTTP 探测
(失败即停止,确定阻断层)

各层检测方法:

层级 探针 失败判定 置信度
DNS 系统解析器 vs Cloudflare DoH 完全不一致 = DNS 污染 HIGH
TCP 纯 TCP 握手 (:443) RST 响应 = IP 级黑盒阻断 MEDIUM
TLS TLS 握手(带 SNI) TCP 成功但 TLS 失败 = SNI DPI 阻断 MEDIUM
HTTP GET 请求 451 状态码或仿冒页 = HTTP 阻断 HIGH

技术亮点:

  • DNS 检测:比较完整地址集合而非单个 IP,避免负载均衡误判
  • TLS DPI 识别:在 ClientHello 阶段检测 SNI 扩展,这是现代 TSPU 的特征
  • 对比基线:白名单站点作为控制组,排除通用网络故障

独特优势:不仅告诉你是"被封锁了",还能精确定位封锁发生在哪一层

2. 置信度评估机制

每个诊断结果都提供高/中/低置信度评级:

级别 说明 判断依据
HIGH 高置信度 两个独立信号一致(如 DNS 污染经 DoH 确认、明确的 451 状态码)
MEDIUM 中置信度 已知审查模式匹配(如 TCP 重置),但可能存在服务器端问题
LOW 低置信度 症状模糊(通用超时),建议结合更多证据

3. 白名单对照系统

内置约 21 个白名单对照站点和 15 个黑名单检测目标,确保诊断准确性:

白名单作用:

  • 排除通用网络故障(断网、DNS 服务器故障)
  • 提供性能基线对比
  • 判断是否为特定封锁

4. JSON 输出与批量监控

适合自动化运维和数据分析:

# 定时监控(适合 cron)
rkn-check --json --no-self-info > snapshots/$(date -I).json

# 数据分析
jq '.blacklist[].verdict' snapshots/*.json | sort | uniq -c

# 实时查看
rkn-check --json | jq '.blacklist[] | {name: .verdict}'

🛠️ 快速上手:5 分钟跑通示例

安装

# 方式 1:pip 安装(推荐)
pip install rkn-block-checker

# 方式 2:从源码安装
git clone https://github.com/MayersScott/rkn-block-checker.git
cd rkn-block-checker
pip install -e .

# 方式 3:开发模式(含测试依赖)
pip install -e ".[dev]"

基本使用

# 运行完整检测(使用内置列表)
rkn-check

# 检查单个 URL
rkn-check --url https://google.com
rkn-check --url google.com --url twitter.com

# 输出 JSON 格式(适合脚本)
rkn-check --json

# 自定义目标列表
rkn-check --black-file my-list.txt
rkn-check --whitelist --url https://example.com

# 跳过 IP 查询(适合定时任务)
rkn-check --json --no-self-info

# 调整检测超时(默认 5 秒)
rkn-check --timeout 10

# 并行检测线程数(默认 10)
rkn-check --workers 20

彩色 CLI 输出示例:

== RKN Block Checker ==
  IP:       95.165.xxx.xxx
  ISP:      AS12389 Rostelecom
  Location: Moscow, Moscow, RU

Whitelist (应始终工作)
  name      verdict     TCP    TLS    PLT   status
  instagram ✓ OK       22ms   45ms   120ms  200

Blacklist (RKN 限制)
  name        verdict           TCP    TLS    PLT   status
  twitter/x   ~ LIKELY TLS DPI 24ms    -      -      -
  rutracker   ✗ HTTP STUB      18ms   45ms   120ms  200

Summary: 12/15 blocked in blacklist → Likely in an RKN-blocked zone (medium confidence)

注意:检测顺序是 DNS → TCP → TLS → HTTP,只要某一层失败,后续层就不进行

自定义目标列表格式

创建文本文件 my-list.txt:

# 每行一个 URL,可选添加名称
google https://google.com
custom=https://example.org
https://facebook.com

JSON 格式:

{"site_name": "https://example.com"}

📊 常见封锁类型与应对策略

rkn-block-checker 功能对比

DNS 污染 (HIGH 置信度)

特征:

  • 系统 DNS 解析到错误 IP 或无法解析
  • 使用 DoH(DNS over HTTPS)可以正常访问

应对策略:

  • 使用 DoH 或 DNS over TLS
  • 修改系统 DNS 为公共 DNS(如 1.1.1.1)

TCP 重置 (MEDIUM 置信度)

特征:

  • DNS 解析成功但 TCP 连接被 RST
  • 发生在 IP 级阻断

应对策略:

  • 使用代理
  • IPv6(如果可用)

TLS DPI (MEDIUM 置信度)

特征:

  • TCP 握手成功但 TLS 握手被重置
  • 在 ClientHello 阶段检测到 SNI 扩展
  • 现代 TSPU 的典型特征

应对策略:

  • 使用 TLS 混淆技术
  • 代理 + TLS 加密双重保护

HTTP 仿冒页 (HIGH 置信度)

特征:

  • 返回 HTTP 451 状态码
  • 或返回 ISP 伪造的仿冒页面

应对策略:

  • 确认仿冒页特征
  • 使用 HTTPS 代理

📊 竞品对比分析

竞品对比分析

rkn-block-checker vs 传统网络工具

对比项 rkn-block-checker mtr dig
检测层级 DNS+TCP+TLS+HTTP 仅 TCP 连通性 仅 DNS 查询
封锁类型识别 4 种精准确认 无诊断能力 无诊断能力
输出格式 彩色 CLI+JSON 纯表格 纯文本
白名单对照 内置 21 个站点 无 无
批量检测 支持 不支持 有限支持

核心优势:唯一能提供多层封锁类型精确诊断的开源工具


💡 适用场景

场景 1:网络封锁诊断

诊断流程图

功能说明:使用 rkn-block-checker 诊断当前网络环境下的封锁类型。

输入要求:网络连接正常,能访问部分站点

输出效果:彩色 CLI 报告,精准确认封锁类型和层级

适用场景:

  • ✅ 发现网络异常时判断是否被封
  • ✅ 确定封锁类型(DNS/TCP/TLS/HTTP)
  • ✅ 制定针对性应对策略

场景 2:网络监控与审计

批量检测图

功能说明:通过 cron 定时运行 + JSON 输出,建立网络封锁数据库。

输入要求:系统支持 cron/定时任务

输出效果:时间序列数据,追踪封锁变化趋势

适用场景:

  • ✅ 企业 IT 部门监控网络环境
  • ✅ 研究者进行 CAA(审查评估)研究
  • ✅ 长期追踪特定站点的封锁状态

定时监控示例:

# 每小时运行一次,记录结果
0 * * * * rkn-check --json --no-self-info >> /var/log/network-snapshots/$(date +\%Y\%m\%d).log

场景 3:开发与自定义检测

开发者工具图

功能说明:适合开发者集成到脚本或其他工具中。

输入要求:Python 3.10+ 环境

输出效果:可程序化处理的 JSON 数据

适用场景:

  • ✅ 自定义检测列表(针对特定关心的站点)
  • ✅ 与其他工具集成(如自动化运维平台)
  • ✅ 二次开发扩展功能

💰 技术与安装

系统要求

  • Python 版本:Python 3.10+
  • 操作系统:Linux/macOS/Windows
  • 网络要求:主动发起外传连接(无依赖外传)

安装方式

# 快速安装
pip install rkn-block-checker

# 开发安装(含测试依赖)
pip install -e ".[dev]"

# 使用 Docker(可选)
docker run -it MayersScott/rkn-block-checker

开源协议

MIT 开源协议:完全免费,可自由使用、修改、分发,无商业限制


🎯 总结

rkn-block-checker 是一款专业级的网络封锁诊断工具,填补了传统网络工具(如 mtr、dig)无法精确识别封锁类型的空白。

核心优势总结:

  1. 分层诊断:精准确定阻塞发生在 DNS/TCP/TLS/HTTP 哪一层
  2. 置信度评估:每个结果都有高/中/低可靠性评级
  3. 白名单对照:内置 21 个对照站点,排除误判可能性
  4. JSON 输出:适合自动化运维和数据分析
  5. MIT 开源:完全免费,无商业限制

推荐场景:当你发现某些网站无法访问时,先用这个工具确定封锁类型再采取针对性应对措施

推荐指数:⭐⭐⭐⭐⭐(满分 5 星)

适合人群:

  • ✅ 网络工程师进行网络故障排查
  • ✅ 开发者构建监控工具
  • ✅ 研究者进行网络审查分析
  • ✅ 普通用户了解当前网络状况

立即体验:GitHub 仓库

快速安装:pip install rkn-block-checker

文档与支持:README


数据截至 2026-05-09,GitHub Stars 891,MIT 开源协议