最后更新于:2026年7月

TUIC协议
TUIC v5:基于 QUIC 的高性能代理协议,弱网环境下的速度之王

TUIC 到底是什么?和 Hysteria2 又有什么区别? 很多人听说过这两个协议都是基于 QUIC 的,但搞不清楚该用哪个。简单回答:如果你追求的是稳定低延迟 + 抗检测,选 TUIC;如果你追求的是极限速度 + 大带宽,选 Hysteria2。

本文不是对比文(对比可以去看 Hysteria2/TUIC 对比),而是TUIC 的专属完全指南——从协议原理到一键搭建,从客户端配置到性能优化,一步到位带你跑通 TUIC v5。

【前置知识】 TUIC 基于 QUIC(UDP),要求服务器开放 UDP 端口。如果你的服务器或网络环境对 UDP 有限制,建议先确认 UDP 是否可用。


一、TUIC 协议核心原理

1.1 什么是 TUIC?

TUIC(The Ultimate Internet Connection)是一个基于 QUIC(Quick UDP Internet Connections) 的代理协议。它的设计哲学很简单:

1.2 TUIC v5 相比 v4 的升级

2024 年发布的 TUIC v5 是一次重大重构:

特性 TUIC v4 TUIC v5
协议版本 旧版,已停止维护 当前主流版本
多路复用 单连接单流 单连接多流(mux)
0-RTT 支持 支持,更稳定
心跳机制 简单心跳 智能心跳,更省电
服务端 tuic-server tuic-server(新版)
客户端支持 较少 Sing-Box、Clash.Meta、mihomo 等主流客户端

重要:本文只讲 TUIC v5,v4 已废弃不再维护。

1.3 TUIC vs Hysteria2:该怎么选?

虽然本文不讲 Hysteria2 搭建,但选协议时很多人会纠结。一句话总结:

场景 推荐协议 原因
弱网/高丢包 TUIC QUIC 拥塞控制更温和,不暴力抢带宽
带宽充足/追求极速 Hysteria2 Brutal 拥塞控制可以榨干带宽
延迟敏感(游戏) TUIC 更稳定的延迟表现
大文件下载 Hysteria2 带宽利用率更高
抗检测 TUIC 流量特征更隐蔽
服务器资源紧张 TUIC 服务端资源占用更低

我自己的建议:如果你只有一台服务器,搭 TUIC。如果有多台,一台 TUIC 日常使用,一台 Hysteria2 下载大文件。


二、服务端搭建:一键安装脚本

2.1 环境要求

2.2 一键安装脚本

TUIC 官方没有提供一键脚本,但社区维护的安装脚本已经非常成熟。推荐使用以下方案:

方案 A:使用 sing-box 内置 TUIC(推荐,最简单)

sing-box 从 v1.5.0 开始原生支持 TUIC inbound,配置简单,维护方便。

BASH
# 安装 sing-box
curl -fsSL https://sing-box.app/deb-install.sh | bash

# 创建配置目录
mkdir -p /etc/sing-box

创建配置文件 /etc/sing-box/config.json

JSON
{
  "log": {
    "level": "info",
    "timestamp": true
  },
  "inbounds": [
    {
      "type": "tuic",
      "tag": "tuic-in",
      "listen": "::",
      "listen_port": 443,
      "users": [
        {
          "name": "user1",
          "uuid": "你的UUID",
          "password": "你的密码"
        }
      ],
      "congestion_control": "bbr",
      "tls": {
        "enabled": true,
        "server_name": "你的域名",
        "certificate_path": "/path/to/fullchain.pem",
        "key_path": "/path/to/privkey.pem"
      }
    }
  ],
  "outbounds": [
    {
      "type": "direct",
      "tag": "direct"
    }
  ]
}

生成 UUID:

BASH
uuidgen
# 或
sing-box generate uuid

生成密码(建议 16 位以上随机字符串):

BASH
openssl rand -base64 16

启动服务:

BASH
systemctl enable sing-box
systemctl start sing-box
systemctl status sing-box

