当前位置: 首页 > 软件库 > 管理和监控 > 安全相关 >

GoodbyeDPI

深度包检测规避工具
授权协议 Apache-2.0
开发语言 C/C++
所属分类 管理和监控、 安全相关
软件类型 开源软件
地区 不详
投 递 者 王宏深
操作系统 Windows
开源组织
适用人群 未知
 软件概览

GoodbyeDPI 是一个被动深度包检测拦截器和主动 DPI 规避实用程序。

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

它处理使用分光器或端口镜像(被动 DPI)连接的DPI,这些DPI不会阻止任何数据,而只是比请求的目的地更快地回复,并按顺序连接主动 DPI

Windows 7、8、8.1 和 10需要管理员权限。

Usage: goodbyedpi.exe [OPTION...]
 -p          block passive DPI
 -r          replace Host with hoSt
 -s          remove space between host header and its value
 -m          mix Host header case (test.com -> tEsT.cOm)
 -f <value>  set HTTP fragmentation to value
 -k <value>  enable HTTP persistent (keep-alive) fragmentation and set it to value
 -n          do not wait for first segment ACK when -k is enabled
 -e <value>  set HTTPS fragmentation to value
 -a          additional space between Method and Request-URI (enables -s, may break sites)
 -w          try to find and parse HTTP traffic on all processed ports (not only on port 80)
 --port        <value>    additional TCP port to perform fragmentation on (and HTTP tricks with -w)
 --ip-id       <value>    handle additional IP ID (decimal, drop redirects and TCP RSTs with this ID).
                          This option can be supplied multiple times.
 --dns-addr    <value>    redirect UDP DNS requests to the supplied IP address (experimental)
 --dns-port    <value>    redirect UDP DNS requests to the supplied port (53 by default)
 --dnsv6-addr  <value>    redirect UDPv6 DNS requests to the supplied IPv6 address (experimental)
 --dnsv6-port  <value>    redirect UDPv6 DNS requests to the supplied port (53 by default)
 --dns-verb               print verbose DNS redirection messages
 --blacklist   <txtfile>  perform circumvention tricks only to host names and subdomains from
                          supplied text file (HTTP Host/TLS SNI).
                          This option can be supplied multiple times.
 --set-ttl     <value>    activate Fake Request Mode and send it with supplied TTL value.
                          DANGEROUS! May break websites in unexpected ways. Use with care.
 --auto-ttl    [decttl]   activate Fake Request Mode, automatically detect TTL and decrease
                          it from standard 64 or 128 by decttl (128/64 - TTL - 4 by default).
 --wrong-chksum           activate Fake Request Mode and send it with incorrect TCP checksum.
                          May not work in a VM or with some routers, but is safer than set-ttl.
 --wrong-seq              activate Fake Request Mode and send it with TCP SEQ/ACK in the past.
 --native-frag            fragment (split) the packets by sending them in smaller packets, without
                          shrinking the Window Size. Works faster (does not slow down the connection)
                          and better.
 --reverse-frag           fragment (split) the packets just as --native-frag, but send them in the
                          reversed order. Works with the websites which could not handle segmented
                          HTTPS TLS ClientHello (because they receive the TCP flow "combined").


LEGACY modesets:
 -1          -p -r -s -f 2 -k 2 -n -e 2 (most compatible mode)
 -2          -p -r -s -f 2 -k 2 -n -e 40 (better speed for HTTPS yet still compatible)
 -3          -p -r -s -e 40 (better speed for HTTP and HTTPS)
 -4          -p -r -s (best speed)

Modern modesets (more stable, more compatible, faster):
 -5          -f 2 -e 2 --auto-ttl --reverse-frag (this is the default)
 -6          -f 2 -e 2 --wrong-seq --reverse-frag

要检查你的ISP的DPI是否可以被规避,首先要确保你的供应商不通过在浏览器中启用 "Secure DNS(通过 HTTPS 的DNS)"选项来 poison DNS answers。

  • Chrome: Settings → Privacy and security > Use secure DNS → With: NextDNS
  • Firefox: Settings → Network Settings → Enable DNS over HTTPS → Use provider: NextDNS

然后在没有任何选项的情况下运行 goodbyedpi.exe 可执行文件。如果它起作用了--恭喜你!你可以按原样使用它,或者进一步配置,例如,如果你知道被封锁的网站名单,就使用-黑名单选项。你可以按原样使用,也可以进一步配置,例如,如果你所在的国家有已知的被屏蔽的网站名单,就可以使用-黑名单选项。

如果你的供应商拦截了 DNS 请求,你可能想使用 --dns-addr 选项到一个运行在非标准端口的公共 DNS resover(如Yandex DNS 77.88.8.8:1253)或使用第三方应用程序通过 HTTPS/TLS 配置 DNS。

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

 相关资料
  • 我正在使用Qt/openGL,激活深度缓冲区时遇到了一些问题。 在每一帧,我激活以下状态:glEnable(GL_DEPTH_TEST); glDepthFunc(GL_LEQUAL); 另外,我检查了我的深度缓冲区的大小不是空的(glGetIntegerv(GL_DEPTH_BITS)给我24,这是预期的值),但是深度测试不起作用,一些应该通过深度测试丢弃的片段不起作用。 知道吗?

  • 在坐标系统小节中,我们渲染了一个3D箱子,并且运用了深度缓冲(Depth Buffer)来防止被阻挡的面渲染到其它面的前面。在这一节中,我们将会更加深入地讨论这些储存在深度缓冲(或z缓冲(z-buffer))中的深度值(Depth Value),以及它们是如何确定一个片段是处于其它片段后方的。 深度缓冲就像颜色缓冲(Color Buffer)(储存所有的片段颜色:视觉输出)一样,在每个片段中储存了

  • 想象一下我有一个阶级家庭。它包含一个人员列表。每个(班级)人都有一个(班级)地址。每个(类)地址都包含一个(类)邮政编码。任何“中间”类都可以为空。 那么,有没有一种简单的方法可以在不必在每一步都检查null的情况下访问PostalCode?i、 例如,有没有办法避免以下菊花链代码?我知道没有“原生”Java解决方案,但我希望如果有人知道某个库或其他东西。(已选中Commons 不,不能改变结构。

  • 我是SonarQube开发者的忠实粉丝。虽然这一次我需要做管理工作,因为我需要从一个新的安装配置它。我在SonarQube“Methods should not have too lanes”中看到了这个规则,但我没有看到它属于任何默认配置文件(“findbugs+fb-contrib”、“Sonar way”)。我想这就是我在任何项目中都没有看到任何这种类型的规则违反的原因。我认为这应该是一个常

  • 大家都知道立方体的顶点数据经过顶点着色器、光栅、片元着色器等渲染管线单元处理后会得到立方体每个面的片元数据, 每个片元不仅包含RGB像素值,还有透明度分量A,片元的深度值Z,屏幕坐标(X,Y)等数据。 屏幕坐标(X,Y) 屏幕坐标指的是每一个片元的像素值在显示器canvas画布上的显示位置,如果一个网页上有多个canvas画布,或者打开多个包含canvas画布的网页窗口, 每一个引入WebGL的c