跳到主要内容

VLESS-Encryption

VLESS-Encryption 是 Xray-core 为 VLESS 增加可选应用层加密能力的功能方向。它不是一个独立代理协议,而是在 VLESS 原有认证与传输结构上增加额外加密层。由于该功能仍较新,具体字段、客户端支持和部署方式应以 Xray-core Release Notes 与客户端说明为准。

基本信息

项目信息
发布以 Xray-core Release Notes 为准
方向为 VLESS 增加额外的应用层加密
规范状态Xray-core 较新功能,生态仍在跟进
实现基础Xray-core
主要来源Xray-core 及相关客户端的版本说明

背景与动机

VLESS 协议的设计哲学是"职责分离"——将加密完全交给底层 TLS 或 Reality 处理,自身只负责身份认证和流量转发。这带来了性能优势,但也意味着在某些场景下(如 TLS 被中间设备干预、或需要额外的隐私保护层时),VLESS 本身没有独立的加密能力。

VLESS-Encryption 的出现是为了在不改变 VLESS 核心架构的前提下,为其增加一个可选的应用层加密选项。部分社区文档会使用“后量子”或“抗量子”表述,但这类描述依赖具体算法和实现版本,不能简单等同于完整的安全承诺。

技术原理

VLESS-Encryption 的核心思路是在 VLESS 的代理数据流之上增加一层额外的加密:

标准 VLESS + TLS:
客户端 → [VLESS 认证头 + 明文代理数据] → [TLS 加密] → 服务端

VLESS-Encryption + TLS:
客户端 → [VLESS 认证头 + 加密代理数据] → [TLS 加密] → 服务端

这意味着即使 TLS 层被剥离(如某些中间人场景),代理数据本身仍然是加密的。加密层位于 VLESS 协议头之后、代理目标数据之前。

与 VLESS + Reality 的组合

VLESS-Encryption 可以与 Reality 组合使用,形成 VLESS-Encryption + Reality + Vision 的三重保护方案:

客户端
|
| VLESS 认证头(UUID)
| 加密层(VLESS-Encryption)
| TLS 握手(Reality 伪装)
v
服务端
|
| Reality 验证 → VLESS 认证 → 解密代理数据
v
目标服务器

现状说明

较新功能

VLESS-Encryption 的生态仍在发展,以下是当前需要注意的限制:

  • 客户端支持有限:并非所有 Xray / V2Ray / Mihomo / sing-box 系客户端都支持相关字段
  • 配置格式可能变化:行为以 Xray-core 和客户端当前版本的实现为准
  • 兼容性需逐一验证:不同版本的 Xray-core 和客户端可能存在兼容性差异
  • 未经充分安全审计:加密层的安全性尚未经过独立第三方审计

与标准 VLESS 的对比

对比维度VLESS-EncryptionVLESS + RealityVLESS + XTLS-Vision
应用层加密有(额外加密层)
传输层加密TLSReality(TLS 1.3 伪装)TLS
需要域名
需要证书
抗量子计算取决于具体算法和版本
客户端支持极少广广
性能开销较高(双重加密)
成熟度较新成熟成熟
推荐场景技术探索生产环境生产环境

优缺点

优点缺点
为 VLESS 增加了独立的应用层加密能力较新功能,不建议无备份地作为唯一主力方案
可与 Reality 组合,提供额外的安全层客户端支持有限,需逐一确认
可能引入后量子相关算法行为以具体实现和版本为准
基于成熟的 Xray-core 生态双重加密带来额外性能开销
可借助社区脚本降低部署门槛未经充分独立安全审计
文档和教程资源非常有限

适用场景

推荐使用 VLESS-Encryption 的场景:

  • 对加密有额外需求,愿意接受较新功能的兼容性风险
  • 技术探索与研究
  • 已有 VLESS + Reality 方案,想在此基础上增加额外保护层
  • 能够接受客户端限制,并愿意核对当前版本的支持状态

不推荐使用的场景:

  • 需要稳定性的生产环境
  • 需要多平台客户端支持的用户
  • 对性能有较高要求的用户(双重加密有开销)
  • 不愿投入时间自行排障的用户

服务端部署

前置条件

  • 一台公网 VPS
  • 一个域名(如果使用 TLS 或 Reality 组合)
  • 已安装 Xray-core(需要支持 VLESS-Encryption 的最新版本)

安装方式

建议优先使用 Xray-core 官方安装脚本或发行包安装核心程序,再按照当前版本文档手动配置。社区一键脚本可以作为参考,但不应作为判断功能状态和安全性的主要依据。

手动配置(参考结构)

以下仅为参考结构,实际字段名和值以你使用的 Xray-core 版本为准:

{
"inbounds": [
{
"port": 12345,
"protocol": "vless",
"settings": {
"clients": [
{
"id": "your-uuid-here",
"encryption": "your-encryption-config"
}
],
"decryption": "your-decryption-config"
},
"streamSettings": {
"network": "tcp",
"security": "tls",
"tlsSettings": {
"certificates": [
{
"certificateFile": "/path/to/cert.crt",
"keyFile": "/path/to/private.key"
}
]
}
}
}
]
}
关于配置

具体的 encryptiondecryption 字段值取决于你使用的 Xray-core 版本和客户端实现。请严格参考 Xray-core 更新日志和当前版本配置文档。

客户端配置参考

V2rayN(Windows)

v2rayN 等跟进 Xray-core 较快的客户端可能较早支持 VLESS-Encryption。使用方式:

  1. 确保使用最新版 V2rayN
  2. 通过订阅链接导入节点(自动解析 Encryption 配置)
  3. 或手动添加 VLESS 节点,在加密相关字段中填入服务端对应的配置

其他客户端

其他主流客户端(如 Mihomo、sing-box、Shadowrocket、Stash 等)是否支持 VLESS-Encryption 取决于具体版本。如果客户端不支持,通常需要回退到标准 VLESS 模式连接(但会失去额外的加密层)。

客户端支持

平台客户端支持状态
Windowsv2rayN需使用支持该功能的较新版本
Windows其他需确认
macOS需确认
Linux需确认
iOS需确认
Android需确认
客户端生态极度有限

VLESS-Encryption 的跨平台支持仍不稳定。如果你需要多平台长期使用,建议优先选择标准的 VLESS + Reality 方案。

使用建议

  1. 不要无备份地作为主力方案:VLESS-Encryption 的生态仍在成熟,不适合作为日常使用的唯一方案
  2. 严格核对版本:服务端 Xray-core 版本和客户端版本需要匹配,否则可能出现连接失败
  3. 优先使用标准 VLESS:如果你的需求是抗封锁和隐私保护,VLESS + Reality 或 VLESS + XTLS-Vision 已经足够强大
  4. 关注上游动态:VLESS-Encryption 的发展依赖 Xray-core 和客户端更新,建议关注相关项目的 Release Notes

延伸阅读