news 2026/9/3 8:46:50

GoodbyeDPI 快速入门:在 Windows 上绕过 DPI 审查(附源码导览)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
GoodbyeDPI 快速入门:在 Windows 上绕过 DPI 审查(附源码导览)

GoodbyeDPI 快速入门:在 Windows 上绕过 DPI 审查(附源码导览)

【免费下载链接】GoodbyeDPIGoodbyeDPI — Deep Packet Inspection circumvention utility (for Windows)项目地址: https://gitcode.com/GitHub_Trending/go/GoodbyeDPI

如果你所在的网络环境里,某些网站会"莫名其妙打不开",那很可能是运营商的 DPI(深度包检测)在拦截流量。GoodbyeDPI 就是一个专门干这件事的开源工具:它能在 Windows 上同时对付"被动 DPI"(冒充目标网站抢先回复)和"主动 DPI"(串在链路上检查内容),通过 TCP 分片、伪造 Host 头、发送假包等 7 种手法让 DPI"看花眼",从而恢复被屏蔽站点的访问。本文带你从拿到代码到读懂入口、跑通第一次运行,全程 15 分钟以内。适合人群:想在 Windows 上解决网站被墙问题的普通用户,以及想看懂它底层原理的开发者。

三分钟拿到代码并跑起来

先说结论:GoodbyeDPI 只能运行在 Windows 7/8/8.1/10/11 上,且需要管理员权限,它的核心依赖是 WinDivert 驱动(负责把网络包截下来交给用户态处理)。

第一步,获取代码(最短路径):

git clone https://gitcode.com/GitHub_Trending/go/GoodbyeDPI

第二步,编译。项目用 GNU Make + MinGW 构建,仓库里的 src/Makefile 已经把所有工作都写好了,你只需把 WinDivert 的 include 和库路径指给它:

cd src make BIT64=1 WINDIVERTHEADERS=/path/to/windivert/include WINDIVERTLIBS=/path/to/windivert/amd64

(32 位系统把BIT64=1去掉、库路径换成 x86 即可。)编译成功后会在src/下得到goodbyedpi.exe

第三步,首次运行。以管理员身份打开命令行,直接执行:

goodbyedpi.exe

这一步完成后你会看到控制台打印GoodbyeDPI v0.2.3rc3: Passive DPI blocker and Active DPI circumvention utility,然后程序就安静地开始工作了——它不带参数启动时默认启用 -9 模式(现代模式集:HTTP/HTTPS 分片 + 伪造包 + QUIC 拦截),窗口开着它就生效,关闭窗口立即退出。这是官方推荐的"先裸跑看看通不通"的方式,如果此时被屏蔽的网站能打开了,恭喜你,可以保持现状;如果需要更精细的定制,往下看。

一分钟看懂仓库怎么组织

整个仓库非常克制,没有花哨的框架,核心代码全部集中在src/目录(两层以内):

GoodbyeDPI/ ├── src/ # 全部源代码 │ ├── goodbyedpi.c # 主程序:抓包、分片、改包、回注,整个"战场" │ ├── dnsredir.c # 把本机 DNS 请求改投到指定地址/端口,防 DNS 投毒 │ ├── ttltrack.c # 监听 SYN/ACK 统计远端 TTL,判断"假包"该发多远 │ ├── blackwhitelist.c # 域名黑白名单,只对列表内站点出手 │ ├── fakepackets.c # 生成各种"假 HTTP/HTTPS 包" │ ├── service.c # 注册为 Windows 服务,开机自启 │ ├── utils/ # 工具函数:字符串替换、getline、uthash 哈希表 │ └── Makefile # 构建脚本,MinGW 交叉编译配置 ├── README.md # 官方文档,用法与原理都在这里 └── LICENSE

读代码的建议顺序是:先读 README.md 的 "How does it work" 一节建立直觉,再进src/goodbyedpi.c看实现,遇到不认识的模块名(比如 ttltrack)回来看这张地图对号入座。

看懂入口:程序启动时到底做了什么

真正的主入口是 src/goodbyedpi.c 里的main(),整个文件 1500 多行,但启动阶段的关键动作只有四步:

int main(int argc, char *argv[]) { // 1. 若以 Windows 服务方式启动,注册服务并挂起当前线程 if (service_register(argc, argv)) return 0; // 2. 初始化 WinDivert 过滤器:只抓 80/443 端口的 TCP 包,排除内网 filter_string = strdup(FILTER_STRING_TEMPLATE); // 3. 不带参数 = 默认 -9 模式:分片 + 假包 + 拦截 QUIC if (argc == 1) { do_fragment_http = do_fragment_https = 1; http_fragment_size = https_fragment_size = 2; do_block_quic = 1; // ... 其余标志位 ... } // 4. 用 getopt_long 解析 -p / -f / --blacklist 等全部命令行参数 while ((opt = getopt_long(argc, argv, ...)) != -1) { ... } }

换句话说,这个程序没有"配置文件",一切行为都来自命令行参数,main()后半段就是死循环地收包、判断要不要"做手脚"、再回注进网络。

最常改的 4 个参数

GoodbyeDPI 的参数很多(goodbyedpi.exe -h可查看全部),日常真正用得上的是下面这几个:

参数作用改成 X 会发生什么
-9(默认)现代模式集,速度最快、兼容性最好换成-1会退回"最兼容模式",老式 DPI 更怕它,但网速更慢
--blacklist 文件.txt只对列表内域名执行规避改成你的封锁清单后,其他站点流量完全不碰,更安全也省 CPU
--dns-addr 77.88.8.8 --dns-port 1253把 DNS 请求改投到指定解析器的非标准端口运营商若对 DNS 投毒(把域名解析成垃圾 IP),加上它就能绕过去
--max-payload 1200超过此长度的包不再处理调小(如 600)CPU 占用更低,但大文件传输期间的请求可能漏处理

一个小提醒:README 里的--set-ttl--wrong-chksum等"假请求模式"威力大但被明确标注 DANGEROUS,建议新手始终搭配--blacklist使用。

下一步可以试试

  1. 动手改参数:把你被屏蔽的域名整理成一个 txt,用--blacklist跑一次,对比裸跑时的控制台输出差异,体会"精准打击"和"全量处理"的区别;
  2. 顺着源码读原理:从main()的收包循环出发,重点看src/fakepackets.c(假包是怎么伪造的)和src/ttltrack.c(TTL 探测如何决定假包能"走多远"),配合 README 的 "How does it work" 一节,能把 7 种规避手法全部对上号;
  3. 装成服务:参考 README 的 "How to install as Windows Service" 小节,用 src/service.c 支持的注册功能让它开机自启,从此不再需要手动开窗口。如果使用过程中遇到兼容性问题(比如 Killer 网卡、老版 Win7 的驱动签名问题),README 的 "Known issues" 一节已经把常见坑都列出来了,查一下往往比自己摸索快得多。

【免费下载链接】GoodbyeDPIGoodbyeDPI — Deep Packet Inspection circumvention utility (for Windows)项目地址: https://gitcode.com/GitHub_Trending/go/GoodbyeDPI

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/3 8:45:52

VSG阻抗建模与仿真:从控制原理到弱电网稳定性分析实战

简介:本资源是一套面向电力电子与新能源并网方向研究生及科研工程师的VSG逆变器序阻抗建模MATLAB仿真工具包,聚焦弱电网下虚拟同步发电机并网稳定性分析这一核心问题,特别适用于阻抗建模、扫频法验证与小信号稳定性研究等场景。压缩包共9个文…

作者头像 李华
网站建设 2026/9/3 8:44:26

PyTorch交通手势识别:端到端落地Jetson Nano的工程实践

简介:本资源是一套基于PyTorch实现的中国交通警察8类指挥手势识别完整项目,面向计算机、人工智能及相关专业本科生开展毕业设计、课程大作业或深度学习实战训练。项目聚焦真实交通场景下的细粒度手势理解任务,涵盖数据预处理、关键点检测&…

作者头像 李华
网站建设 2026/9/3 8:43:55

Blender网格优化实战:拓扑、减面与重拓扑完整工作流

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/3 8:43:08

YOLOv5瓶子检测数据集实战:从数据预处理到模型部署全流程

简介:本资源是专为YOLOv5目标检测模型训练定制的瓶子(bottle)类别数据集,面向计算机视觉初学者、AI算法工程师及工业质检应用开发者,解决瓶装产品在产线识别、自动售货机定位、仓储分拣等场景中的精准检测需求。压缩包…

作者头像 李华
网站建设 2026/9/3 8:42:20

Azure AI Search(1)

Demo作用 写了一个小demo,用来理解Azure Search,跑起来是这样的,用户提问,给出具体代码和gif的效果,代码放这里了 https://github.com/YeMengHua417/Q-A,也全是Copilot的功劳 流程及架构 用到了Azure sea…

作者头像 李华
网站建设 2026/9/3 8:41:27

小波变换图像去噪:原理、Python实现与实战避坑指南

简介:本资源是一份面向数字图像处理初学者与进阶学习者的MATLAB实践项目,聚焦小波变换在图像去噪中的核心应用,解决非平稳噪声干扰下的图像质量提升问题,适用于医学影像、遥感图像及数字艺术等实际场景。压缩包共6个文件&#xff…

作者头像 李华