TUIC 项目立项并发布 v0.1 原型
EAimTY 在 GitHub 开源 TUIC 原型,探讨使用 Rust 语言及 quinn 库,基于原生 QUIC 协议构建高并发极低延迟的现代代理。
标准 QUIC 优雅实现 · 0-RTT 极速建连 · 原生单连接多路复用
由 EAimTY 采用 Rust 语言深度打磨设计[1],完全拥抱 IETF RFC 9000 标准 QUIC 架构[2]。 通过会话票据实现 0-RTT 极速握手恢复,在单条 QUIC 连接内无损并发多路数据流, 并使用 RFC 9221 DATAGRAM 扩展无重传开销转发 UDP[3]。 坚持使用标准 BBR / Cubic 拥塞控制,资源开销极小且网络行为高度规范。
EAimTY 社区公开 Delightful TUIC (v5) 协议规范设计,彻底摒弃旧版历史包袱,重新定义基于 QUIC 数据流与数据报的原生帧。
官方发布 tuic-server / tuic-client v1.0.0,正式确立 TUIC v5 成为生态标准规范版本。
sing-box 与 Mihomo 先后原生内置 TUIC v5 协议栈,全面被主流客户端纳入默认支持序列。
编写口径:TUIC v5(Delightful TUIC)完全打破了早期 v3/v4 的草案模型,所有时间节点均以官方 GitHub 提交及 Releases 记录核验为准。
传统翻墙协议多构建在 TCP 之上。由于 TCP 本身的 3 次握手以及 TLS 握手,每一次新建连接通常需要 2 到 3 个 RTT(往返时延), 在跨洋数百毫秒的延迟下,网页加载首包常出现明显顿挫感。而如果在应用层自行模拟多路复用,一旦底层 TCP 丢包,所有上层复用流均会因队头阻塞(Head-of-Line Blocking)而陷入卡顿。
TUIC v5 选择全面基于标准 QUIC 协议构建代理。QUIC 将传输与加密握手深度融合,在客户端拥有会话缓存时支持0-RTT 极速建连; 单条 QUIC 连接内每个代理请求独享独立的 Stream,任一数据流丢包完全不会阻塞其他流, 并且配合针对 UDP 数据报的 Datagram 帧扩展,实现了高效的 TCP + UDP 统一转发体系。
TUIC v5 是现代翻墙协议中最优雅、资源消耗最低的 QUIC 原生方案。 它遵守标准拥塞控制(BBR),不进行恶意的冗余泛洪,适合在网络质量中等偏上、服务器配置适中、追求首包低延迟与高并发的场景。
Hysteria 2 使用 Brutal 拥塞控制,丢包时强行超频发包,牺牲网络公平性换取恶劣弱网速度; 而 TUIC v5 遵循标准 BBR,更适合带宽充足但注重握手毫秒级响应、更低服务器负载的优质或专线网络。
所有节点均依据 GitHub 官方 Releases 发行注记与上游代码提交核验:
EAimTY 在 GitHub 开源 TUIC 原型,探讨使用 Rust 语言及 quinn 库,基于原生 QUIC 协议构建高并发极低延迟的现代代理。
支持通过 QUIC DATAGRAM 扩展帧直接转发 UDP 数据报,消除了以往 UDP over TCP 带来的额外重传开销。
优化多流状态机控制,但在协议定义与通用性方面仍受限于早期设计,促使作者酝酿全面颠覆性的 v5 规范。
EAimTY 彻底推翻旧版架构,定义全新的基于 QUIC 标准 ALPN 与轻量级二进制帧的规范,实现真正的 0-RTT 握手与极简认证。
Delightful TUIC (v5) 官方参考实现首个稳定版本发布!宣告 TUIC v5 协议正式定型,具备高性能多路复用与抗弱网能力。
sing-box 1.3.0 正式集成 TUIC v5 入站与出站实现,使普通用户能直接通过配置 JSON 畅享 QUIC 0-RTT 加速。
主流客户端内核全面覆盖 TUIC v5,支持与普通节点共同参与自动测速优选和分组切换。
强化未授权连接的处理逻辑,防止通过异常握手推断服务器部署了代理服务。
针对国内运营商对 UDP 长连接的频繁回收机制,引入自适应心跳包频率调节算法,在省电与防掉线间取得完美平衡。
通过底层 Rust quinn 库优化 UDP Generic Segmentation Offload,降低服务器高并发时的 CPU 占用与上下文切换。
完善客户端在 Wi-Fi 与蜂窝数据网切换时的连接迁移流程,实现视频与通话过程中网络切换不中断。
与追求激进发包的 Hysteria 2 并列为现代基于 QUIC 的两大主力协议,被广泛部署于个人自建与高质量专线场景。
TUIC v5 已被各大跨平台内核广泛采纳,成为现代主流梯队的一等公民:
| 软件 / 内核 | 类型 | 支持平台 | 支持级别 | 起始版本 | 发布日期 | 特性支持与备注 |
|---|---|---|---|---|---|---|
| TUIC 官方实现 (Rust) | 核心内核 | Linux / macOS / Windows / FreeBSD | 官方参考实现 | v1.0.0 | 2023.04.02 | EAimTY 官方使用 Rust 编写的高性能客户端与服务端守护进程,资源占用极低。 |
| sing-box | 核心内核 | 全平台 (Linux / Android / iOS / macOS / Windows) | 完整原生支持 | v1.3.0 | 2023.05.20 | SagerNet 团队原生接入 TUIC v5 入站与出站协议栈,支持 0-RTT 握手与并发连接池管理。 |
| Mihomo (Clash.Meta) | 核心内核 | 全平台 (Linux / Android / macOS / Windows) | 完整原生支持 | v1.15.0 | 2023.07.12 | Meta 核心原生支持 TUIC v5 节点解析、拥塞控制算法选择与分流规则链。 |
| Shadowrocket | 客户端 | iOS / iPadOS | 出站客户端支持 | v2.2.25 | 2023.06.10 | iOS 端极速跟进支持 TUIC v5 协议订阅,针对移动网络漫游切换提供优化。 |
| Loon | 客户端 | iOS / macOS | 出站客户端支持 | v3.0.0 | 2023.07.01 | 支持通过图形界面直观配置 TUIC v5 节点及证书验证参数。 |
| Surge | 客户端 | macOS / iOS | 出站客户端支持 | v5.4.0 | 2023.11.02 | 原生支持 TUIC v5 出站代理协议,配合 Surge 强大的网络调试能力提供极致体验。 |
最推荐使用场景:
不适用或受限场景:
1. 证书与域名考量:TUIC v5 服务端需要配置标准的 TLS 证书(建议通过 ACME 获取公开权威证书),客户端默认校验证书有效性。
2. 抗 QoS 机制对比:TUIC v5 原生未内置类似 Hysteria 2 的 Salamander 加盐异或混淆与自动多端口跳跃工具, 若在特定省份遇到针对标准 QUIC Initial 报文的丢包限速策略,需要配合自定义 iptables 端口映射或由客户端内核实现端口轮换。
百科词条中所有架构数据、算法定义及发布时间均以官方公开发行物为基准:
包含 TUIC v5 官方参考实现源码、版本发布说明与架构设计文档。
https://github.com/EAimTY/tuicTUIC 所依附的基础传输层协议标准,包含 0-RTT 握手与连接迁移规范。
https://datatracker.ietf.org/doc/html/rfc9000TUIC 用于低开销转发 UDP 数据报的 QUIC 扩展规范。
https://datatracker.ietf.org/doc/html/rfc9221跨平台代理核心对 TUIC v5 的具体配置选项与参数说明。
https://sing-box.sagernet.org/configuration/inbound/tuic/Meta 内核对 TUIC v5 节点的完整支持与分流配置参考。
https://wiki.metacubex.one/config/proxies/tuic/