2.3 使用独立 TUIC 服务端(传统方案)

如果你不想用 sing-box,可以用官方的 tuic-server:

BASH
# 下载最新版
wget https://github.com/EAimTY/tuic/releases/latest/download/tuic-server-x86_64-unknown-linux-gnu

# 放到 PATH
chmod +x tuic-server-x86_64-unknown-linux-gnu
mv tuic-server-x86_64-unknown-linux-gnu /usr/local/bin/tuic-server

# 创建配置目录
mkdir -p /etc/tuic

创建配置文件 /etc/tuic/config.json

JSON
{
  "server": "[::]:443",
  "users": {
    "你的UUID": "你的密码"
  },
  "certificate": "/path/to/fullchain.pem",
  "private_key": "/path/to/privkey.pem",
  "congestion_control": "bbr",
  "alpn": ["h3"],
  "udp_relay_ipv6": true,
  "zero_rtt_handshake": true,
  "auth_timeout": "3s",
  "task_negotiation_timeout": "3s",
  "max_idle_time": "10s",
  "max_external_packet_size": 1500,
  "send_window": 16777216,
  "receive_window": 8388608,
  "gc_interval": "3s",
  "gc_lifetime": "15s"
}

创建 systemd 服务 /etc/systemd/system/tuic.service

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

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

[Install]
WantedBy=multi-user.target

启动:

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

2.4 证书获取

TUIC 强制要求 TLS 证书。最简单的方式是用 acme.sh 申请 Let’s Encrypt 证书:

BASH
# 安装 acme.sh
curl https://get.acme.sh | sh
source ~/.bashrc

# 申请证书(假设你的域名是 tuic.example.com)
acme.sh --issue -d tuic.example.com --standalone

# 安装证书到指定路径
acme.sh --install-cert -d tuic.example.com \
  --key-file /etc/tuic/privkey.pem \
  --fullchain-file /etc/tuic/fullchain.pem

# 设置自动续期
acme.sh --upgrade --auto-upgrade

【注意】 申请证书前确保域名已解析到服务器 IP,且 80 端口未被占用。


三、服务端优化配置

3.1 拥塞控制算法选择

TUIC 支持多种拥塞控制算法:

算法 特点 推荐场景
bbr Google 开发,温和公平 ⭐ 通用场景,最推荐
cubic Linux 默认,保守稳定 带宽充足、网络稳定
new_reno 最基础,反应慢 不推荐
JSON
"congestion_control": "bbr"

3.2 窗口大小调优

窗口大小影响 QUIC 的吞吐量。根据你的服务器带宽调整:

服务器带宽 send_window receive_window
100Mbps 4MB 2MB
500Mbps 8MB 4MB
1Gbps 16MB 8MB
10Gbps 32MB+ 16MB+
JSON
"send_window": 16777216,
"receive_window": 8388608

3.3 0-RTT 配置

0-RTT 可以在重复连接时省去握手时间,但有一定安全风险(重放攻击)。

JSON
"zero_rtt_handshake": true

安全建议: 0-RTT 对代理场景的风险很低(没有写操作),开启即可。如果是金融类应用,建议关闭。

3.4 内核参数优化

提升 UDP 性能:

BASH
# 编辑 /etc/sysctl.conf
echo '
# UDP 缓冲区优化
net.core.rmem_max = 134217728
net.core.wmem_max = 134217728
net.ipv4.udp_rmem_min = 65536
net.ipv4.udp_wmem_min = 65536

# 连接跟踪优化
net.netfilter.nf_conntrack_udp_timeout = 60
net.netfilter.nf_conntrack_udp_timeout_stream = 120
' >> /etc/sysctl.conf

sysctl -p

3.5 防火墙放行

BASH
# UFW
ufw allow 443/udp

# iptables
iptables -A INPUT -p udp --dport 443 -j ACCEPT

# firewalld
firewall-cmd --permanent --add-port=443/udp
firewall-cmd --reload

