DPI 绕过工具:zapret 与 GoodbyeDPI,以及它们为什么不能当 VPN

两个知名的 DPI 规避工具的原理与用法,顺带讲清一个常见误会——为什么它们能救活一部分被墙的网站,却救不了 Google,也换不来能用 Claude 的身份。

#DPI#网络审查#翻墙原理#zapret#GoodbyeDPI

先把结论摆前面:这两个工具是「DPI 规避」工具,不是代理、不是 VPN。它们能对付的是防火墙里「检查你在跟谁说话、说了什么」的那一层;对付不了「你根本连不上那个 IP」和「对面嫌你是中国 IP 不接客」这两种情况。搞混这点,就会指望它们干它们干不了的事。

下面先讲清楚封锁到底分几种,再说这两个工具各自怎么用,最后回答标题里的问题。

一、封锁其实不是一件事,是三件事

GFW(以及任何一套审查系统)拦你的手段,粗分是三层,越往下越难绕:

层次防火墙怎么拦靠什么绕
DNS 污染你查 google.com 的 IP,给你返回一个假的/错的换加密 DNS(DoH/DoT)、写 hosts
DPI / SNI 阻断放你连,但在你发出的包里读到敏感域名/关键词,就注入 RST 把连接掐断,或直接丢包zapret、GoodbyeDPI 就是干这个的
IP 封锁直接封掉目标 IP 段,去往那个 IP 的包一律不通只能换条路走——代理 / VPN

关键在于理解 DPI 这一层的工作方式。你访问一个 HTTPS 网站,握手的第一个包(TLS ClientHello)里有个字段叫 SNI,明文写着你要访问的域名——这是为了让一台服务器上的多个网站能被正确分发。防火墙不用解密你的流量,光读这个明文 SNI 就知道你要去哪,够它下手了。HTTP 则更直白,Host 头明文写着域名。

DPI 规避的全部思路就一句话:把这个包切碎、打乱、掺假,让防火墙的解析器认不出里面的域名,但对面真正的服务器还能正常拼回来。 防火墙和真服务器对「畸形包」的容忍度不一样,工具就钻这个缝。

二、zapret(bol-van/zapret)

跨平台的那个,也是目前功能最全、社区最活跃的。

能跑在哪: Linux(主战场,尤其 OpenWrt 路由器)、Windows、FreeBSD/OpenBSD、macOS(部分)、Android,甚至华为随身 wifi 的固件。

主要组件:

组件干什么
nfqws核心。Linux 上挂在 NFQUEUE 上改包,做包级别的「desync」攻击
winwsWindows 版的 nfqws,靠 WinDivert 驱动截包
tpws透明代理,做流级别(而非单包级别)的改写
dvtwsBSD 版的 nfqws
ip2net / mdig维护 IP 列表、批量 DNS 查询的辅助工具

它用的花招(desync 家族):

1、split / multisplit——把 ClientHello 在 SNI 中间切成几个 TCP 段发出去,防火墙按单包解析就拼不出完整域名。 2、fake——先发一个「假包」,内容能骗过 DPI(让它以为连接是别的东西),但用极低的 TTL 让这个假包在到达真服务器之前就在路上「过期」死掉,只有真包能到。 3、disorder——故意打乱 TCP 段的顺序发送。 4、IP 分片 / 错误校验和 / 乱序序列号——各种让防火墙状态机错乱的手段。

Windows 上怎么用(最常见场景):

去 Releases 下载 zapret-winws 压缩包,解压后里面是一堆 .bat 脚本(general.batpreset_russia.bat 之类)。以管理员身份双击一个预设脚本,它会装好 WinDivert 驱动并常驻在后台改包。你不用改 IP、不用设代理,浏览器照常直连——包在出网卡之前已经被 winws 处理过了。选哪个预设要试,因为不同地区、不同运营商的 DPI 实现不一样,能生效的花招组合也不同。

Linux / OpenWrt: git clone 之后跑 install_easy.sh,脚本会交互式地帮你选策略、生成 nftables/iptables 规则、装成 systemd 服务。路由器上装一次,全内网设备受益。

三、GoodbyeDPI(ValdikSS/GoodbyeDPI)

只管 Windows,出现得更早,胜在简单、开箱即用。

平台: Windows 7 到 11,需要管理员权限。 驱动: 同样是 WinDivert(基于 Windows Filtering Platform 截包重定向到用户态)。

它用的花招:

1、TCP 分片——切分首包和长连接里的数据。 2、Host 头大小写混淆——把 Host 改成 hoSt,把 test.com 改成 tEsT.cOm。很多 DPI 的关键词匹配是大小写敏感的,服务器却不在乎,一混淆就漏过去了。 3、头部空格戏法——删掉 Host: 后面的空格,或在请求行 method 和 URI 之间多塞一个空格。 4、假包注入——发低 TTL、错校验和、错序列号的诱饵包。 5、SNI 前分片——专门在 TLS 包的 SNI 值前面切一刀。 6、被动 DPI 拦截——过滤掉那种 IP ID 为 0x0000/0x0001 的重定向包(被动式 DPI 常用它来抢答一个假响应)。

