OVEROUTESOVEROUTES
首页
阅读须知
  • 总览
  • 选购要点
  • 协议详解
  • 客户端使用
  • 概述
  • IP 与线路
  • 选型指南
  • 选购参考
  • 基础部署
  • 安全加固
  • 概述
  • 3X-UI
  • Xboard
  • 协议总览
  • Shadowsocks
  • Shadowsocks 2022
  • VMess
  • Trojan
  • VLESS
  • Hysteria 2
  • TUIC
  • AnyTLS
  • NaiveProxy
  • Mieru
  • ShadowTLS
  • VLESS-XHTTP
  • WireGuard
  • 传统协议
  • 孤家寡人协议
  • 软件总览
  • Mihomo
  • sing-box
  • Xray
  • V2Fly
  • dae (Linux)
  • Shadowrocket (iOS)
  • QuantumultX (iOS)
  • Stash (iOS/macOS)
  • Loon (iOS)
  • Surge (macOS/iOS)
  • NekoBox (Android)
  • Husi (Android)
  • Exclave (Android)
配置
首页
阅读须知
  • 总览
  • 选购要点
  • 协议详解
  • 客户端使用
  • 概述
  • IP 与线路
  • 选型指南
  • 选购参考
  • 基础部署
  • 安全加固
  • 概述
  • 3X-UI
  • Xboard
  • 协议总览
  • Shadowsocks
  • Shadowsocks 2022
  • VMess
  • Trojan
  • VLESS
  • Hysteria 2
  • TUIC
  • AnyTLS
  • NaiveProxy
  • Mieru
  • ShadowTLS
  • VLESS-XHTTP
  • WireGuard
  • 传统协议
  • 孤家寡人协议
  • 软件总览
  • Mihomo
  • sing-box
  • Xray
  • V2Fly
  • dae (Linux)
  • Shadowrocket (iOS)
  • QuantumultX (iOS)
  • Stash (iOS/macOS)
  • Loon (iOS)
  • Surge (macOS/iOS)
  • NekoBox (Android)
  • Husi (Android)
  • Exclave (Android)
配置
  • 主流序列

    • 代理协议总览
    • Shadowsocks
    • Shadowsocks 2022
    • VMess
    • Trojan
    • VLESS
    • Hysteria 2
  • 新生序列

    • TUIC
    • AnyTLS
  • 小众序列

    • NaiveProxy
    • Mieru
    • SS-ShadowTLS
    • VLESS-XHTTP
  • 传统与其他

    • WireGuard
    • 传统协议
    • 孤家寡人协议

TUIC

TUIC(Tiny UDP Internet Connections)是一种基于 QUIC 协议的代理协议,于 2022 年 3 月由开发者 @EAimTY 发布。它与 Hysteria 2 同属"QUIC 系"代理协议,但在设计哲学上有所不同:TUIC 更注重协议的标准化和对网络资源的公平使用,而不是像 Hysteria 2 那样采用激进的带宽占用策略。

背景与版本

TUIC 目前有两个主要版本:

版本状态说明
TUIC v3已废弃最初版本,存在协议设计缺陷,已不建议使用
TUIC v5当前推荐完全重写,修复了 v3 的安全问题,协议设计更加成熟

关于旧版本

如果你在使用 TUIC v3 或服务端/客户端未明确标注版本,请尽快迁移到 TUIC v5。v3 存在已知的安全漏洞,社区已停止维护。

核心特性

基于标准 QUIC

与 Hysteria 2 类似,TUIC v5 构建在标准 QUIC 协议之上,流量从外观上看与 HTTP/3 流量高度相似。TUIC 不对底层 QUIC 数据包进行额外的混淆,而是直接利用 QUIC 本身的加密(TLS 1.3)和多路复用能力。

这意味着 TUIC 的流量特征与正常的 QUIC/HTTP/3 应用(如 YouTube、Google 服务)流量在统计特征上十分接近,具备一定的天然隐蔽性。

0-RTT 连接复用

TUIC 利用 QUIC 的 0-RTT 特性,在已建立连接的基础上可以实现零往返时间的请求复用:

第一次连接:
客户端 --[完整握手]--> 服务端(1-RTT)

后续连接复用:
客户端 --[0-RTT 恢复]--> 服务端(0-RTT,几乎无握手延迟)

这对于需要频繁建立新连接的浏览场景(如打开大量网页标签)尤为有利,能够显著减少连接建立的延迟开销。

UDP over QUIC 原生支持

TUIC 原生支持 UDP 流量的透明转发,这是许多 TCP 代理协议不具备的能力。UDP 数据通过 QUIC 的 Datagram 特性传输,可以用于游戏加速、DNS 查询等 UDP 场景。

标准拥塞控制

与 Hysteria 2 的 Brutal 算法不同,TUIC 使用标准的 QUIC 拥塞控制算法(如 BBR 或 CUBIC)。这意味着:

  • TUIC 会主动避开网络拥塞,不会强行占用带宽
  • 在高丢包线路上,TUIC 的表现不如 Hysteria 2 激进
  • 对其他网络用户更加"友好",不会因为抢占带宽而触发异常告警
  • 在网络条件较好的线路上,与 Hysteria 2 的性能差距不大

