选择代理协议时,很多人只关心「能不能用」,而忽视了协议在抗封锁能力、传输性能、配置复杂度三个维度上的显著差异。本文从原理出发,对目前 Clash/Mihomo 支持的主流协议进行深度横向对比,帮助你在不同网络环境下做出最优选择。
VMess:V2Ray 的标志性协议
VMess 是 V2Ray 项目设计的加密传输协议,也是 Clash 支持最早、应用最广的协议之一。VMess 使用 UUID 作为身份验证凭据,内置时间戳校验(服务端与客户端时间差不超过 90 秒),有效防止了重放攻击。
VMess 本身的数据包头部经过混淆,裸协议已有一定的流量特征隐藏能力。配合 ws + TLS(WebSocket over TLS)或 grpc + TLS 传输层,外观上与普通 HTTPS 流量几乎无法区分。其主要缺点是:头部加密开销略高,在高延迟线路上性能不如基于 QUIC 的协议;时间同步要求对服务器运维造成轻微负担。
proxies: - name: vmess-ws type: vmess server: example.com port: 443 uuid: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx alterId: 0 # 0 表示启用 AEAD 加密(推荐) cipher: auto tls: true network: ws ws-opts: path: /api/v1/ws headers: Host: example.com
VLESS:轻量化的继任者
VLESS 是 VMess 的精简继承者,去除了 VMess 的对称加密层,将加密责任完全交给外层 TLS,换来了更低的 CPU 开销和更高的吞吐量。VLESS 配合 XTLS Vision 流控时,可以将内层 TLS 数据直接透传,进一步降低双重 TLS 的性能损耗,在高速场景下优势明显。
需要注意的是,VLESS 不适合裸奔(不带 TLS 的部署),必须依赖外层 TLS 保证安全性。它也不支持 alterId,认证完全依赖 UUID。
Trojan:以 TLS 本身为伪装
Trojan 的设计哲学与 VMess/VLESS 截然不同——它不试图让流量「看起来像 HTTPS」,而是直接运行在真正的 TLS 之上,连接建立后首先发送密码进行认证,错误密码的请求会被转发到一个真实的 Web 服务(如 Nginx),让防火墙探测时看到的是真正的 HTTPS 响应。
Trojan 的抗主动探测能力是其最大亮点。即使防火墙尝试连接 Trojan 服务器,由于没有正确密码,探测流量会被正常的 Web 服务接收并返回 200 响应,防火墙无法判断这是代理服务器。劣势是配置相对复杂(需要真实域名和有效证书),且单连接性能略低于 VLESS+XTLS。
proxies: - name: trojan-node type: trojan server: example.com port: 443 password: your-password sni: example.com skip-cert-verify: false # 生产环境请勿设为 true udp: true
Hysteria2:QUIC 时代的速度标杆
Hysteria2 基于 QUIC 协议(UDP 上的多路复用 + 可靠传输),引入了 BBR 拥塞控制和激进的带宽利用策略,在高丢包、高延迟线路(如中美跨洋线路)上表现远超所有基于 TCP 的协议。实测中,Hysteria2 在 30% 丢包率线路上仍能维持接近满带宽的速度,而 TCP 协议在同等丢包下速度会下降到不足 10%。
但 Hysteria2 的 UDP 流量特征相对明显,在激进限速 UDP 的网络环境(如部分校园网、企业网)中可能被限制。此外,Hysteria2 的拥塞算法对上行带宽的消耗较大,不适合在上行受限的 VPS 上部署。
up 和 down 字段需要填写实际带宽(Mbps),填写过大会导致拥塞算法过于激进,反而降低速度。建议实测后再配置。proxies: - name: hy2-node type: hysteria2 server: example.com port: 443 password: your-password up: 50 Mbps down: 200 Mbps sni: example.com skip-cert-verify: false
协议选型参考表
| 协议 | 传输层 | 抗封锁 | 高延迟性能 | 配置复杂度 | 推荐场景 |
|---|---|---|---|---|---|
| VMess+WS+TLS | TCP | ★★★★☆ | 中等 | 中等 | 通用,节点兼容性好 |
| VLESS+XTLS | TCP | ★★★★★ | 中等 | 较高 | 高带宽直连,性能优先 |
| Trojan | TCP | ★★★★★ | 中等 | 中等 | 抗主动探测,独立部署 |
| Hysteria2 | UDP/QUIC | ★★★☆☆ | 最优 | 低 | 高丢包/高延迟线路 |
多协议混用策略
在 Clash 中,不同协议的节点可以放在同一个策略组中。一个实用的做法是:将 Hysteria2 节点与 TCP 协议节点同时加入 url-test 组,让 Clash 自动测速选优。当网络环境适合 QUIC 时使用 Hysteria2,当 UDP 被限制时自动回落到 Trojan 或 VMess,两全其美。