🔥 rkn-block-checker:分层诊断网络封锁,逐层检测 DNS/TCP/TLS/HTTP
配套媒体
本页对应的 PPT 与演示视频
下载没反应?点这里复制直链
侧边栏预览窗口(Electron webview)会拦截下载,把下面的链接复制到 Chrome / Edge 地址栏打开即可保存。
../../rkn-block-checker-recommend.pptx../../rkn-block-checker-recommend.mp4本文目录
- 🚀 什么是 rkn-block-checker?
- 解决的问题
- ✨ 核心功能一览
- 1. 分层诊断技术
- 2. 置信度评估机制
- 3. 白名单对照系统
- 4. JSON 输出与批量监控
- 🛠️ 快速上手:5 分钟跑通示例
- 安装
- 基本使用
- 自定义目标列表格式
- 📊 常见封锁类型与应对策略
- DNS 污染 (HIGH 置信度)
- TCP 重置 (MEDIUM 置信度)
- TLS DPI (MEDIUM 置信度)
- HTTP 仿冒页 (HIGH 置信度)
- 📊 竞品对比分析
- rkn-block-checker vs 传统网络工具
- 💡 适用场景
- 场景 1:网络封锁诊断
- 场景 2:网络监控与审计
- 场景 3:开发与自定义检测
- 💰 技术与安装
- 系统要求
- 安装方式
- 开源协议
- 🎯 总结
🔥 rkn-block-checker:分层诊断网络封锁,逐层检测 DNS/TCP/TLS/HTTP

一个智能的 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(审查评估)分析师
✨ 核心功能一览

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"}
📊 常见封锁类型与应对策略

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)无法精确识别封锁类型的空白。
核心优势总结:
- 分层诊断:精准确定阻塞发生在 DNS/TCP/TLS/HTTP 哪一层
- 置信度评估:每个结果都有高/中/低可靠性评级
- 白名单对照:内置 21 个对照站点,排除误判可能性
- JSON 输出:适合自动化运维和数据分析
- MIT 开源:完全免费,无商业限制
推荐场景:当你发现某些网站无法访问时,先用这个工具确定封锁类型再采取针对性应对措施
推荐指数:⭐⭐⭐⭐⭐(满分 5 星)
适合人群:
- ✅ 网络工程师进行网络故障排查
- ✅ 开发者构建监控工具
- ✅ 研究者进行网络审查分析
- ✅ 普通用户了解当前网络状况
立即体验:GitHub 仓库
快速安装:pip install rkn-block-checker
文档与支持:README
数据截至 2026-05-09,GitHub Stars 891,MIT 开源协议