公司动态

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

📅 2026/9/3 8:46:50
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 BIT641 WINDIVERTHEADERS/path/to/windivert/include WINDIVERTLIBS/path/to/windivert/amd6432 位系统把BIT641去掉、库路径换成 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超过此长度的包不再处理调小如 600CPU 占用更低但大文件传输期间的请求可能漏处理一个小提醒README 里的--set-ttl、--wrong-chksum等假请求模式威力大但被明确标注 DANGEROUS建议新手始终搭配--blacklist使用。下一步可以试试动手改参数把你被屏蔽的域名整理成一个 txt用--blacklist跑一次对比裸跑时的控制台输出差异体会精准打击和全量处理的区别顺着源码读原理从main()的收包循环出发重点看src/fakepackets.c假包是怎么伪造的和src/ttltrack.cTTL 探测如何决定假包能走多远配合 README 的 How does it work 一节能把 7 种规避手法全部对上号装成服务参考 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),仅供参考