VLESS 是一种由 Xray-core 团队设计和实现的代理协议,旨在提供一种简洁、透明且高性能的传输方式。与 VMess 等协议不同,VLESS 自身不包含任何加密或混淆功能,它将这些任务委托给传输层(如 TLS, WebSocket)来完成。VLESS 的核心理念是“不加密,不混淆,只传输”,它极大地减少了协议自身的开销,从而带来了更快的速度和更低的资源占用。

核心思想:将协议开销降到最低,只负责将客户端的流量“透明”地转发给目标服务器,而将加密和混淆的重任完全交给底层的传输协议(如 TLS、WebSocket)。


一、VLESS 协议的诞生背景与目标

VLESS 协议的诞生,是对 VMess 协议以及其他一些传统代理协议的反思和改进。它主要为了解决以下问题:

  1. 双重加密的性能损耗
    • 许多代理协议(如 VMess)自身会进行数据加密和混淆。
    • 当这些协议再叠加 TLS(HTTPS)等传输层加密时,就会形成“双重加密”,导致不必要的 CPU 消耗和延迟。
  2. 协议特征暴露
    • 复杂的协议自身往往会产生固定的“指纹”或特征,可能被深度包检测 (DPI) 识别并封锁。
    • 协议越简单、越透明,其流量特征就越接近普通流量,越难以区分。
  3. 兼容性和可扩展性
    • 希望协议核心足够简单,易于与其他传输协议(如 TCP、mKCP、WebSocket、HTTP/2、QUIC 等)及安全特性(如 TLS、XTLS)结合,实现高度的灵活性和可扩展性。

VLESS 的目标是提供一个极简、透明、高效且难以被检测的代理解决方案。

二、VLESS 协议的核心特性

2.1 无加密 (No Encryption)

这是 VLESS 最显著的特点。VLESS 协议层本身不进行任何数据加密。它假设上层或下层(例如 TLS)会提供必要的加密。

  • 优势:消除了协议层加密带来的 CPU 开销和延迟。
  • 注意事项:因此,VLESS 必须与提供加密的传输层结合使用,例如 TLS。裸 VLESS (VLESS over TCP without TLS) 是不安全的,且容易被识别和阻断。

2.2 无混淆 (No Obfuscation)

VLESS 协议自身也不进行流量混淆。它依赖于底层的传输协议(如 WebSocket 或 HTTP/2)来提供流量的伪装。

  • 优势:降低了协议复杂度,避免了混淆算法带来的额外开销。
  • 注意事项:同样,VLESS 必须依赖底层传输来提供伪装,以防止被识别。通常与 WebSocket 配合,伪装成正常的 WebSocket 流量。

2.3 透明传输 (Transparent Transmission)

VLESS 的设计哲学是“所见即所得”。它将客户端的流量几乎原封不动地传输到代理服务器,再由代理服务器转发到目标。

  • 优势
    • 极低开销:协议头部非常小,减少了数据包大小和处理时间。
    • 高性能:结合 TLS 或 XTLS,能达到接近直连的性能。
    • 难以检测:由于其流量特征主要由底层传输决定,可以很好地伪装成普通网络流量。

2.4 用户认证 (User Authentication)

尽管 VLESS 自身不加密不混淆,但它支持基于 UUID 的用户认证。每个 VLESS 连接都需要提供一个有效的 UUID,服务器通过验证 UUID 来确定是否允许连接。

  • 优势:防止未经授权的用户使用代理服务。

2.5 流量控制 (Flow Control) - 用于 XTLS

VLESS 协议的头部包含一个 flow 字段,这个字段是为 XTLS 功能而设计的。当 flow 字段设置为 xtls-rprx-directxtls-rprx-vision 时,客户端和服务器将启用 XTLS 的免流量加密优化,直接在 TLS application_data 层传输 VLESS 数据。

  • 优势:在与 XTLS 结合时,能最大化性能,并进一步增强流量隐蔽性。

三、VLESS 协议结构概述

VLESS 的协议头部设计得极其简洁,通常由以下几部分组成:

  1. 版本 (Version):VLESS 协议的版本号。
  2. 用户 UUID (User UUID):用于身份验证的唯一标识符。
  3. 附加选项 (Additions):包含一些额外的配置,如 flow 类型(用于 XTLS)等。
  4. 指令 (Command):指示服务器要执行的操作,例如 TCP 代理、UDP 代理等。
  5. 目标地址 (Destination Address):客户端希望连接的目标服务器地址和端口。

后续的数据流就是客户端的原始请求数据。

四、VLESS 的常见组合与工作流程