怎么用: 下载 Release,里面有一堆现成的 .cmd 脚本,比如 1_russia_blacklist_dnsredir.cmd2_any_country_dnsredir.cmd。双击运行即可,一个黑窗口常驻后台。命令行直接调 goodbyedpi.exe 也行,带 -1-9 的预设:-1 最保守、兼容性最好,-9 是默认、最激进最快。同样是「哪个能用试出来」。

两者的关系可以这么记:GoodbyeDPI 是 Windows 上的轻量老将,zapret 是全平台的重装瑞士军刀。 zapret 的 desync 手段更丰富、对新型 DPI 更能打,但配置也更劝退。

四、核心问题:为什么它们不能当 VPN?

前面反复强调「它们不改 IP、不建隧道」,这句话就是全部答案的根。把它拆成你标题里那两个具体现象。

现象一:Google 连不上,光靠 DPI 绕过救不回来

有人会问:Google 不就是域名被封吗,我把 SNI 藏好不就行了?

问题在于,对 Google 这种目标,GFW 是三层一起上的:DNS 给你返污染结果,SNI 被 DPI 识别掐断,而且承载 Google 服务的 IP 段本身也被封了。DPI 绕过只解决了中间那一层——就算你把 ClientHello 切得再碎、把域名藏得再好,你的包目的地写着的还是 Google 那个 IP,而去往那个 IP 的路,防火墙在网络层就给你堵死了

打个比方:DPI 绕过像是把信封上的收件人名字用暗语写,让邮局分拣员看不懂你要寄给谁。但如果整条通往那个城市的路都被封了,你名字写得再隐蔽也没用——信根本出不了城。IP 封锁发生在比 DPI 更底层的地方,改包内容对它毫无作用。

这时唯一的办法是「换条路走」:把流量先加密发给一台墙外的服务器(代理/VPN),由它替你去连 Google。你的包在国内这段,目的地是那台自己的服务器(一个没被封的 IP),到了墙外才展开去访问 Google。这就是隧道,是 zapret / GoodbyeDPI 结构上就没有的东西。

所以经验规律是:被封网站里,凡是「域名被墙但 IP 还通」的(早年很多网站属于此类),DPI 绕过就能救活;凡是「IP 都被封死」的(Google、部分被重点关照的服务),就必须上代理。 前者这几年在变少,这也是为什么纯 DPI 绕过越来越只能当辅助。

现象二:换不来一个能用 Claude 的身份

这是另一个方向的问题,甚至更根本。

Claude、以及很多受限的 App / 服务,是在它们自己那一侧拒绝中国 IP 的——这叫地理封锁(geo-blocking),是服务商的合规选择,跟 GFW 无关。它们看到请求来自一个中国 IP,直接不接客。

而 zapret / GoodbyeDPI 完整保留你的真实中国 IP 不变。它们做的只是把出境的包改个形状骗过 GFW,你在对面服务器眼里仍然是一个原原本本的中国 IP。于是就算你靠 DPI 绕过「连上了」Claude 的服务器,Claude 一看来源国家,照样把你挡在门外。

VPN 能解决这个,恰恰是因为它做了 DPI 绕过工具不做的那件事:让你的流量从墙外某台机器「出口」,对面看到的是那台机器的外国 IP。你借用了别人的身份,所以能进。

一张表收尾

zapret / GoodbyeDPIVPN / 代理
本质规避——把直连的包改形状骗过 DPI隧道——加密转发,从别处出口
你的包发往哪还是目标的真实 IP(直连)先发给自己的墙外服务器
对面看到的来源 IP你的真实中国 IP墙外服务器的外国 IP
能破 DNS 污染否(需另配加密 DNS)
能破 SNI/DPI 阻断能,这是它的强项
能破 IP 封锁(如 Google)不能
能换个身份用受限服务(如 Claude)不能
加密你的流量
速度损耗几乎没有(直连)有(绕远路 + 加密开销)

五、那它们到底适合谁

看完上面别觉得这俩没用——它们的定位很清晰:

1、目标是「域名/SNI 被墙,但 IP 还通」的网站,DPI 绕过能以近乎零延迟的代价直连救活它,比挂 VPN 舒服得多(不绕路、不掉速、不折腾服务器)。 2、可以和代理分工:DPI 绕过处理那些「只是被 SNI 阻断」的站,把宝贵的代理流量省给真正需要换 IP 出口的场景。 3、俄罗斯用户对这俩尤其熟——当地的封锁大量是 DPI/SNI 式的(这也是为什么两个项目的作者和默认预设都带浓厚的俄区色彩)。中国的封锁 IP 层用得更狠,所以纯 DPI 绕过在国内的「独立可用面」要窄一些。

一句话记住它们的边界:DPI 绕过改的是「包长什么样」,改不了「包发去哪」和「你是谁」。 后两件事,才是 VPN 存在的理由。

评论

评论加载中……