UUID + 密码双重认证

TUIC v5 使用 UUID 和密码的组合进行身份认证,这与 VMess/VLESS 的认证方式类似,但运行在 QUIC 层之上。

工作原理

连接建立流程

客户端
  |
  | 1. 向服务端发起 QUIC 握手(UDP,含 TLS 1.3)
  | 2. 在 QUIC 连接上发送 TUIC 认证信息(UUID + 密码)
  | 3. 认证成功后,通过 QUIC Stream 发送代理请求
  v
服务端
  |
  | 4. 验证 UUID 和密码
  | 5. 解析代理目标地址
  | 6. 建立到目标的连接
  v
目标服务器

多路复用架构

TUIC 在单个 QUIC 连接上通过多条独立的 Stream 并发处理多个代理请求:

QUIC 连接(单一 UDP 连接)
  ├── Stream 1 → 请求 A(Google)
  ├── Stream 2 → 请求 B(GitHub)
  ├── Stream 3 → 请求 C(YouTube)
  └── Datagram  → UDP 请求 D(DNS)

每条 Stream 的丢包和重传相互独立,不会产生 TCP 时代的"队头阻塞"问题。

与 Hysteria 2 的详细对比

TUIC 和 Hysteria 2 是目前 QUIC 系协议中最主要的两个选择,经常被放在一起比较:

对比维度TUIC v5Hysteria 2
拥塞控制标准(BBR/CUBIC)Brutal(激进主动)
高丢包性能较强极强
带宽占用行为自适应,友好主动占用,可能触发告警
0-RTT 支持是是
UDP 代理原生支持原生支持
端口跳跃不支持支持
流量伪装标准 QUIC/TLS 1.3HTTP/3 + 可选混淆
需要域名是是
需要证书是是
配置复杂度低低
客户端支持较广更广
主动维护状态活跃活跃

总结:

  • 如果你的线路丢包率较高(>3%),或者需要端口跳跃功能,优先选择 Hysteria 2
  • 如果你的线路条件尚可,或者担心 Brutal 算法被机场/运营商检测,TUIC 是更保守但仍然出色的选择
  • 两者并不互斥,可以同时部署,根据网络状况切换

与 TCP 协议的对比

对比维度TUIC v5VLESS + Reality
传输层QUIC(UDP)TCP
需要域名是否
高丢包性能优秀一般
UDP 封锁风险有无
抗 TLS 指纹检测较强(标准 QUIC)极强(Reality)
配置复杂度低中

优缺点

优点缺点
QUIC 传输,在高延迟/高丢包线路上表现好依赖 UDP,在 UDP 封锁的网络中不可用
0-RTT 连接复用,多请求场景延迟低需要域名和有效的 TLS 证书
标准拥塞控制,对线路友好,不易触发异常告警在高丢包场景下不如 Hysteria 2 的 Brutal 激进
原生 UDP 代理支持不支持端口跳跃
配置简单,单一配置文件客户端支持不如 Shadowsocks 广泛
TLS 1.3 内置加密,安全性好—
多路复用,无队头阻塞—

适用场景

推荐使用 TUIC 的场景:

  • 线路丢包率在 1–5% 之间,希望比 TCP 方案更稳定
  • 移动网络(4G/5G),QUIC 的连接迁移特性在网络切换时表现优秀
  • 不希望 Brutal 算法占用过多带宽,对线路流量有要求
  • 需要 UDP 流量透明转发(如 DNS-over-QUIC、游戏 UDP)
  • 作为 VLESS + Reality 的补充,提供 UDP 场景下的更好体验

不推荐单独依赖 TUIC 的场景:

  • 企业/校园网络可能封锁 UDP 出站流量
  • 线路丢包率极高(>10%),此时 Brutal 算法的 Hysteria 2 可能更合适
  • 需要在服务器无域名的情况下部署(考虑 VLESS + Reality)

服务端部署参考

前置条件

  • 一台公网 VPS,已开放 UDP 443 端口(或其他目标端口)
  • 一个指向服务器 IP 的域名
  • 有效的 TLS 证书

安装 TUIC 服务端

从 GitHub Releases 下载预编译二进制文件:

# 查看最新版本,替换下面的版本号
wget https://github.com/EAimTY/tuic/releases/latest/download/tuic-server-1.x.x-x86_64-unknown-linux-musl
chmod +x tuic-server-*
mv tuic-server-* /usr/local/bin/tuic-server

申请 TLS 证书

# 使用 acme.sh 申请 Let's Encrypt 证书
curl https://get.acme.sh | sh
~/.acme.sh/acme.sh --issue -d your.domain.com --webroot /var/www/html
~/.acme.sh/acme.sh --install-cert -d your.domain.com \
  --cert-file /etc/tuic/cert.crt \
  --key-file /etc/tuic/private.key \
  --reloadcmd "systemctl restart tuic-server"

生成 UUID

