代理协议怎么选:Reality、Trojan、Hysteria2 等五种协议对比
Shadowsocks、VMess、VLESS + REALITY、Trojan、Hysteria2 分别跑在什么传输层上、怎样加密和伪装、哪些客户端能用?本文用对比表讲清五种主流代理协议的差异,简要介绍 TUIC 与 AnyTLS,并给出按场景选节点的方法。
小鱼怎么选
五种主流代理协议的区别主要在传输层和外观:Shadowsocks、VMess 自带加密、结构简单;Trojan 和 VLESS + REALITY 让连接看起来像标准的 TLS 网站访问;Hysteria2 基于 QUIC(UDP),在丢包多的线路上更能保持速度,但依赖本地网络放行 UDP。机场节点的协议由服务商决定,用户要做的是确认客户端内核支持它,再按晚高峰的实际表现在 TCP 类和 QUIC 类节点之间选择。
- 协议决定能否稳定连上和额外开销,带宽上限主要由线路决定
- Shadowsocks 简单高效,2022 版补上了重放保护;VMess 要求设备时间准确
- Trojan 和 VLESS + REALITY 的外观接近标准 TLS,REALITY 不需要自有域名和证书
- Hysteria2、TUIC 基于 QUIC,抗丢包,但受本地网络对 UDP 的限制
- 能不能用某个协议取决于客户端内核,mihomo 和 sing-box 覆盖最全
- 适合
- Lv.3 进阶用户
- 阅读
- 8 分钟
- 更新

