Project Icon

GoodbyeDPI

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

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

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

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号