解释 Watt Toolkit 的审查规避
介绍
Watt Tookit 是一个使用 C# 编写的自由软件,原名 Steam++ ,辅助 Steam 主程序的功能就不再详细描述了,关键在于由于你国特色互不联网的发展,这类工具不得不演变出所谓“加速”功能,即 GFW 审查规避,一开始只是对 Steam 商店、社区,后来又加入了 Twitch 、Origin,再后来甚至和游戏没啥相关的 Pixiv 、Discord 和 GitHub 都有了。
自我审查
那么最近发生了什么?
该软件最近移除了对 Pixiv 和 Discord 的“加速”支持。打开 issue 区一看:
- 所以官方把Pixiv加速删了?
- 加回pixiv的加速吧
- P站和discord链接怎么不见了
- 🧐[Question] pixiv加速选项消失
- 🧐[Question] 11月24日星期五,怎么突然访问不了pixiv呢
- 🧐[Question] 把discord的加速删了吗?
那么他是怎么删的呢?从评论来看安装旧版本也是找不回来的,而且它也已经半年没发布新版本了。
使用 Proxyman 拦截获知这个配置是远程获取的,获取 JSON 格式的配置的 cURL 请求如下:
1 | echo -n "BQAAGYcBAAAA8u77L3Du20gAAAAAAAAAACAAAAAQAAAAAA==" | base64 -d | \ |
回复是这样:
解码
基于猜测,我对这份配置中的一些设置项做一些解释:
MatchDomainNames
: 用于匹配发往什么 域名/URL 的请求需要处理。ForwardDomainNames
: 该设置下的域名被作为实际连接到的 IP 。这些 IP 必须能够提供对应域名的内容,比如它可以是 SNIProxy 。IgnoreSSLCertVerification
: 全部都是 true 的,即不进行 SSL 验证。FakeServerName
: 发送时设定的 SNI 扩展中的 ServerName ,与上一项协同使用就实现了域前置。在很多行中都是空的。ProxyType
: 大多数值为0,少数为1。暂时不清楚是干什么的。
其中,MatchDomainNames
许多是以 rmbgame.net
结尾的域名,我猜测该域名由运营者控制。还有一些以 steam302.xyz
结尾,这是偷的另一个工具 steamcommunity 302
的服务器吧。
对实现的评论
总而言之,该软件:
对于 DNS 污染,将连接所用的 IP 指定到由运营者自身控制的域名上面,再通过运营者自身的 DNS 设定,优选出未被审查的 IP 供连接。这种方法优点是切换和控制方便,缺点是不够自由,需要依赖长久维护的私有域名。
对于深度包检测,剔除或修改 TLS 连接中的 Server Name Indication 扩展,使审查者无法分类流量。这是十分流行且有效的方法,缺点是依赖于目标网站的向后兼容性,比如 Arkoselabs 使用了 Cloudflare ,不接受 无/修改 SNI 就不行了 (#2208) 。
对于 IP 封锁,因为其用于处理 DNS 污染方法的特性,这条已经顺带解决了。
其他评论
Watt Toolkit 本身不算正经的审查规避软件,“网络加速”只是其许多功能之一。看得出来其目标用户只是中国游戏玩家,对政治不感兴趣的那些,而非活动人士,或许正因为其“非政治性”才吸引了许多用户,以及规避了赵弹打击。这让我想起了 FastGithub,从原理和风格都很相似。
刚才发现后者已经删库了,记得他还在自述文件中针对你国流行的用于处罚翻墙的《国际联网暂行规定》作出解释,当时只觉得好笑,现在我的评价是今后都得拉清单:不管是传统的 VPN 或者代理,还是域前置或者 desync ,只要让中国人访问到了被中共封锁的网站,“都是违法行为”。
对该软件用户说的话
该软件能“加速”某网站与否全部取决于运营者远程下发的配置文件,这是不自由,也是不方便的。对与目前其移除了对 pixiv 和 Discord 的配置的现状,我建议您迁移到正经的审查规避软件。比如:
- Accesser
- GoodbyeDPI
- TCPioneer
他们的配置文件都在本地,可以自行设定,对规避原理的介绍也更加明了。