使用 Clash Relay 避免机场审查
经过这么多年的发展,GFW 防火墙已经非常智能,很多加密协议已经能被精准识别。因此,使用 VPS 自行搭建 SS/V2Ray 节点等方式经常被封,轻则封端口,重则封 IP,被封之后换 IP 不仅耗费精力,也耗费金钱。所以机场开始流行。
然而使用机场并不一定安全。不论是直连机场还是 IEPL/IPLC 中转机场,都存在屏蔽和审计规则,完全不审计的机场极少,比如有些机场屏蔽了某功的网站。尽管我几乎不访问某功的网站,但我也不希望被阉割。审计规则还有一方面的意思就是你的浏览记录会被保存并可能上交给有关部门。有些机场出现的时机很可疑,有理由怀疑它们与审查机构之间存在密切的关联性,甚至就是审查机构开的“蜜罐”机场。出于隐私和安全的原因,如何不被机场审计都是需要考虑的问题。
尽管用了 Clash 很久,我也是上周才知道有 Clash Relay 这个功能。使用 Clash Relay 后,数据走向为:本地 <--> 机场 <--> 自建节点 <--> 目的网站。具体使用方式可参考:利用clash relay将机场线路作为跨境传输层。总结整理一下流程:
- 订阅转换。目的是将现有的机场订阅中的复杂配置改为仅输出为节点列表。若担心节点泄漏,可自行搭建转换节点。这里有一个问题,如果机场的订阅不是以 text/html 类型输出的配置,则大部份转换工具无法转换。比如我用的几家机场,有一家输出的是 text/plain 类型的数据,客户端可以使用,但转换器无法转换。
- 下载并修改配置文件,
- 将修改好的配置文件拖到 Clash for Windows 面板上。尽管 Clash for Windows 看上去是 Windows 版本的,但其实全平台都有,macOS 也可以使用。
添加配置后,根据需要选择 iRimo Private Relay(作者起的名字,可自行更改)就可以使用 Clash Relay 了。Clash Relay 的好处有以下:
- 避免直连自己的 VPS 导致 VPS 端口或 IP 被封。
- 相对于使用 Cloudflare 中转,机场 IEPL/IPLC 中转的线路速度更快。而且不需要配置过于复杂的伪装加密等,用原版的 Shadowsocks-libev 即可,配置简单。
- 流经机场的流量是加密的,避免机场的流量审计。
- 出口 IP 是你 VPS 的固定 IP,不会因为机场的线路变更而不断变化,可缓解部分网站的风控。而且可以进一步在 VPS 上安装 Cloudflare WARP,进一步缓解谷歌验证码或其他风控措施。
- 至于不如直连的速度好,或者不如直接用机场的速度好等问题,因为海外网络之间的优质联通性,带来的速度变化其实无法感知到,我实际测速跑 500 Mbps 是毫无问题的。
在手机上使用 Clash Relay 的话,小火箭比较麻烦,需要一个节点一个节点的设置,不方便。最近新出的 Stash App 完全支持 Clash 的配置文件,所以配置起来比较方便。这需要将修改好的配置,上传到自己的 Web 服务器,然后在 Stash App 中添加订阅。为了不被搜索引擎或其他什么内容抓取到,订阅的 URL 可以随机生成一个比较长(比如 64 位)的随机字符串。Surge 据说也支持,但是价格太贵,我没有尝试。配置上传到自己服务器后,Clash X Pro 也可以使用「添加托管配置」的方式添加并使用 Clash Relay 模式。
很好的教程。
纠正两点:
1. 实测clash meta 和 stash 等客户端都可以直接从clash订阅中解析出nodelist,省去了转换的必要。目前只发现openclash不能支持,需要转换。
2. 对stash来说,配置文件其实不需要上传到服务器。stash的配置文件在iOS的文件里都能看到:根节点/stash。如果stash里设置了iCloud同步,那就是文件-iCloud-stash。只要把配置文件放进这个目录,stash自动会读取到。
安卓可以使用anxray,内置链式代理功能,把机场和自建节点加进去就好了。