先说结论
对使用机场的人来说,协议基本不是自己选的,而是服务商定好的:订阅里每个节点用什么协议、什么参数,都已经写死。你真正要做的是两件事:确认客户端的内核支持这个协议;当同一个机场同时提供不同协议的节点时,按自己网络的实际表现来选。
五种主流协议可以按两个维度区分:
- 传输层:Shadowsocks、VMess、VLESS、Trojan 跑在 TCP 上;Hysteria2 跑在 QUIC 上,而 QUIC 基于 UDP;
- 外观:Shadowsocks、VMess 是“看不出结构的密文”;Trojan、VLESS + REALITY 看起来像标准的 TLS 网站访问;Hysteria2 看起来像 HTTP/3。
要记住,协议决定的是“能不能稳定连上”和额外开销,速度上限主要由线路和带宽决定。协议在整条代理链路中处于哪个位置,见专题主文章 代理上网的原理。
五种协议对比总表
| 协议 | 传输层 | 加密与伪装方式 | 抗干扰特点 | 客户端支持 | 适合场景 |
|---|---|---|---|---|---|
| Shadowsocks(含 2022 版) | TCP,可转发 UDP | 预共享密钥加 AEAD 加密,整条连接是没有明显结构的密文 | 没有握手特征,但也不像任何常见协议,单独使用时谈不上伪装 | 几乎所有客户端;2022 版需要较新的内核 | 中转、专线节点,性能较弱的设备 |
| VMess | TCP,常搭配 WebSocket 和 TLS | 协议自带加密,用 UUID 认证,依赖设备时间准确 | 本身不以伪装见长,表现取决于外层的 WebSocket、TLS 组合 | Xray、mihomo、sing-box 系客户端,Shadowrocket | 兼容较早的订阅,需要经 CDN 转发的节点 |
| VLESS + REALITY | TCP | VLESS 只做认证和转发,加密通常交给外层;REALITY 借用真实网站的 TLS 握手,不需要自有域名和证书 | 外观是访问某个真实网站的 TLS 1.3 连接,未通过验证的连接被转给该网站 | Xray(v2rayN、v2rayNG)、mihomo、sing-box | 对伪装要求较高的直连节点 |
| Trojan | TCP | 标准 TLS 加密,密码认证,需要有效的 TLS 证书(通常意味着要有域名) | 外观就是 HTTPS,验证失败的连接交给回落网站处理 | 几乎所有主流客户端 | 通用,配置成熟 |
| Hysteria2 | QUIC(UDP) | QUIC 内置 TLS 1.3 加密;认证失败时表现为普通 HTTP/3 网站;可选 Salamander 混淆 | 丢包较多时更能维持速度;部分网络会限制长时间的 UDP 连接 | mihomo、sing-box、Xray(v26.1 起)、v2rayNG、Shadowrocket | 丢包多、距离远的线路,本地 UDP 畅通时 |
逐个看:各协议的关键点
Shadowsocks:简单、轻量的老牌协议
Shadowsocks 用预先共享的密钥加密整条连接,没有复杂的握手,实现简单、开销小。现在应当使用 AEAD 加密方式,2022 版(SIP022)又做了一轮升级:
- 必须支持的加密方式是
2022-blake3-aes-128-gcm和2022-blake3-aes-256-gcm; - 密钥必须是固定长度的随机密钥,规范明确禁止再从普通密码推导密钥;
- 加入完整的重放保护,服务器会记住 60 秒内出现过的随机盐;时间戳与服务器相差超过 30 秒的请求会被当作重放拒绝,所以设备时间不准时,2022 版节点也会连不上。
在中转和专线节点上 Shadowsocks 很常见。一种合理的解释是:这类线路的跨境段走机场自己的链路,对外观伪装的要求相对较低,轻量协议更划算。
VMess:自带加密,但要求时间准确
VMess 是 V2Ray 项目提出的协议,自带加密,用 UUID 识别用户。现在的实现使用 AEAD 方式(VMessAEAD),自 2022 年 1 月 1 日起,V2Ray 服务端默认禁用旧的 MD5 认证信息。它有一个容易踩的坑:V2Fly 文档写明 VMess 依赖系统时间,设备的 UTC 时间误差需要在 90 秒以内(与时区无关)。如果所有 VMess 节点同时连不上,而其他协议正常,先检查设备时间是否自动同步。
VMess 常和 WebSocket、TLS 组合使用,这样可以经过 CDN 转发;单独使用时,它的外观就是一段加密数据,谈不上伪装。
VLESS 与 REALITY:外观像访问真实网站
VLESS 是 Xray 文档所说的“无状态的轻量传输协议”,只负责认证和转发,也不依赖系统时间。文档要求它配合 TLS 或 REALITY 这类传输安全层使用(新版 Xray 另有可选的 VLESS Encryption,属于文档列出的例外)。REALITY 是 Xray 项目提出的方案,按官方说明:
- 用 REALITY 替代普通 TLS,可以消除服务端的 TLS 指纹特征;
- 服务器可以“指向别人的网站”,不需要自己购买域名、配置证书;
- 未通过验证的连接会被导向那个目标网站,外部看到的是一次真实的 TLS 访问。
REALITY 节点经常搭配 Vision 流控(xtls-rprx-vision),Xray 文档说明它会对内层的握手做随机填充。这针对的是一个已知问题:通过 TLS 类代理访问 HTTPS 网站时,会出现“TLS 里套着 TLS”,内层握手的长度和时序有可识别的特征。订阅里的公钥、Short ID、SNI 等参数由机场写好,用户不需要改;如果 REALITY 节点全部无法连接,先检查客户端内核是否足够新。
Trojan:把自己做成一个 HTTPS 网站
Trojan 的思路很直接:服务器就是一个正常的 HTTPS 服务。按官方协议说明,TLS 握手失败时服务器会像普通 HTTPS 服务器一样关闭连接;握手成功但密码或格式不对的连接,会被转交给预设的网站,于是不知道密码的访问者看到的,就是一个普通网站。
它的代价是需要有效的 TLS 证书,官方文档写明这是使用者的责任,实践中通常意味着要有自己的域名。还有一点值得留意:如果订阅中的节点普遍开启了“跳过证书验证”(skip-cert-verify),TLS 防中间人的作用就会打折扣,这属于服务商的配置问题。
Hysteria2:基于 QUIC,为丢包网络设计
Hysteria2 建立在标准的 QUIC 协议(RFC 9000)之上,并用 QUIC 的不可靠数据报扩展(RFC 9221)转发 UDP。协议规范要求,认证失败时服务器必须表现得像一个不理解该请求的普通 Web 服务器,所以从外部看它就是一个 HTTP/3 网站。几个特点:
- 拥塞控制可以自己定:客户端填写了带宽时,该方向使用 Brutal,按设定速率发送,不因丢包主动降速;不填时使用
congestion里配置的控制算法,默认是 BBR。官方文档特别提醒,带宽不要超过网络实际能承受的上限,否则会适得其反,造成拥塞和连接不稳定; - 可选 Salamander 混淆:把每个数据包都变成看不出规律的随机字节。文档也说明,开启混淆后服务器不再兼容标准 QUIC,也就不再是一个“有效的 HTTP/3 服务器”;
- 依赖 UDP:Hysteria 官方文档提到,有中国用户反映运营商会阻断或限速长时间的 UDP 连接,并为此提供了端口跳跃功能。所以它在不同网络、不同时段的表现差异可能很大。
丢包为什么对 TCP 类协议影响这么大,见 机场延迟低为什么速度还是慢。
TUIC 与 AnyTLS:两个较新的选项
TUIC 同样基于 QUIC。它的官方仓库只放协议规范,并写明仓库中没有官方实现,服务端和客户端都由第三方实现,其中包括 mihomo、sing-box、Shadowrocket、Stash 等。规范列出的目标包括以 0-RTT 转发 TCP 和 UDP、UDP 转发兼容 Full Cone NAT,从设计上看更照顾游戏、语音这类 UDP 场景。与 Hysteria2 一样,它受本地网络对 UDP 的限制。
AnyTLS 是一个基于 TLS 的较新协议,参考实现的说明是“试图缓解嵌套的 TLS 握手指纹(TLS in TLS)问题”,手段包括灵活的分包与填充策略,以及连接复用。按其说明,mihomo 和 sing-box 已支持(sing-box 文档注明从 1.12.0 开始),Shadowrocket 从 2.2.65 版本起实现了客户端。参考实现的作者也提示,它主要用于演示协议细节,第三方客户端的实现程度未经验证。机场提供 AnyTLS 节点时可以试用,但生态仍在完善,建议同时保留其他协议的节点。
TCP 类还是 QUIC 类:怎么取舍
| 对比项 | TCP 类(Shadowsocks、VMess、VLESS、Trojan、AnyTLS) | QUIC 类(Hysteria2、TUIC) |
|---|---|---|
| 丢包时的速度 | TCP 遇丢包会主动降速,跨境段丢包时下降明显 | 使用自己的拥塞控制,丢包时更能维持速率 |
| 对本地网络的要求 | 几乎所有网络都放行 TCP 443 端口 | 需要 UDP 畅通,部分网络会限速或阻断 |
| UDP 应用(游戏、语音) | 需要协议和节点支持 UDP 转发 | 本身基于 UDP,转发 UDP 比较自然 |
| 晚高峰表现 | 取决于线路,专线上通常稳定 | 线路丢包时有优势,遇到 UDP 限速时反而更差 |
| 设备开销 | 较低 | QUIC 在用户态实现,CPU 占用通常略高 |
机场用户怎么选
第一步:确认客户端支持
能不能用某个协议,取决于客户端内置的内核。下表依据各项目官方文档整理,打勾表示文档或版本记录中可以确认:
| 客户端(内核) | SS、VMess、VLESS、Trojan | REALITY | Hysteria2 | TUIC | AnyTLS |
|---|---|---|---|---|---|
| Clash Verge Rev、FlClash、Clash Meta for Android(mihomo) | ✓ | ✓ | ✓ | ✓ | ✓ |
| sing-box 官方客户端(sing-box) | ✓ | ✓ | ✓ | ✓ | ✓ |
| v2rayNG(Xray) | ✓ | ✓ | ✓(1.9.6 起) | Xray 文档未列出 | Xray 文档未列出 |
| Shadowrocket(自研) | ✓ | 更新记录未明确提及 | ✓ | ✓ | ✓(2.2.65 起) |
v2rayNG 的 Hysteria2 支持见其 1.9.6 版 Release 说明;Xray 内核本身从 v26.1 系列起加入了 Hysteria(版本 2)出站。Shadowrocket 的 App Store 更新记录提到了 VLESS Vision、Hysteria 2、TUIC 和 AnyTLS 的改进,但没有明确提到 REALITY,能否使用以 App 内的节点类型为准。
v2rayN 可以在 Xray、sing-box、mihomo 之间切换内核,能用哪些协议取决于所选内核;它和 Clash 系客户端怎么取舍,见 Clash 和 v2rayN 有什么区别。内核和客户端的关系见 机场客户端是什么。已经停更的客户端不会再支持任何新协议,还在用 Clash for Windows 的读者,可以看 Clash for Windows 停更后怎么办。
第二步:按场景挑节点
| 你的情况 | 优先尝试 | 原因 |
|---|---|---|
| 日常浏览、办公,稳定第一 | 专线或中转上的 Shadowsocks、Trojan、VLESS 节点 | TCP 类兼容性最好,稳定性主要看线路 |
| 晚高峰丢包多,或常用美国等远距离出口 | Hysteria2、TUIC 节点(机场提供时) | 丢包时更能维持速度 |
| 公司、学校等可能限制 UDP 的网络 | TCP 类节点 | 避免 UDP 被限速或阻断 |
| 打游戏、语音通话 | 明确支持 UDP 转发的节点 | 这类应用大多使用 UDP |
| 老旧手机或在路由器上运行代理 | Shadowsocks 等轻量协议 | 加密和封装的开销小 |
游戏和语音的 UDP 流量在电脑上通常要开启 TUN 才能进入客户端,原因见 TUN 模式和系统代理有什么区别。
最终仍以实测为准:同一出口地区挑一个 TCP 类节点和一个 QUIC 类节点,在晚高峰连续对比几天,选更稳定的那个作为主力,另一个留作备用。
三个常见误区
误区一:新协议一定更快。 协议只影响开销和连通性,节点慢多半是线路拥堵、带宽不足或超售,换协议解决不了。
误区二:伪装越好就越“安全”。 伪装解决的是“连接能否稳定建立”,不改变出口节点能看到你访问哪些域名这一事实。访问网站时的隐私保护,主要靠网站本身的 HTTPS。
误区三:节点名写着什么协议就是什么协议。 节点名称由机场填写,实际协议以客户端里显示的节点类型和参数为准。
总结
五种主流协议的差别集中在传输层和外观:Shadowsocks、VMess 轻量直接,Trojan、VLESS + REALITY 看起来像标准 TLS,Hysteria2 用 QUIC 换取丢包下的速度,代价是依赖 UDP。对机场用户来说,先确认客户端内核支持,再在晚高峰实测 TCP 类和 QUIC 类节点,比追逐“最新协议”更可靠。
常见问题
机场节点的协议可以自己改吗?
不能。协议由服务器端决定,订阅里每个节点的协议和参数都已经写好。你能选择的是用哪个节点,以及换用支持该协议的客户端。
Shadowsocks 是不是已经过时了?
没有。2022 版(SIP022)修复了旧版的一些已知弱点,补上了完整的重放保护。它结构简单、开销小,在中转和专线节点中仍然很常见。
为什么 Hysteria2 节点有时比别的节点快很多,有时又完全连不上?
Hysteria2 基于 UDP,在丢包较多的线路上更能维持速度;但如果你所在的网络对 UDP 限速或阻断,它就会变慢甚至无法连接。建议同时保留一个基于 TCP 的节点作为备用。
VLESS 和 VMess 有什么区别?
VMess 自带加密,并要求设备时间误差在 90 秒以内;VLESS 是无状态的轻量协议,加密通常交给外层的 TLS 或 REALITY 负责,对设备时间没有这样的要求。
客户端提示不支持某个协议怎么办?
多数是内核版本太旧,或者客户端本身不支持该协议。先把客户端更新到官方最新版;如果还在用已停更的 Clash for Windows 这类客户端,应换成仍在维护的客户端。
参考资料
下一步建议
- 系统学习:回到专题主文章《代理上网的原理:从客户端到出口节点,一次访问经历了什么》,按顺序补齐相关知识。
- 还没想好用哪家?先看 2026 年稳定机场选购方法,再用 对比表 按自己的需求筛选。
- 已经有机场但用得不顺?从 客户端知识 和 网络知识 里找对应的排查方法。
✦ 小鱼严选机场
- 线路(官方)
- IEPL 专线
- 起步价
- ¥15/月 · 72GB
- 线路(官方)
- IEPL 专线 / IPLC 专线
- 起步价
- ¥20/月 · 130GB
严选入选理由见各自的“为什么选择”文章;本站尚未完成实测的机场会在资料页注明。部分服务商链接为推广链接(rel="sponsored"),我们可能因此获得佣金,但不影响评测结论。详见评测方法与商业披露。

