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的行为。

编辑推荐精选

Keevx

Keevx

AI数字人视频创作平台

Keevx 一款开箱即用的AI数字人视频创作平台,广泛适用于电商广告、企业培训与社媒宣传,让全球企业与个人创作者无需拍摄剪辑,就能快速生成多语言、高质量的专业视频。

即梦AI

即梦AI

一站式AI创作平台

提供 AI 驱动的图片、视频生成及数字人等功能,助力创意创作

扣子-AI办公

扣子-AI办公

AI办公助手,复杂任务高效处理

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

TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
蛙蛙写作

蛙蛙写作

AI小说写作助手,一站式润色、改写、扩写

蛙蛙写作—国内先进的AI写作平台,涵盖小说、学术、社交媒体等多场景。提供续写、改写、润色等功能,助力创作者高效优化写作流程。界面简洁,功能全面,适合各类写作者提升内容品质和工作效率。

AI辅助写作AI工具蛙蛙写作AI写作工具学术助手办公助手营销助手AI助手
问小白

问小白

全能AI智能助手,随时解答生活与工作的多样问题

问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。

热门AI助手AI对话AI工具聊天机器人
Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

下拉加载更多