网络知识对比进阶用户

代理协议怎么选: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 分钟
更新
网络知识栏目封面插画:粉彩渐变的天空、云朵、星星与星球
文章目录(8 节)
  1. 先说结论
  2. 五种协议对比总表
  3. 逐个看:各协议的关键点
  4. Shadowsocks:简单、轻量的老牌协议
  5. VMess:自带加密,但要求时间准确
  6. VLESS 与 REALITY:外观像访问真实网站
  7. Trojan:把自己做成一个 HTTPS 网站
  8. Hysteria2:基于 QUIC,为丢包网络设计
  9. TUIC 与 AnyTLS:两个较新的选项
  10. TCP 类还是 QUIC 类:怎么取舍
  11. 机场用户怎么选
  12. 第一步:确认客户端支持
  13. 第二步:按场景挑节点
  14. 三个常见误区
  15. 总结

先说结论

对使用机场的人来说,协议基本不是自己选的,而是服务商定好的:订阅里每个节点用什么协议、什么参数,都已经写死。你真正要做的是两件事:确认客户端的内核支持这个协议;当同一个机场同时提供不同协议的节点时,按自己网络的实际表现来选。

五种主流协议可以按两个维度区分:

  • 传输层: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 这类客户端,应换成仍在维护的客户端。

参考资料

  1. Shadowsocks SIP022:Shadowsocks 2022 Edition
  2. V2Fly 文档:VMess 协议配置
  3. Xray 文档:VLESS 出站(含 Vision 流控)
  4. XTLS/REALITY 官方仓库
  5. Trojan 官方文档:协议说明
  6. Hysteria 2 官方文档:协议规范
  7. TUIC 协议规范仓库
  8. AnyTLS 参考实现(anytls-go)

内容编辑与测试

小鱼网络编辑部负责站内文章的选题、测试与审校。我们长期跟踪机场服务、代理客户端、网络线路与 AI 服务的可用性变化,所有教程都会注明适用版本与核对时间,并在内容变化时更新记录。

本文遵循 小鱼网络评测方法与商业披露。发现错误或信息过期?欢迎 告诉我们。

下一步建议

  1. 系统学习:回到专题主文章《代理上网的原理:从客户端到出口节点,一次访问经历了什么》,按顺序补齐相关知识。
  2. 还没想好用哪家?先看 2026 年稳定机场选购方法,再用 对比表 按自己的需求筛选。
  3. 已经有机场但用得不顺?从 客户端知识 和 网络知识 里找对应的排查方法。

✦ 小鱼严选机场

严选入选理由见各自的“为什么选择”文章;本站尚未完成实测的机场会在资料页注明。部分服务商链接为推广链接(rel="sponsored"),我们可能因此获得佣金,但不影响评测结论。详见评测方法与商业披露。