# Linux 系统工具
cat /proc/sys/kernel/random/uuid

# 或者使用 Python
python3 -c "import uuid; print(uuid.uuid4())"

服务端配置文件(/etc/tuic/config.json)

{
    "server": "[::]:443",
    "users": {
        "your-uuid-here": "your-strong-password"
    },
    "certificate": "/etc/tuic/cert.crt",
    "private_key": "/etc/tuic/private.key",
    "congestion_control": "bbr",
    "alpn": ["h3"],
    "log_level": "warn"
}

配置字段说明:

字段说明
server监听地址和端口,[::] 表示同时监听 IPv4 和 IPv6
users用户列表,键为 UUID,值为密码,支持多用户
certificate / private_keyTLS 证书和私钥路径
congestion_control拥塞控制算法,推荐 bbr,也可以选 cubic 或 new_reno
alpnQUIC 的 ALPN 标识,h3 表示 HTTP/3,用于流量伪装

多用户配置示例:

{
    "server": "[::]:443",
    "users": {
        "uuid-for-user1": "password-for-user1",
        "uuid-for-user2": "password-for-user2",
        "uuid-for-user3": "password-for-user3"
    },
    "certificate": "/etc/tuic/cert.crt",
    "private_key": "/etc/tuic/private.key",
    "congestion_control": "bbr",
    "alpn": ["h3"],
    "log_level": "warn"
}

Systemd 服务单元

[Unit]
Description=TUIC Server
After=network.target

[Service]
Type=simple
User=nobody
ExecStart=/usr/local/bin/tuic-server -c /etc/tuic/config.json
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

启动服务

systemctl daemon-reload
systemctl enable tuic-server
systemctl start tuic-server
systemctl status tuic-server

# 查看日志
journalctl -u tuic-server -f

开放防火墙规则

# 开放 UDP 443 端口
ufw allow 443/udp

客户端配置参考

sing-box 客户端配置

{
  "type": "tuic",
  "tag": "tuic-node",
  "server": "your.domain.com",
  "server_port": 443,
  "uuid": "your-uuid-here",
  "password": "your-strong-password",
  "congestion_control": "bbr",
  "tls": {
    "enabled": true,
    "server_name": "your.domain.com",
    "alpn": ["h3"]
  }
}

Mihomo 客户端配置

proxies:
  - name: "tuic-node"
    type: tuic
    server: your.domain.com
    port: 443
    uuid: your-uuid-here
    password: your-strong-password
    alpn:
      - h3
    congestion-controller: bbr
    sni: your.domain.com
    skip-cert-verify: false

关于 skip-cert-verify

不要将 skip-cert-verify 设置为 true。跳过证书验证会使 TLS 的安全保护形同虚设,中间人攻击将变得轻而易举。如果连接提示证书错误,应排查域名和证书的配置问题,而不是直接跳过验证。

客户端支持

平台客户端支持状态
Windows / macOS / LinuxMihomo支持
Windows / macOS / Linuxsing-box / v2rayN支持
iOSShadowrocket支持
iOSStash支持
iOSLoon支持(需较新版本)
iOSSurge支持
iOSQuantumult X不支持
AndroidNekoBox支持
AndroidHusi支持
AndroidExclave支持
Linuxdae支持
macOSStash支持

常见问题

Q:TUIC v5 和 v3 能互通吗?

不能。TUIC v3 和 v5 是完全不兼容的两个协议版本,客户端和服务端必须使用同一版本。目前应全面迁移到 v5。

Q:连接提示认证失败怎么排查?

依次检查以下几点:

  1. UUID 格式是否正确(标准的 8-4-4-4-12 格式)
  2. 密码是否与服务端配置一致
  3. 服务端配置文件中的 UUID 和密码键值对是否对应正确
  4. 服务端是否已重启使配置生效

Q:congestion_control 用 bbr 还是 cubic?

推荐使用 bbr。BBR 是 Google 开发的现代拥塞控制算法,在高延迟链路上的表现优于传统的 CUBIC 算法。不过在 Linux 内核中使用 BBR 需要系统支持(Linux 4.9+),通常现代 VPS 系统均已满足。

Q:TUIC 是否可以在没有域名的情况下使用自签名证书?

技术上可以,但需要在客户端关闭证书验证(skip-cert-verify: true)。这会降低安全性,不推荐在生产环境中使用。如果你没有域名,建议改用 VLESS + Reality 方案。

Q:TUIC 是否支持 UDP 全锥型 NAT 穿透?

TUIC 的 UDP 代理基于 QUIC Datagram,可以用于 UDP 流量转发,但对于需要完整 NAT 穿透(如 P2P 游戏)的场景,效果因具体应用而异。简单的 UDP 查询(如 DNS)是完全支持的。

延伸阅读

  • Hysteria 2 协议 — 同为 QUIC 系协议,激进拥塞控制,高丢包线路首选
  • VLESS 协议 — TCP 方向的首选现代协议,无需域名的 Reality 方案
  • 代理协议总览 — 回到协议总览页面
最近更新: 2026/4/8 16:01
Next
AnyTLS