在 Project V 与 Xray-core 的演进谱系中,VLESS 协议的出现标志着代理传输协议迈入了“轻量化与极致性能”的新时代。相较于包含冗余二次加密的经典 VMess 协议,VLESS 取消了服务端强力的二次对称加密,转而依托内嵌的 TLS / REALITY 保证传输安全。本文将深度剖析 VLESS 的报文结构、XTLS 零拷贝黑科技及其核心流控(Flow)算法演进。
一、 VLESS 协议设计哲学:为什么消灭二次加密?
在经典的 VMess over TLS 传输链路上,数据实际上经历了两次加密与两次解密:
- 客户端用 AES-128-GCM 加密 VMess 报文;
- TLS 协议层再用 TLS 密钥加密整个数据流。
这种双重加密在早年网络设备性能较低时构成了极大的 CPU 负担。VLESS 协议做出了重大创新:
- 无状态(Stateless):服务端无需在内存中维护复杂的会话状态。
- 免二次加密(Lightweight):VLESS 本身只负责带上简单的认证 Header(UUID)和目标地址,加密工作完全交由外层的标准 TLS / REALITY 完成,整体传输效率提升了 30% 以上。
二、 流控演进史:从 XTLS 到 Vision
为了消除 TLS 内嵌入代理流量时产生的双重握手特征,Xray 团队历经了数代流控算法的迭代:
- 经典 XTLS:XTLS 最初通过识别代理内部 TLS 流量的 Client Hello,在握手完成后直接让代理内核将原始数据包跳过二次封装,直接在 Socket 间复制数据,CPU 占用率急剧下降。
- 最新 Vision 流控 (xtls-rprx-vision):通过在连接建立的前几个数据包中注入随机长度的 Padding 混淆,破坏了固定长度的握手特征,同时保留了高效传输特性。
配置示例(Xray 客户端):
{
"outbounds": [
{
"protocol": "vless",
"settings": {
"vnext": [
{
"address": "my-server.com",
"port": 443,
"users": [
{
"id": "c7a8b9e0-1234-5678-9abc-def123456789",
"encryption": "none",
"flow": "xtls-rprx-vision"
}
]
}
]
}
}
]
}
VLESS 协议配合 Vision 流控与 REALITY 伪装,已成为现代化代理网络中最具高可用性与高性能的代表。