四、客户端配置

4.1 Sing-Box 客户端(全平台推荐)

Sing-Box 是目前对 TUIC 支持最好的客户端,全平台通用。

配置文件示例:

JSON
{
  "log": {
    "level": "warn"
  },
  "dns": {
    "servers": [
      {
        "tag": "local",
        "address": "223.5.5.5",
        "detour": "direct"
      },
      {
        "tag": "remote",
        "address": "https://1.1.1.1/dns-query",
        "detour": "proxy"
      }
    ],
    "rules": [
      {
        "rule_set": "geoip-cn",
        "server": "local"
      }
    ]
  },
  "inbounds": [
    {
      "type": "mixed",
      "tag": "mixed-in",
      "listen": "127.0.0.1",
      "listen_port": 7890
    }
  ],
  "outbounds": [
    {
      "type": "tuic",
      "tag": "proxy",
      "server": "你的域名",
      "server_port": 443,
      "uuid": "你的UUID",
      "password": "你的密码",
      "congestion_control": "bbr",
      "udp_relay_mode": "native",
      "zero_rtt_handshake": true,
      "heartbeat": "10s",
      "tls": {
        "enabled": true,
        "server_name": "你的域名",
        "alpn": ["h3"]
      }
    },
    {
      "type": "direct",
      "tag": "direct"
    },
    {
      "type": "block",
      "tag": "block"
    }
  ],
  "route": {
    "rules": [
      {
        "rule_set": "geoip-cn",
        "outbound": "direct"
      },
      {
        "rule_set": "geosite-cn",
        "outbound": "direct"
      }
    ],
    "final": "proxy",
    "auto_detect_interface": true
  }
}

关键参数说明:

参数 作用 推荐值
congestion_control 拥塞控制算法 与服务端保持一致,bbr
udp_relay_mode UDP 转发模式 native(原生转发)
zero_rtt_handshake 0-RTT 握手 true
heartbeat 心跳间隔 10s,保持连接活跃

4.2 Clash.Meta / Mihomo 配置

Clash.Meta(现 Mihomo)也支持 TUIC:

YAML
proxies:
  - name: "🇺🇸 TUIC节点"
    type: tuic
    server: 你的域名
    port: 443
    uuid: 你的UUID
    password: 你的密码
    ip: 你的域名
    heartbeat-interval: 10000
    alpn: [h3]
    disable-sni: false
    reduce-rtt: true
    udp-relay-mode: native
    congestion-controller: bbr
    max-udp-relay-packet-size: 1500
    fast-open: true
    skip-cert-verify: false
    sni: 你的域名

4.3 Shadowrocket(iOS)配置

Shadowrocket 从 v2.2.30+ 支持 TUIC:

  1. 点击右上角 + 添加节点
  2. 类型选择 TUIC
  3. 填入服务器地址、端口、UUID、密码
  4. Congestion Control 选择 bbr
  5. 开启 UDP Forward
  6. ALPN 填 h3

4.4 NekoBox / NekoRay(Android/Windows)

NekoBox 系列对 TUIC 支持很好:

  1. 添加配置 → 选择 TUIC
  2. 填入服务器信息
  3. Congestion Control 选 bbr
  4. UDP Relay Mode 选 native
  5. 保存并测试

五、性能实测与对比

5.1 测试环境

5.2 速度测试

协议 下载速度 上传速度 延迟 抖动
TUIC v5 (bbr) 380 Mbps 120 Mbps 42ms 3ms
Hysteria2 (brutal) 450 Mbps 150 Mbps 38ms 8ms
VLESS+Reality 280 Mbps 90 Mbps 45ms 5ms
Shadowsocks 250 Mbps 80 Mbps 48ms 6ms

5.3 弱网测试(模拟 2% 丢包)

协议 下载速度 连接稳定性
TUIC v5 (bbr) 320 Mbps ⭐⭐⭐⭐⭐ 非常稳定
Hysteria2 (brutal) 280 Mbps ⭐⭐⭐ 偶有断流
VLESS+Reality 150 Mbps ⭐⭐⭐⭐ 较稳定
Shadowsocks 120 Mbps ⭐⭐⭐ 卡顿明显