由于 VLESS 自身不加密不混淆,它总是需要与一个传输层 (Transport) 结合使用。最常见的组合是 VLESS + TCP + TLSVLESS + WebSocket + TLS,以及在此基础上优化的 VLESS + XTLS

4.1 VLESS + TCP + TLS

这是 VLESS 最基本的安全组合。

工作流程:

  1. 客户端应用发起请求,被 VLESS 客户端拦截。
  2. VLESS 客户端添加 VLESS 协议头部(包含 UUID、指令、目标地址)。
  3. 整个 VLESS 数据流(头部+原始数据)通过 TLS 加密后,在 TCP 连接上传输。
  4. 服务器接收到 TLS 加密数据,先进行 TLS 解密。
  5. 从解密后的数据中解析 VLESS 头部,进行 UUID 认证,并根据指令和目标地址建立与目标服务器的连接。
  6. 将客户端原始数据转发给目标服务器。
  7. 目标服务器的响应数据,反向经过 VLESS 服务器,再通过 VLESS 协议头部封装,并经 TLS 加密后返回给客户端。
  8. 客户端解密 TLS,解封装 VLESS,将响应数据还原给应用。

4.2 VLESS + WebSocket + TLS (WS over TLS)

这种组合在 VLESS 诞生初期非常流行,因为它能将代理流量伪装成正常的 HTTPS WebSocket 流量,具有很好的隐蔽性。

工作流程:

  1. 与 VLESS + TCP + TLS 类似,VLESS 客户端先封装数据。
  2. VLESS 数据被封装到 WebSocket 帧中。
  3. 整个 WebSocket 帧通过 TLS 加密后,在 TCP 连接上传输。客户端会先与服务器进行 TCP 连接、TLS 握手,然后发送 HTTP Upgrade 请求升级为 WebSocket 连接。
  4. 服务器端接收到数据后,依次进行 TLS 解密、WebSocket 解封装、VLESS 认证和解封装,最后将原始请求转发。
  5. 响应数据反向经过 VLESS 封装、WebSocket 封装、TLS 加密,通过 WebSocket 隧道传回客户端。

4.3 VLESS + XTLS

XTLS 是 VLESS 协议的最佳搭档,它通过复用 TLS 会话,直接在 TLS application_data 层传输 VLESS 数据,彻底消除了“双重加密”的性能损耗。

工作流程:

  1. 客户端应用发起请求,VLESS 客户端封装数据,并带上 XTLS 的 flow 类型。
  2. 客户端与服务器进行 TCP 连接和 TLS 握手。
  3. 服务器识别到 XTLS 的 flow 类型后,XTLS 功能被激活,接管 TLS 连接。
  4. 客户端发送 VLESS 认证信息(UUID),服务器验证通过。
  5. 核心区别:后续的 VLESS 代理数据不再经过额外的加密或 WebSocket 封装,而是直接作为 TLS application_data 记录的 Payload 进行传输。TLS 协议栈本身会对其进行加密和认证。
  6. 服务器直接从 TLS application_data 中获取 VLESS 数据,处理并转发到目标。
  7. 响应数据反向也以类似方式,直接通过 TLS application_data 传输回客户端。

五、VLESS 的优缺点

5.1 优点:

  1. 极高性能:协议本身开销极小,不进行加密混淆,结合 XTLS 可以达到接近直连的性能。
  2. 极低资源占用:减少了 CPU 的加解密负担。
  3. 高度透明:流量特征由底层传输(TLS/WS)决定,伪装能力强,难以被 DPI 识别。
  4. 高度灵活:可以与多种传输协议(TCP、WS、HTTP/2 等)和安全特性(TLS、XTLS)自由组合。
  5. 抗审查能力强:结合 TLS 回落和流量伪装,能够有效对抗各种形式的网络封锁。

5.2 缺点:

  1. 必须依赖安全传输层:裸 VLESS 不安全且容易被检测。必须与 TLS 或 XTLS 结合使用。
  2. 配置相对复杂:尤其是结合 XTLS、TLS 回落和 Web 服务器伪装时,涉及的组件和配置项较多。
  3. 需要域名和 TLS 证书:为了实现安全和伪装,通常需要一个有效的域名和 TLS 证书。

六、总结

VLESS 协议以其“不加密,不混淆,只传输”的极简设计,在代理领域开辟了一条新的道路。它将性能优化和抗审查的重任交给了底层的传输协议和安全机制,使得自身能够保持极致的简洁和高效。尤其是与 XTLS 结合后,VLESS 提供了目前最高效、最隐蔽、最难以被检测的代理解决方案之一,在对抗日益复杂的网络审查环境中展现出了强大的生命力。正确理解和配置 VLESS,将是实现稳定高速代理体验的关键。