协议原理 入门

主流翻墙协议对比:SS / VMess / VLESS / Reality / Trojan / Hysteria2

深入对比 Shadowsocks、VMess、VLESS、VLESS+Reality、Trojan、Hysteria2、TUIC 等主流代理协议的原理、加密、伪装策略、抗封锁能力与适用场景,帮你看懂机场用的是什么协议、值不值。

12 分钟 更新于 2026-05-14 内容可独立复现

一、协议总览

协议传输层加密伪装策略抗封锁能力延迟适用场景
Shadowsocks (SS)TCPAEAD (AES-GCM/ChaCha20)无(纯加密流)低(已有特征库)遗留/轻量
VMessTCP/WS/gRPCAES-128-GCM可选 TLS+WS 伪装V2Ray 生态
VLESSTCP/WS/gRPC依赖外层 TLS极轻量头部高(配合 Reality)当前主流
VLESS + RealityTCPuTLS + Reality伪装成任意 HTTPS 站点极高推荐首选
TrojanTCPTLS 1.3伪装成 HTTPS 流量需要域名+证书
Hysteria2QUIC/UDPTLS 1.3伪装成 HTTP/3极低高带宽/游戏
TUICQUIC/UDPTLS 1.3QUIC 协议极低UDP 场景
WireGuardUDPNoise 框架无伪装低(UDP 易封)极低VPN/内网
NaïveProxyTCPTLS 1.3 (Chromium)Chromium 网络栈极高极端审查环境

二、各协议深入分析

2.1 Shadowsocks (SS / SS2022)

原理:

  • 客户端与服务器共享预设密码(PSK)
  • 流量经 AEAD 加密后直接发送,无协议头、无握手协商
  • SS2022 引入了基于时间戳的重放保护和更强的密钥派生

加密:

SS-AEAD: 每个 TCP 连接独立密钥,从 PSK + 盐值派生
  支持: AES-128-GCM, AES-256-GCM, ChaCha20-Poly1305
  
SS2022: 引入 identity header 和 session subkey
  密钥: PSK 必须是 Base64 编码的随机字节

线路格式:

TCP 请求:
  [盐值 32B][加密载荷长度 2B+16B Tag][加密载荷 NB+16B Tag]
  
载荷:
  [地址类型 1B][目标地址][目标端口 2B][实际数据]

弱点:

  • 流量特征明显:每个连接开头有固定长度的盐值
  • GFW 已有成熟检测规则(主动探测+流量统计)
  • 无伪装能力,纯靠加密

现状: 已过时,仅用于遗留系统。SS2022 改进了安全性但未解决特征问题。


2.2 VMess

原理:

  • V2Ray 的原生协议,基于 UUID 认证
  • 支持多种传输方式(TCP/WS/gRPC/QUIC)
  • 请求头使用 AES-128-CFB 加密,基于时间戳防重放

认证:

1. 客户端和服务端共享 UUID
2. 请求头: HMAC(MD5(UUID), timestamp) 作为认证信息
3. 时间窗口: ±30 秒

头部格式(加密前):

[版本 1B][数据加密IV 16B][数据加密Key 16B][响应认证 1B]
[选项 1B][剩余加密方式][命令 1B][端口 2B][地址类型 1B][地址][随机填充]

传输方式:

传输原理特征
TCP直接 TCP 传输有一定特征
WebSocket升级为 WS 连接可配合 CDN
gRPCHTTP/2 多路复用可配合 CDN
HTTP/2标准 H2 传输较好伪装

弱点:

  • 请求头加密使用 AES-128-CFB(已知弱点,被研究者发现可被主动探测)
  • 时间戳依赖精确到秒,有重放窗口
  • 已被 VLESS 替代

2.3 VLESS(当前主流 TCP 方案)

原理:

  • 极简协议,自身不做加密,依赖外层 TLS
  • 头部开销极小(仅 UUID + 命令),性能优于 VMess
  • 设计目标:让加密归 TLS,协议只负责代理转发

协议格式:

请求:
  [版本 1B=0][UUID 16B][附加信息长度 1B][附加信息][命令 1B][端口 2B][地址类型 1B][地址][载荷]

响应:
  [版本 1B=0][附加信息长度 1B][附加信息][载荷]
  
命令: 0x01=TCP, 0x02=UDP, 0x03=Mux

单独使用 VLESS 没有意义,必须配合以下传输方式之一:

VLESS + TLS + WS(经典方案)

客户端 → TLS 1.3 握手 → WebSocket 升级 → VLESS 代理数据
  • 需要:域名 + TLS 证书(Let’s Encrypt)
  • 优势:可过 CDN(Cloudflare)
  • 劣势:需要域名,证书管理

VLESS + Reality(推荐方案)

客户端 → uTLS 模拟 Chrome 指纹 → Reality 握手(伪装目标站点) → VLESS 代理数据