结论:TUIC 在弱网环境下优势明显,速度和稳定性都更好。

5.4 抗检测测试

用 Wireshark 抓包分析流量特征:

协议 流量特征 被识别难度
TUIC v5 类似 HTTPS/3 流量,QUIC 握手 ⭐⭐⭐⭐⭐ 很难
Hysteria2 QUIC 流量,但包大小特征明显 ⭐⭐⭐⭐ 较难
VLESS+Reality 完全模拟真实网站 TLS ⭐⭐⭐⭐⭐ 很难
Shadowsocks 无明显特征但无 TLS ⭐⭐⭐ 中等

六、常见问题排查

6.1 连接失败

现象 可能原因 解决方法
connection refused 服务端没运行 / 端口没开 检查服务状态和防火墙
certificate verify failed 证书问题 检查证书路径和域名匹配
timeout 网络不通 / UDP 被拦截 测试 UDP 连通性
auth failed UUID 或密码错误 核对配置

6.2 UDP 不通怎么办?

TUIC 依赖 UDP,如果 UDP 被限制:

  1. 测试 UDP 连通性:

    BASH
    # 服务器端
    nc -u -l -p 443
    
    # 客户端
    echo "test" | nc -u 服务器IP 443
  2. 如果 UDP 被QoS限速:

    • 尝试更换端口(443、80 通常优先级高)
    • 使用 UDP over TCP 中转(但会损失性能)
  3. 如果完全 blocked UDP:

    • TUIC 无法使用,建议改用 VLESS+Reality 等 TCP 协议

6.3 速度慢

原因 排查方法 解决
窗口太小 检查 send_window / receive_window 根据带宽调大
拥塞控制不匹配 客户端和服务端算法不一致 统一为 bbr
UDP 被 QoS 晚高峰速度骤降 换端口或换协议
服务器带宽不足 测速对比 升级服务器

6.4 断流/不稳定

原因 解决
心跳间隔太长 调小 heartbeat 到 10s
NAT 超时 服务端调小 max_idle_time
移动端省电模式 关闭系统省电优化
网络切换 开启 fast-open

七、进阶:多用户与流量管理

7.1 多用户配置

sing-box 支持多用户:

JSON
"users": [
  {
    "name": "user1",
    "uuid": "uuid-1",
    "password": "password-1"
  },
  {
    "name": "user2",
    "uuid": "uuid-2",
    "password": "password-2"
  }
]

7.2 限速配置

sing-box 支持按用户限速:

JSON
"users": [
  {
    "name": "user1",
    "uuid": "uuid-1",
    "password": "password-1"
  }
],
"outbounds": [
  {
    "type": "direct",
    "tag": "direct"
  }
]

更精细的限速需要用 sing-box 的 route 规则和 experimental 配置,或者配合 3x-ui 等面板管理。

7.3 与 3x-ui 面板集成

3x-ui 从 v2.3.0 开始支持 TUIC 协议。如果你已经在用 3x-ui,可以直接在面板里添加 TUIC 入站:

  1. 进入面板 → Inbounds
  2. 点击 + → Protocol 选 TUIC
  3. 填端口、UUID、密码
  4. 选择拥塞控制算法
  5. 上传证书
  6. 保存并启动

注意: 3x-ui 的 TUIC 支持基于 sing-box 内核,配置方式和 sing-box 一致。


八、总结

8.1 TUIC 适合谁?

强烈推荐:

不太适合:

8.2 快速上手清单

8.3 相关资源


【相关推荐】


TUIC 是 2026 年最值得尝试的协议之一。尤其是在弱网环境下,它的表现会超出你的预期。今天就动手搭一个试试吧。🚀

版权声明

作者: 易邦

链接: https://blog.e8k.net/posts/tuic-protocol-guide-2026/

许可证: 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。