GoodbyeDPI

GoodbyeDPI

高效突破深度包检测的网络自由工具

GoodbyeDPI是一款突破深度包检测(DPI)系统的开源工具,适用于Windows 7及更高版本。它通过TCP分片、HTTP头修改和发送伪造数据包等技术,有效应对被动和主动DPI。该工具提供多种运行模式,可灵活适应不同网络环境。GoodbyeDPI操作简单,支持作为Windows服务安装,能够持续确保网络访问自由。

GoodbyeDPIDPI绕过网络审查网络安全Windows工具Github开源项目

GoodbyeDPI — 深度包检测规避工具

这款软件旨在绕过许多互联网服务提供商使用的深度包检测系统,这些系统会阻止访问某些网站。

它可以处理使用光分路器或端口镜像连接的DPI(被动DPI),这种DPI不会阻止任何数据,只是比请求的目标回复得更快,以及串联连接的主动DPI

需要管理员权限的Windows 7、8、8.1、10或11

快速开始

这些脚本以推荐模式启动GoodbyeDPI,并将DNS解析器重定向到非标准端口的Yandex DNS(以防止DNS污染)。 如果它能正常工作 — 恭喜!你可以按原样使用或进一步配置。

如何使用

发布页面下载最新版本并运行。

用法: goodbyedpi.exe [选项...]
 -p          阻止被动DPI
 -q          阻止QUIC/HTTP3
 -r          将Host替换为hoSt
 -s          移除主机头与其值之间的空格
 -m          混合主机头大小写(test.com -> tEsT.cOm)
 -f <值>     设置HTTP分片为指定值
 -k <值>     启用HTTP持久(keep-alive)分片并设置为指定值
 -n          启用-k时不等待第一个分段的ACK
 -e <值>     设置HTTPS分片为指定值
 -a          在方法和请求URI之间添加额外空格(启用-s,可能会破坏网站)
 -w          尝试在所有处理的端口上查找并解析HTTP流量(不仅仅是80端口)
 --port        <值>    对额外的TCP端口执行分片(使用-w时还包括HTTP技巧)
 --ip-id       <值>    处理额外的IP ID(十进制,丢弃具有此ID的重定向和TCP RST)。
                       此选项可多次提供。
 --dns-addr    <值>    将UDP DNS请求重定向到指定IP地址(实验性)
 --dns-port    <值>    将UDP DNS请求重定向到指定端口(默认为53)
 --dnsv6-addr  <值>    将UDPv6 DNS请求重定向到指定IPv6地址(实验性)
 --dnsv6-port  <值>    将UDPv6 DNS请求重定向到指定端口(默认为53)
 --dns-verb               打印详细的DNS重定向消息
 --blacklist   <文本文件> 仅对提供的文本文件中的主机名和子域执行规避技巧
                          (HTTP主机/TLS SNI)。
                          此选项可多次提供。
 --allow-no-sni           启用--blacklist时,如果无法检测到TLS SNI,仍执行规避。
 --frag-by-sni            如果在TLS数据包中检测到SNI,在SNI值之前对数据包进行分片。
 --set-ttl     <值>    激活伪请求模式并以指定的TTL值发送。
                       危险!可能会以意想不到的方式破坏网站。谨慎使用(或使用--blacklist)。
 --auto-ttl    [a1-a2-m]  激活伪请求模式,自动检测TTL并根据距离减少它。
                          如果距离短于a2,TTL减少a2。如果更长,使用(a1; a2)比例,
                          以距离为权重。如果结果TTL大于m(ax),则设为m。
                          默认(如果设置):--auto-ttl 1-4-10。同时设置--min-ttl 3。
                          危险!可能会以意想不到的方式破坏网站。谨慎使用(或使用--blacklist)。
 --min-ttl     <值>    在--set-ttl和--auto-ttl模式下发送伪请求的最小TTL距离
                       (128/64 - TTL)。
 --wrong-chksum           激活伪请求模式并发送具有不正确TCP校验和的请求。
                          在虚拟机或某些路由器中可能无法工作,但比set-ttl更安全。
 --wrong-seq              激活伪请求模式并发送具有过去TCP SEQ/ACK的请求。
 --native-frag            通过发送较小的数据包来分片(拆分)数据包,而不缩小窗口大小。
                          运行更快(不会减慢连接速度)且效果更好。
 --reverse-frag           像--native-frag一样分片(拆分)数据包,但以相反的顺序发送。
                          适用于无法处理分段HTTPS TLS ClientHello的网站
                          (因为它们接收"组合"的TCP流)。
 --max-payload [值]    不处理TCP有效载荷数据超过[值]的数据包。
                       使用此选项可通过跳过已建立会话中的大量数据(如文件传输)
                       来减少CPU使用率。可能会跳过处理一些大型HTTP请求。
                       默认(如果设置):--max-payload 1200。


