最后更新于: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 v4TUIC v5
协议版本旧版,已停止维护当前主流版本
多路复用单连接单流单连接多流(mux)
0-RTT支持支持,更稳定
心跳机制简单心跳智能心跳,更省电
服务端tuic-servertuic-server(新版)
客户端支持较少Sing-Box、Clash.Meta、mihomo 等主流客户端

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

1.3 TUIC vs Hysteria2:该怎么选?

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

场景推荐协议原因
弱网/高丢包TUICQUIC 拥塞控制更温和,不暴力抢带宽
带宽充足/追求极速Hysteria2Brutal 拥塞控制可以榨干带宽
延迟敏感(游戏)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 支持多种拥塞控制算法:

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

3.2 窗口大小调优

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

服务器带宽send_windowreceive_window
100Mbps4MB2MB
500Mbps8MB4MB
1Gbps16MB8MB
10Gbps32MB+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_modeUDP 转发模式native(原生转发)
zero_rtt_handshake0-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 Mbps120 Mbps42ms3ms
Hysteria2 (brutal)450 Mbps150 Mbps38ms8ms
VLESS+Reality280 Mbps90 Mbps45ms5ms
Shadowsocks250 Mbps80 Mbps48ms6ms

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

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

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

5.4 抗检测测试

用 Wireshark 抓包分析流量特征:

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

六、常见问题排查

6.1 连接失败

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

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 国际许可协议进行许可。