Reality 核心原理:

  1. 客户端发送 ClientHello,SNI 设为目标伪装站点(如 www.microsoft.com
  2. 服务端检查 ClientHello 中的特殊标记(基于 x25519 密钥交换嵌入)
  3. 如果是合法客户端 → 建立真正的加密通道
  4. 如果是探测流量 → 将连接代理到真实的伪装站点,返回真实证书和内容

为什么 Reality 极难检测:

  • 不需要域名和证书
  • TLS 指纹与真实 Chrome 完全一致(uTLS)
  • 主动探测时返回真实网站内容
  • SNI 是合法知名网站
  • 被动观察只能看到一个正常的 HTTPS 连接

2.4 Trojan

原理:

  • 将代理流量伪装成正常 HTTPS 流量
  • 使用真实的 TLS 1.3 握手,拥有合法证书
  • 认证方式:SHA224(password) 作为首行明文发送(TLS 加密保护)

协议格式(TLS 解密后):

[SHA224(password) 56B][CRLF][命令 1B][地址类型 1B][地址][端口 2B][CRLF][载荷]

与 VLESS+TLS 的区别:

TrojanVLESS+Reality
需要域名
需要证书是(真实证书)
被主动探测返回伪装网页返回真实网站内容
性能更好(无证书开销)
部署难度中(需配置 Nginx+证书)

2.5 Hysteria2(当前最快的 UDP 方案)

原理:

  • 基于 QUIC(HTTP/3)协议魔改
  • 使用自定义拥塞控制算法 Brutal(暴力发包,不遵守 BBR/Cubic)
  • 将代理流量伪装成 HTTP/3 流量

核心技术:

  1. Brutal 拥塞控制

    • 用户指定期望带宽(如 100Mbps)
    • 直接按该速率发送数据,忽略网络拥塞信号
    • 在 QoS 限速环境下能”突破”限速
    • 代价:会挤占同链路其他流量
  2. QUIC 伪装

    • 标准 TLS 1.3 握手
    • 看起来像 HTTP/3 流量
    • UDP 传输,适合实时场景

认证:

TLS 1.3 握手 → HTTP/3 CONNECT 请求 → 
  Authorization: Basic base64(password)
  Hysteria-CC-RX: 期望下载带宽
  Hysteria-Padding: 随机填充

优势:

  • 延迟极低(UDP + 0-RTT)
  • 带宽利用率高(Brutal 拥塞控制)
  • 丢包恢复快(QUIC FEC)
  • 适合视频/游戏

劣势:

  • UDP 易被运营商 QoS 限速或直接封端口
  • Brutal 模式在某些网络下反而更差
  • 对 ISP 不友好,可能被定向限速

2.6 TUIC

原理:

  • 基于 QUIC 的代理协议
  • 专门为 UDP 转发优化(减少 UDP-over-TCP 的 head-of-line blocking)
  • 支持原生 UDP 中继(不封装成 TCP)

与 Hysteria2 对比:

Hysteria2TUIC
拥塞控制Brutal(暴力)标准 QUIC(BBR)
UDP 转发封装在 QUIC 流中原生 QUIC datagram
带宽突破可以不行
网络友好度
稳定性环境依赖大更稳定

三、协议选型建议

场景推荐

场景推荐方案理由
日常翻墙(首选)VLESS + Reality无需域名证书,极难检测,低延迟
需要过 CDNVLESS + WS + TLS支持 Cloudflare,IP 被封也能用
高带宽下载/视频Hysteria2Brutal 拥塞控制,带宽利用率高
游戏加速Hysteria2 或 TUICUDP 原生支持,低延迟
极端审查环境VLESS + Reality + XTLS最强抗检测
机场大规模部署VLESS + Reality 为主,Hysteria2 备用稳定+高性能

部署难度排序

简单 ←————————————————————————————→ 复杂
Hysteria2  >  VLESS+Reality  >  Trojan  >  VLESS+WS+TLS+CDN  >  NaïveProxy
(单二进制)    (无需域名)       (需域名)    (需域名+CDN)          (需编译)

四、如何看待机场的”私有自研协议”

部分机场会宣传自己的”私有自研协议”,号称比主流协议更抗封锁。从评测角度看,需要冷静拆解:

维度典型私有协议VLESS+RealityHysteria2
协议开放性闭源私有开源开源
加密多为 AES-GCM + 自定义握手TLS 1.3 (外层)TLS 1.3 (QUIC)
伪装多数为纯加密流,无站点伪装伪装成 HTTPS 站点伪装成 HTTP/3
抗检测原理靠用户基数小、特征未入库靠主动伪装 + 真实 TLS 指纹靠 QUIC / HTTP3 伪装
可审计性无法独立验证社区充分审计社区充分审计

结论: “私有协议”本身不等于”更安全”。多数私有协议是纯加密流,没有主动伪装能力,其”抗封锁”更多来自用户少、特征尚未被收录这一信息不对称,而非密码学或工程上的真正优势。一旦用户规模扩大、特征被采集,纯加密流很容易被识别。相比之下,VLESS+Reality / Hysteria2 这类开源方案的抗检测能力建立在可被审计的工程设计之上,更值得信任。

机场查查在评测中会优先关注协议是否开源可验证、是否具备真实伪装能力,而不是宣传话术。

#协议#VLESS#Reality#Hysteria2#Trojan#入门

本文仅作技术原理科普,帮助读者理解代理协议与机场架构。请遵守所在地区法律法规,合理合规使用网络。