传统模式设置:
 -1          -p -r -s -f 2 -k 2 -n -e 2 (最兼容模式)
 -2          -p -r -s -f 2 -k 2 -n -e 40 (HTTPS速度更快但仍兼容)
 -3          -p -r -s -e 40 (HTTP和HTTPS速度更快)
 -4          -p -r -s (最佳速度)

现代模式设置(更稳定、更兼容、更快):
 -5          -f 2 -e 2 --auto-ttl --reverse-frag --max-payload
 -6          -f 2 -e 2 --wrong-seq --reverse-frag --max-payload
 -7          -f 2 -e 2 --wrong-chksum --reverse-frag --max-payload
 -8          -f 2 -e 2 --wrong-seq --wrong-chksum --reverse-frag --max-payload
 -9          -f 2 -e 2 --wrong-seq --wrong-chksum --reverse-frag --max-payload -q (这是默认设置)

 注意:--wrong-seq和--wrong-chksum的组合会生成两个不同的伪造数据包。

要检查是否可以规避ISP的DPI,首先确保你的提供商没有通过在浏览器中启用"安全DNS(DNS over HTTPS)"选项来污染DNS答复。

  • Chrome:设置 → 隐私和安全 → 使用安全DNS → 使用:NextDNS
  • Firefox设置 → 网络设置 → 启用DNS over HTTPS → 使用提供商:NextDNS

然后不带任何选项运行goodbyedpi.exe可执行文件。如果它能正常工作 — 恭喜!你可以按原样使用或进一步配置,例如,如果你所在国家的被封网站列表已知且可用,可以使用--blacklist选项。

如果你的提供商拦截DNS请求,你可能需要使用--dns-addr选项指向运行在非标准端口的公共DNS解析器(如Yandex DNS 77.88.8.8:1253),或使用第三方应用程序配置DNS over HTTPS/TLS。

查看.cmd脚本并根据你的偏好和网络条件进行修改。

工作原理

被动DPI

大多数被动DPI在你尝试通过HTTP访问被封网站时会发送HTTP 302重定向,而在HTTPS的情况下会发送TCP重置,速度比目标网站更快。DPI发送的数据包通常具有IP标识字段等于0x00000x0001,这在俄罗斯提供商中可以看到。如果这些数据包将你重定向到另一个网站(审查页面),GoodbyeDPI会阻止它们。

主动DPI

主动DPI更难欺骗。目前,该软件使用7种方法来规避主动DPI:

  • 对第一个数据包进行TCP级别的分片
  • 对持久性(保持活动)HTTP会话进行TCP级别的分片
  • Host头替换为hoSt
  • 移除Host头中头部名称和值之间的空格
  • 在HTTP方法(GET、POST等)和URI之间添加额外的空格
  • 混合使用Host头部值的大小写
  • 发送具有低生存时间值、不正确校验和或不正确TCP序列/确认号的伪造HTTP/HTTPS数据包,以欺骗DPI并防止将其传递到目的地

这些方法不应破坏任何网站,因为它们完全兼容TCP和HTTP标准,但足以防止DPI数据分类和规避审查。额外的空格可能会破坏某些网站,尽管HTTP/1.1规范允许这样做(参见19.3宽容应用程序)。

该程序加载WinDivert驱动程序,它使用Windows过滤平台设置过滤器并将数据包重定向到用户空间。只要控制台窗口可见,它就会一直运行,当你关闭窗口时就会终止。

如何从源代码构建

本项目可以使用GNU Makemingw构建。唯一的依赖是WinDivert

要构建x86可执行文件,运行:

make CPREFIX=i686-w64-mingw32- WINDIVERTHEADERS=/path/to/windivert/include WINDIVERTLIBS=/path/to/windivert/x86

对于x86_64:

make CPREFIX=x86_64-w64-mingw32- BIT64=1 WINDIVERTHEADERS=/path/to/windivert/include WINDIVERTLIBS=/path/to/windivert/amd64

如何作为Windows服务安装

查看service_install_russia_blacklist.cmdservice_install_russia_blacklist_dnsredir.cmdservice_remove.cmd脚本中的示例。

根据你自己的需求修改它们。

已知问题

  • 严重过时的Windows 7安装由于缺少对SHA256数字签名的支持,无法加载WinDivert驱动程序。安装KB3033929 x86/x64,或者最好使用Windows Update更新整个系统。
  • 一些SSL/TLS堆栈无法处理分片的ClientHello数据包,HTTPS网站将无法打开。Bug:#4#64 分片问题已在v0.1.7中修复。
  • ESET防病毒软件与WinDivert驱动程序不兼容#91。这很可能是防病毒软件的错误,而不是WinDivert的问题。

类似项目

致谢

感谢@basil00开发的WinDivert。这是本程序的主要部分。

感谢每位BlockCheck贡献者。没有这个工具,就不可能理解DPI的行为。

编辑推荐精选

音述AI

音述AI

全球首个AI音乐社区

音述AI是全球首个AI音乐社区,致力让每个人都能用音乐表达自我。音述AI提供零门槛AI创作工具,独创GETI法则帮助用户精准定义音乐风格,AI润色功能支持自动优化作品质感。音述AI支持交流讨论、二次创作与价值变现。针对中文用户的语言习惯与文化背景进行专门优化,支持国风融合、C-pop等本土音乐标签,让技术更好地承载人文表达。

QoderWork

QoderWork

阿里Qoder团队推出的桌面端AI智能体

QoderWork 是阿里推出的本地优先桌面 AI 智能体,适配 macOS14+/Windows10+,以自然语言交互实现文件管理、数据分析、AI 视觉生成、浏览器自动化等办公任务,自主拆解执行复杂工作流,数据本地运行零上传,技能市场可无限扩展,是高效的 Agentic 生产力办公助手。

lynote.ai

lynote.ai

一站式搞定所有学习需求

不再被海量信息淹没,开始真正理解知识。Lynote 可摘要 YouTube 视频、PDF、文章等内容。即时创建笔记,检测 AI 内容并下载资料,将您的学习效率提升 10 倍。

AniShort

AniShort

为AI短剧协作而生

专为AI短剧协作而生的AniShort正式发布,深度重构AI短剧全流程生产模式,整合创意策划、制作执行、实时协作、在线审片、资产复用等全链路功能,独创无限画布、双轨并行工业化工作流与Ani智能体助手,集成多款主流AI大模型,破解素材零散、版本混乱、沟通低效等行业痛点,助力3人团队效率提升800%,打造标准化、可追溯的AI短剧量产体系,是AI短剧团队协同创作、提升制作效率的核心工具。

seedancetwo2.0

seedancetwo2.0

能听懂你表达的视频模型

Seedance two是基于seedance2.0的中国大模型,支持图像、视频、音频、文本四种模态输入,表达方式更丰富,生成也更可控。

nano-banana纳米香蕉中文站

nano-banana纳米香蕉中文站

国内直接访问,限时3折

输入简单文字,生成想要的图片,纳米香蕉中文站基于 Google 模型的 AI 图片生成网站,支持文字生图、图生图。官网价格限时3折活动

扣子-AI办公

扣子-AI办公

职场AI,就用扣子

AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!

堆友

堆友

多风格AI绘画神器

堆友平台由阿里巴巴设计团队创建,作为一款AI驱动的设计工具,专为设计师提供一站式增长服务。功能覆盖海量3D素材、AI绘画、实时渲染以及专业抠图,显著提升设计品质和效率。平台不仅提供工具,还是一个促进创意交流和个人发展的空间,界面友好,适合所有级别的设计师和创意工作者。

图像生成热门AI工具AI图像AI反应堆AI工具箱AI绘画GOAI艺术字堆友相机
码上飞

码上飞

零代码AI应用开发平台

零代码AI应用开发平台,用户只需一句话简单描述需求,AI能自动生成小程序、APP或H5网页应用,无需编写代码。

Vora

Vora

免费创建高清无水印Sora视频

Vora是一个免费创建高清无水印Sora视频的AI工具

下拉加载更多