VLESS、Trojan、Hysteria2 区别:机场协议怎么选
VLESS Trojan Hysteria2区别,先说结论:这三个协议的设计思路不同——VLESS 追求轻量、Trojan 追求像普通 HTTPS、Hysteria2 基于 QUIC 面向弱网——但对你来说,选哪个其实不重要,重要的是它和你的客户端、线路匹配。 本文用保守准确的说法讲清各协议的设计思路,再对照客户端支持,最后给一条实用的判断路径。
协议是“节点和客户端说话用的语言”,它和订阅、节点、线路的分工见 机场节点是什么。本文只展开协议这一层。技术细节随版本变化,不确定的地方一律以各项目官方文档为准。
VLESS Trojan Hysteria2区别:先看两个维度
比较协议,先抓两个维度,比背名字有用:
- 走的是 TCP 还是 UDP。 大多数协议基于 TCP;Hysteria2 基于 QUIC,QUIC 跑在 UDP 之上。你的网络对 UDP 友不友好,会直接影响这类协议能不能用。
- 外面有没有一层“像 HTTPS”的外壳。 有的协议本身只管认证和转发,需要搭配 TLS 之类的传输层;有的协议在设计上就内置了 TLS。
记住这两个维度,下面的对照表会好读很多。
五种常见协议,各自的设计思路
Shadowsocks:老牌、轻量
Shadowsocks 是最早流行的一批代理协议,设计思路是简单、轻量、实现容易,几乎所有主流客户端都支持,兼容性好。它本身没有额外的 TLS 外壳,数据按约定的加密方式封装。很多服务商仍会提供这类节点,术语见 Shadowsocks。
VLESS:轻量、无状态
VLESS 来自 V2Ray 一系,设计思路是轻量、无状态,用 UUID 做认证。要注意:VLESS 本身不负责加密,通常搭配 TLS 或 Reality 这类传输层使用,也可以搭配多种传输方式,安全性和表现取决于搭配了什么。很多较新的节点会使用这个组合,术语见 VLESS。
Trojan:像普通 HTTPS
Trojan 的设计思路是让流量看起来像普通的 HTTPS 访问:它基于 TLS,用密码认证,对不合规的访问可以转交给一个真实的网站处理。这种设计依赖证书、域名等配置是否正确。实际效果因网络环境而异,不能当成承诺。术语见 Trojan。
Hysteria2:基于 QUIC,面向弱网
Hysteria2 基于 QUIC,传输在 UDP 上,拥塞控制的思路是在丢包较多、延迟较高的线路上也尽量维持传输速率,所以常被用在网络环境不理想的场景。代价是对 UDP 通路敏感,一旦网络限制 UDP,就用不了;同时它比较占带宽,对服务商的带宽成本也有影响。术语见 Hysteria2。
AnyTLS:较新的一类
AnyTLS 是较新的协议,设计目标之一是缓解“TLS 套 TLS”带来的流量特征,并通过填充、连接复用等方式改善表现。它需要较新的内核支持,服务商是否提供、你的客户端是否支持,都要提前核对。术语见 AnyTLS。
除此之外,还有 VMess、TUIC 等协议,以及像 ShadowTLS 这样“套在别的协议外面”的外壳,不在这篇展开。
对照表:一眼看清五种协议
| 协议 | 设计思路 | 传输基础 | 特点倾向 | 需要留意 |
|---|---|---|---|---|
| Shadowsocks | 老牌轻量的加密代理 | 通常为 TCP,也支持 UDP 转发 | 轻量、兼容性好 | 没有 TLS 外壳,是否提供因服务商而异 |
| VLESS | 轻量、无状态 | 常见为 TCP,可搭配多种传输方式 | 开销小,可与 TLS、Reality 搭配 | 自身不加密,取决于搭配的传输层 |
| Trojan | 像普通 HTTPS 访问 | 基于 TLS | 用密码认证,思路直接 | 依赖证书和域名配置 |
| Hysteria2 | 基于 QUIC,面向弱网 | UDP | 丢包较多时可能更有优势 | UDP 受限时不可用,较占带宽 |
| AnyTLS | 缓解 TLS 套 TLS 的特征 | 基于 TLS | 设计上带填充和连接复用 | 较新,客户端支持要核对 |
表里写的“倾向”,是设计层面的特点,不是对速度、稳定程度的承诺。
客户端支持:选协议之前先看你用什么软件
协议能不能用,先看客户端认不认。大致情况:
| 客户端类型 | 常见代表 | 支持情况 |
|---|---|---|
| 基于 Mihomo 内核的 Clash 系 | Clash Verge、Mihomo Party | 常见协议支持度较高,较新协议看内核版本 |
| v2ray 系 | v2rayN | 常见协议支持较好,较新协议要看版本和所选内核 |
| 基于 sing-box 内核的客户端 | Sing-box | 覆盖面通常较广,较新协议也往往较早支持 |
| iOS 上的常见客户端 | Shadowrocket | 支持较多协议,具体以 App 的说明为准 |
几个提醒:
- 较新的协议需要较新的版本。 Hysteria2、AnyTLS 这类协议,旧版本可能不支持,表现为节点不显示或连不上。
- 从官方渠道更新。 内核和客户端的更新说明,可以查看官方仓库,比如 sing-box 官方仓库 和 mihomo 官方仓库,支持哪些协议以文档为准。
- “看不到某些节点”不一定是节点坏了。 常见原因之一是客户端不认识这个协议,排查思路见 部分节点能用。
同一个协议名,为什么搭法不同、结果也不同:协议层、传输层、安全层
往深里讲一层。节点详情里写着的“协议”,其实只是整条链路里的一层。拆开看,一个节点通常由三层组成:
| 层 | 管什么 | 常见例子 |
|---|---|---|
| 协议层 | 怎么认证、怎么转发 | VLESS、Trojan、Shadowsocks、Hysteria2、AnyTLS |
| 传输层 | 数据在网络上怎么跑 | TCP、WebSocket、gRPC,以及 Hysteria2 用的 QUIC(跑在 UDP 上) |
| 安全层 | 有没有加密外壳 | TLS、Reality 这类 |
这张表有三个实用的推论:
- 两个节点都叫 VLESS,可能是不同的搭法。 一个搭 TCP 加 TLS,另一个搭 WebSocket 加 TLS,参数不同,客户端是否支持、网络是否放行也不同。所以“同样是 VLESS,这个能连那个连不上”并不奇怪。
- 客户端要“三层都认识”才算支持。 节点显示出来了却连不上,常见原因之一是传输或安全层的某个参数,当前版本的客户端或内核处理不了。这时更新到官方渠道的较新版本,往往比换节点有用。
- Hysteria2 的特殊之处是传输层和安全层合在 QUIC 里。 它依赖 UDP,网络对 UDP 做限制或限速时,整个协议就受影响,这是它和基于 TCP 的协议最实用的区别。
- 多路复用是“几个连接共用一条底层连接”。 一般的好处是少做几次握手,代价是底层连接一旦出问题,挂在上面的几个连接会一起受影响。是否启用由服务商决定,你通常不需要自己动手改。
这里讲的是常见的分层思路,具体支持哪些传输方式和参数,随内核版本变化,以各项目的官方文档为准,比如前面提到的 sing-box 官方仓库 和 mihomo 官方仓库。
选哪个不重要,匹配最重要:4 个判断
- 你的客户端支持吗? 不支持的协议,再好也用不上。先看客户端,再看节点。
- 你的网络放行 UDP 吗? 基于 UDP 的协议在 UDP 受限时可能用不了,这时改用基于 TCP 的节点。
- 服务商怎么配的? 节点的协议通常由服务商设定,你没必要自己改参数,改了反而容易连不上。
- 别把协议当速度开关。 协议只是链条中的一环,速度和稳定程度更多取决于线路、带宽和负载。线路的差别见 IPLC和IEPL区别。
把 VLESS Trojan Hysteria2区别落到你自己的情况上,可以这样选:
- 新手,只想先用起来:用服务商默认配好的节点,别折腾协议。
- 网络环境不理想:同时准备一个基于 TCP 的节点和一个基于 UDP 的节点,哪个顺手用哪个。
- 客户端比较老:先更新到较新的版本,再看节点是否出现。
按你的处境对号入座:5 个场景该怎么处理协议
下面的做法是一般规律,具体以你的网络环境和服务商的配置为准。
- 如果你在校园网或办公网络里,UDP 疑似被限制,优先试基于 TCP 的节点,比如 VLESS 或 Trojan 类;Hysteria2 连不上时,别反复折腾,直接换 TCP 类节点。使用网络时,同时要遵守该网络的使用规定。
- 如果你手机用 iOS 的小火箭、电脑用 Windows 的 v2rayN,两端混用,先向服务商确认订阅里的节点两端都支持,并以较旧的那个客户端为准。想看看各平台有哪些选择,可以用 机场客户端选择器,导入步骤见 小火箭导入订阅。
- 如果订阅里协议混着一大堆,不知道选哪个,先按地区选,再在同一地区里挑一个基于 TCP 的和一个基于 UDP 的,各用几天,晚间也用一用,看哪个更顺手。怎么比较,见 机场测速工具。
- 如果你想用 Hysteria2,但服务商只提供 TCP 类节点,不用硬追协议。协议要和线路、客户端匹配,才算好用。买之前问清楚有没有,是更省事的办法。
- 如果你是想了解内核的技术爱好者,别只看二手教程,去官方仓库读文档,那里写着当前版本支持哪些协议和参数,比网上流传的“推荐配置”可靠得多。
五个场景背后是同一个道理:协议是一个需要“对上号”的东西,不是一个“越新越好”的东西。 对上客户端、对上网络、对上线路,三个都对上,协议名叫什么反而是最次要的问题。
关于协议的 4 个常见误区
- “协议越新越好。” 新协议有新的设计取舍,也有兼容性代价,适合的才是好的。
- “协议决定速度。” 同一条线路上换协议,可能有差别;但线路、带宽和负载才是主因。
- “看到某个协议名,就等于高速或不被限制。” 协议名是宣传里常见的标签,别当作承诺,话术拆解见 机场虚假宣传。
- “节点不显示就是机场的问题。” 先排除客户端版本和订阅格式的问题,再去找服务商。
术语速查:协议名和相关词对照
文章里出现的几个协议和外壳,放在一张表里,方便对照。表里是设计思路层面的一句话说明,不是对效果的承诺,点进去是各自的术语页。
| 词 | 一句话 | 术语页 |
|---|---|---|
| Shadowsocks | 老牌轻量的加密代理协议,兼容性好 | Shadowsocks |
| VLESS | 轻量、无状态的协议,通常搭配 TLS 或 Reality 使用 | VLESS |
| Trojan | 设计上让流量像普通 HTTPS 访问,基于 TLS | Trojan |
| Hysteria2 | 基于 QUIC、跑在 UDP 上,面向丢包较多的线路 | Hysteria2 |
| AnyTLS | 较新的 TLS 类协议,设计上带填充和连接复用 | AnyTLS |
| ShadowTLS | 借用真实 TLS 握手的外壳,套在别的协议外面 | ShadowTLS |
| 节点 | 一份连接配置,里面写着协议、地址和认证信息 | 节点 |
| 订阅链接 | 把一批节点打包交给你的网址,同时是账号凭证 | 订阅链接 |
读术语页时,不用把每个词都背下来。需要记住的只有两件事:客户端认不认这个协议,网络放不放行它依赖的传输方式。 其余的,交给服务商的默认配置就行。
选机场时,怎么用协议这个维度提问
买之前,可以向服务商问清楚三件事:
- 订阅里的节点主要用哪些协议?
- 适配哪些客户端?有没有推荐的客户端版本?
- 有没有同时提供基于 TCP 和基于 UDP 的节点?
想横向看资料,可以去 机场推荐排行榜 和 机场对比,整体选购思路见 机场怎么选。本文只讲技术设计,使用请遵守所在地法律法规,机场牛不提供法律意见。
VLESS Trojan Hysteria2区别常见问题
Hysteria2 一定比 VLESS 快吗?
不一定。Hysteria2 基于 QUIC,思路是在丢包较多、延迟较高的线路上尽量维持传输,所以在弱网环境下可能有优势,但线路好的时候两者差距未必明显。速度更多取决于带宽、线路、负载,以及你的网络是否放行 UDP,不能只看协议名。
客户端不支持订阅里的某个协议,怎么办?
先确认客户端和内核是不是较新的版本,从官方渠道更新后再试。较新的协议如 Hysteria2、AnyTLS,旧版本常常不支持,表现为节点不显示或连不上。更新后仍不行,可以换用支持更全的客户端,或联系服务商询问有没有适配你客户端的节点。
Shadowsocks 是不是已经过时了?
不能这么说。Shadowsocks 是老牌轻量的协议,实现广泛,几乎所有主流客户端都支持,兼容性好。新协议在设计目标上各有侧重,但没有哪个协议适合所有场景。是否继续使用,取决于服务商怎么配置节点和你的客户端支持情况。
UDP 被限制的网络下,Hysteria2 还能用吗?
通常不能正常使用。Hysteria2 依赖 UDP 传输,如果你所处的网络对 UDP 做了限制或限速,连接可能失败或表现很差。这时候建议改用基于 TCP 的节点,比如 VLESS 或 Trojan 类节点,具体能不能用以你的实际网络环境为准。
AnyTLS 是什么,我需要特意去用吗?
AnyTLS 是较新的一类协议,设计目标之一是缓解 TLS 套 TLS 带来的流量特征,并通过填充和连接复用等方式改善表现。它需要较新的内核支持,不必特意追求。你的服务商没有提供,或者客户端不支持,用常见协议的节点同样可以正常使用。
VMess 和 VLESS 是什么关系,现在还需要用 VMess 吗?
两者都来自 V2Ray 一系。VMess 是较早的协议,自带加密;VLESS 的设计更轻量,本身不负责加密,通常搭配 TLS 等传输层。很多客户端两者都支持。用哪个由服务商配置,你不需要自己选,确认客户端支持订阅里的协议就行。