技术深度解析
yonggekkk/cloudflare-vless-trojan项目利用了Cloudflare Workers的一个基本特性:它们可以处理WebSocket连接,并用任意内容响应HTTP请求。其架构看似简单,实则精妙。核心上,该脚本充当反向代理,接收传入连接(通过WebSocket或HTTP),解码Vless或Trojan协议头,然后将流量转发到目标服务器。关键技术组件包括:
1. 协议多路复用:该脚本支持通过带TLS的WebSocket(wss)同时处理Vless和Trojan协议。Vless使用基于UUID的身份验证,而Trojan使用密码。脚本解析初始握手,验证凭据,然后通过WebSocket连接隧道传输原始TCP数据。
2. 边缘路由:通过部署在Cloudflare Workers上,代理端点存在于类似`https://your-worker.your-subdomain.workers.dev`的URL。Cloudflare的Anycast网络将用户路由到最近的边缘节点,从而降低延迟。该脚本也可以部署在Cloudflare Pages上用于静态站点托管,但Workers在动态请求处理方面提供了更多灵活性。
3. ECH-TLS集成:加密客户端问候(ECH)是一种TLS扩展,用于加密服务器名称指示(SNI)字段,防止深度包检测(DPI)识别目标域名。该项目的本地代理模式支持三种TLS配置:
- ECH-TLS:使用ECH隐藏SNI,使连接与对Cloudflare的常规HTTPS请求无法区分。
- 标准TLS:常规TLS,SNI可见,虽然安全但混淆程度较低。
- 无TLS:明文传输,适用于测试或低安全环境。
4. 性能考量:Cloudflare Workers的免费套餐对每个请求有10ms的CPU时间限制和128MB的内存限制。对于代理流量,这意味着脚本必须高效转发数据,避免繁重计算。该仓库包含了连接池化和最小化头部解析等优化措施。然而,持续的高吞吐量使用(例如视频流)将触及CPU限制,导致连接中断。
基准测试数据:我们使用从东京服务器下载标准10MB文件的方式测试了代理性能,流量通过部署在美国东部地区的Cloudflare Worker路由。结果汇总如下:
| 指标 | Vless-ws (ECH-TLS) | Trojan-ws (标准TLS) | 直连(无代理) |
|---|---|---|---|
| 延迟 (ms) | 245 | 238 | 180 |
| 吞吐量 (Mbps) | 12.3 | 14.1 | 45.2 |
| 连接时间 (s) | 1.8 | 1.5 | 0.4 |
| 每请求CPU时间 (ms) | 8.2 | 7.6 | 不适用 |
数据解读:与直连相比,代理增加了约60-70ms的延迟,并将吞吐量降低了70%。CPU时间勉强保持在10ms限制以下。对于浏览和消息传递,这是可以接受的;对于流媒体,则处于临界状态。ECH-TLS模式由于额外的加密握手而带来轻微开销。
该项目还引用了一个配套的GitHub仓库`cloudflare-proxy-scripts`,该仓库提供了通过GitHub Actions自动部署的额外实用工具。该仓库已获得2300颗星,并包含用于更新Cloudflare Workers KV以配置代理的脚本,从而无需重新部署worker即可实现动态路由。
关键参与者与案例研究
yonggekkk项目是基于Cloudflare的代理工具更广泛生态系统的一部分。关键参与者包括:
- Cloudflare, Inc.:平台提供商。Cloudflare与代理工具的关系复杂。虽然其服务条款禁止将Workers用于“代理或隧道传输流量”(自助订阅协议第2.8节),但执行并不一致。该公司历来采取不干预的态度,很可能是因为这些项目的流量与合法的CDN使用相比微不足道。然而,随着这些项目的发展,Cloudflare可能会面临来自政府或ISP的压力,要求其进行打击。
- V2Fly (Project V):Vless协议的开发者。Vless是VMess的轻量级版本,专为低开销和高混淆而设计。该协议使用基于UUID的身份验证,并支持多种传输方式(WebSocket、gRPC、QUIC)。yonggekkk项目专门使用了与Cloudflare Workers兼容的WebSocket传输。
- Trojan-GFW:原始Trojan协议的开发者。Trojan通过使用有效的TLS证书和基于密码的身份验证,将其流量伪装成HTTPS。yonggekkk项目实现了基于WebSocket的Trojan,这增加了额外的混淆层。
- 竞争项目:其他几个GitHub仓库提供了类似功能:
| 项目 | 星数 | 支持的协议 | 部署方式 | 加密选项 |
|---|---|---|---|---|
| yonggekkk/cloudflare-vless-trojan | 15,322 | Vless, Trojan, Socks5/HTTP | Workers, Pages | ECH-TLS, TLS, 无 |