选择代理协议时,很多人只关心「能不能用」,而忽视了协议在抗封锁能力、传输性能、配置复杂度三个维度上的显著差异。本文从原理出发,对目前 Clash/Mihomo 支持的主流协议进行深度横向对比,帮助你在不同网络环境下做出最优选择。

VMess:V2Ray 的标志性协议

VMess 是 V2Ray 项目设计的加密传输协议,也是 Clash 支持最早、应用最广的协议之一。VMess 使用 UUID 作为身份验证凭据,内置时间戳校验(服务端与客户端时间差不超过 90 秒),有效防止了重放攻击。

VMess 本身的数据包头部经过混淆,裸协议已有一定的流量特征隐藏能力。配合 ws + TLS(WebSocket over TLS)或 grpc + TLS 传输层,外观上与普通 HTTPS 流量几乎无法区分。其主要缺点是:头部加密开销略高,在高延迟线路上性能不如基于 QUIC 的协议;时间同步要求对服务器运维造成轻微负担。

VMess + WS + TLS 配置示例
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。

Trojan 配置示例
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 上部署。

Hysteria2 配置要点:updown 字段需要填写实际带宽(Mbps),填写过大会导致拥塞算法过于激进,反而降低速度。建议实测后再配置。
Hysteria2 配置示例
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+TLSTCP★★★★☆中等中等通用,节点兼容性好
VLESS+XTLSTCP★★★★★中等较高高带宽直连,性能优先
TrojanTCP★★★★★中等中等抗主动探测,独立部署
Hysteria2UDP/QUIC★★★☆☆最优高丢包/高延迟线路

多协议混用策略

在 Clash 中,不同协议的节点可以放在同一个策略组中。一个实用的做法是:将 Hysteria2 节点与 TCP 协议节点同时加入 url-test 组,让 Clash 自动测速选优。当网络环境适合 QUIC 时使用 Hysteria2,当 UDP 被限制时自动回落到 Trojan 或 VMess,两全其美。