跳到正文
发现
DPI Detector:网络流量审查检测工具
命令行工具开发者工具

DPI Detector:网络流量审查检测工具

一款用于检测网络审查与 DPI 封锁的命令行工具,识别 TCP、TLS、HTTP、DNS 层面的封锁与连接中断。

admin
发布于 2026-10-28
浏览
4
访问
0
下载
0
版本
v4.2.4
平台
Windows、macOS、Linux
该作品还没有经过官方审核。访问演示、下载或复制命令前,请自行确认来源可信。

详细介绍

项目简介

DPI Detector 是一个用 Python 编写的网络审查检测工具,用于分析运营商对网站、主机商与 CDN 的封锁情况。它可以发现并分类各类阻断现象,包括 TCP 16-20KB 连接中断、TLS/SNI 封锁、HTTP 阻断以及 DNS 劫持与投毒,适合需要排查网络连通性、验证代理或翻墙工具效果的开发者与网络用户。

工具提供交互式菜单,也支持纯命令行参数运行;除源码外还提供 Windows、Linux、macOS 的预编译二进制,以及 Docker 镜像(含 Web 界面版本)。

主要功能

  • TCP 16-20KB 封锁检测:发现连接到 CDN 与主机商时,在传输约 14–34KB 数据后连接被中断的现象。
  • 白名单 SNI 探测:为 AS 主机商 / CDN 自动挑选可用的“白”SNI 域名。
  • 被封锁网站可达性检测:分别测试 TLS 1.2、TLS 1.3 与 HTTP。
  • DNS 检查:识别 UDP/53 拦截、IP 被替换为占位地址、DoH/DoT 被封锁等情况。
  • 错误分类:区分 TCP RST、Connection Abort、握手/读取超时、TLS MITM、SNI 封锁等类型。
  • 灵活配置:可在菜单中调整超时、自定义域名列表、DNS 服务器、IPv4/IPv6 以及并发数(1/5/20/50/100)。

安装与使用

Python 3.8+

依赖:httpx[socks,http2]>=0.28.1、rich>=14.3.2、PyYAML>=6.0.3。

git clone https://github.com/Runnin4ik/dpi-detector.git
cd dpi-detector
python -m pip install -r requirements.txt

启动:

python dpi_detector.py
# 或带参数运行
python dpi_detector.py -t 2 -d discord.com -p socks5://127.0.0.1:1080

Docker

docker run --rm -it --pull=always ghcr.io/runnin4ik/dpi-detector:latest

Web 界面版本:

docker run -d --name dpi-detector-web -p 7681:7681 --restart unless-stopped ghcr.io/runnin4ik/dpi-detector:web

启动后在浏览器打开 http://<服务器IP>:7681 或 http://localhost:7681。

Windows / Linux / macOS

从 releases 页面下载对应平台的二进制文件后直接运行,例如 Linux x86_64:

curl -fsSLO https://github.com/Runnin4ik/dpi-detector/releases/download/v4.2.4/dpi_detector_v4.2.4_linux_x86_64 && chmod +x dpi_detector_v4.2.4_linux_x86_64 && ./dpi_detector_v4.2.4_linux_x86_64

macOS 版本未做公证,运行前需用 xattr -cr <文件> 解除系统隔离。

Android(Termux)/ iOS(a-Shell)

在 Termux 中安装 git python clang make 后克隆仓库、pip install -r requirements.txt 并运行 python dpi_detector.py。在 a-Shell 中不支持交互模式,需改用带参数的方式,例如:

python dpi_detector.py -t 123 --batch

常用命令行参数

参数 说明
-t, --tests 指定测试编号,跳过菜单,如 -t 123
-p, --proxy 使用代理,如 -p socks5://127.0.0.1:1080
-d, --domain 只检查指定域名,忽略 domains.txt
-c, --concurrency 并发请求数
-o, --output 将日志自动保存到指定文件
--batch 关闭所有交互提问与暂停

自定义配置

可覆盖以下文件(二进制版本放在可执行文件同目录,Docker 版本通过 -v 挂载):

  • domains.txt:要检测可用性的域名列表
  • tcp16.json:TCP 16-20KB 检测的目标与端口
  • config.yml:超时、DoH 服务器等参数
  • whitelist_sni.txt:用于 SNI 探测的白名单域名

注意事项

  • 若本机正在运行 zapret、GoodbyeDPI 等绕过封锁的工具,测试结果会被干扰。要了解运营商过滤的真实情况,请先关闭这些工具,或确认其运行在“处理全部数据包(ALL)”模式,而非仅按列表处理。
  • a-Shell 中无法使用交互式菜单,必须通过 -t 指定测试并加上 --batch。
  • Termux 请从 F-Droid 或 GitHub Releases 安装,Google Play 版本已过期且不受支持。
  • 项目以 MIT 许可证开源。

本作品整理自 GitHub 开源项目 Runnin4ik/dpi-detector,原作者 @Runnin4ik,许可证 MIT。中文介绍由 AI 根据项目 README 整理,以原仓库为准。

更新记录

  1. v4.2.4当前版本

    修复在 Windows 7 上的启动问题。

评论