0-RTT 极速握手 · 免证书部署 · JLS 伪装思想 · Rust 高性能实现
ShadowQUIC 是由开发者 spongebob888 采用 Rust 语言研发的现代轻量级代理协议[1]。 为了在充分享受现代 QUIC 协议单连接多路复用与 0-RTT 极速握手优势的同时, 摆脱传统 TLS 证书申请、域名维护以及标准 Initial 握手包头容易被运营商统一限速审查的弊端, ShadowQUIC 吸收了 JLS 伪装思想,通过对称 AEAD 密文直接混淆伪装 SNI 握手特征, 兼顾了开箱即用的免证书体验与极低的传输协议头开销[2]。
spongebob888 正式发布 ShadowQUIC v0.1.0,以 Rust 实现 0-RTT QUIC 代理与 JLS 伪装。
推出 QuicProxy 移动端适配插件与一键部署脚本,开始融入 Clash-rs 与现代开源代理生态。
作者进一步探索原生 QUIC 栈优化与多路径(Multipath)传输,演进出更模块化的底层架构。
编写口径:ShadowQUIC 是 2025 年问世的前沿新方案,所有演进时间线均以 GitHub 官方 Release 与代码提交记录为准。
在对抗严苛网络审查的过程中,基于 QUIC 的方案通常面临两大分叉: 一条路线(如 TUIC)坚持完全遵循标准 TLS 握手,必须配置合法域名与证书; 另一条路线(如 Hysteria 2)则通过端口跳跃与暴力速率控制对抗 QoS。
ShadowQUIC 探索了第三种平衡点:在 QUIC 上实现类似 Shadowsocks 的轻量免证书体验。 它将预共享密钥机制与 QUIC 的数据报处理结合,握手首包通过 JLS 伪装混入任意伪装 SNI 域名, 使外部审查探针无法轻易断定这是否是一个未授权代理服务[2]。 同时,利用 Rust 原生实现的高并发与极低内存占用,其单进程常驻内存仅需十余兆字节。
ShadowQUIC 属于极客自建与免证书极速代理的前沿探索之作。 它为不想维护公网域名证书、但渴望享受 QUIC 0-RTT 与多路复用吞吐的进阶自建用户提供了全新选择。
ShadowQUIC 完全依赖底层 UDP 传输。在某些对公网 UDP 流量实行恶性 QoS 限速或阻断的宽带环境下, 其实际使用体验可能受到抑制,建议优先在 UDP 质量良好的网络下使用。
以下时间线记录了 ShadowQUIC 自 2025 年发布以来的核心技术迭代,全部依据官方 GitHub 仓库记录整理核验:
在 GitHub 开源首个版本,结合 QUIC 的 0-RTT 极速握手与 JLS 伪装思想,彻底摆脱传统域名证书管理包袱。
GitHub:v0.1.0 ReleaseShadowQUIC 官方提供用 Rust 编写的高性能参考实现; 开源社区的专用客户端(如 QuicProxy)与部分活跃内核开发分支亦已提供适配。
| 软件 / 内核 | 类型 | 支持平台 | 支持级别 | 起始版本 | 发布日期 | 特性说明 |
|---|---|---|---|---|---|---|
| shadowquic (Rust 官方原版) | 核心内核 | Linux / macOS / Windows | 官方参考实现 | v0.1.0+ | 2025.04.21 | 由 spongebob888 开发的 Rust 高性能实现,包含服务端、客户端与一键部署 systemd 服务。 |
| QuicProxy (Android) | 客户端 | Android | 客户端图形界面支持 | v1.0+ | 2025.08.15 | 面向移动端 Android 设备的专用代理前端与独立核心封装,支持图形化导入与分流。 |
| Clash-rs / Mihomo (开发分支) | 核心内核 | 跨平台内核 | 完整原生支持 | 实验性分支集成 | 2025.09.10 | 社区活跃分支实验性跟进支持,可作为高性能 UDP/QUIC 代理出站节点进行规则路由。 |
不想购买域名的极速自建:免除常规 TLS 方案繁琐的域名申请、DNS 解析与证书自动续期负担; 追求首包 0-RTT 极速响应:在网页快速加载与频繁断续短连接场景下,比常规 TCP+TLS 方案拥有更顺滑的首包体验; 资源受限的嵌入式小主机:单 Rust 原生二进制文件部署,无任何动态依赖库,内存与 CPU 开销极低。
运营商 UDP 丢包降速风险:必须提前测试本地运营商对国际 UDP 端口的通畅度,避免因 QoS 导致速度不及预期; 客户端生态正在成长:通用老牌客户端覆盖率尚不及 VLESS 等主流协议,需使用指定或内嵌内核的客户端; 前向保密依赖预共享参数:其认证安全强依赖双方配置的统一密钥,务必设置足够强度的随机密码。
词条事实与技术定义均以 spongebob888 官方设计与 GitHub 仓库记录为准: