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-Encryption | VLESS + Reality | VLESS + XTLS-Vision |
|---|---|---|---|
| 应用层加密 | 有(额外加密层) | 无 | 无 |
| 传输层加密 | TLS | Reality(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"
}
]
}
}
}
]
}
具体的 encryption 和 decryption 字段值取决于你使用的 Xray-core 版本和客户端实现。请严格参考 Xray-core 更新日志和当前版本配置文档。
客户端配置参考
V2rayN(Windows)
v2rayN 等跟进 Xray-core 较快的客户端可能较早支持 VLESS-Encryption。使用方式:
- 确保使用最新版 V2rayN
- 通过订阅链接导入节点(自动解析 Encryption 配置)
- 或手动添加 VLESS 节点,在加密相关字段中填入服务端对应的配置
其他客户端
其他主流客户端(如 Mihomo、sing-box、Shadowrocket、Stash 等)是否支持 VLESS-Encryption 取决于具体版本。如果客户端不支持,通常需要回退到标准 VLESS 模式连接(但会失去额外的加密层)。
客户端支持
| 平台 | 客户端 | 支持状态 |
|---|---|---|
| Windows | v2rayN | 需使用支持该功能的较新版本 |
| Windows | 其他 | 需确认 |
| macOS | — | 需确认 |
| Linux | — | 需确认 |
| iOS | — | 需确认 |
| Android | — | 需确认 |
VLESS-Encryption 的跨平台支持仍不稳定。如果你需要多平台长期使用,建议优先选择标准的 VLESS + Reality 方案。
使用建议
- 不要无备份地作为主力方案:VLESS-Encryption 的生态仍在成熟,不适合作为日常使用的唯一方案
- 严格核对版本:服务端 Xray-core 版本和客户端版本需要匹配,否则可能出现连接失败
- 优先使用标准 VLESS:如果你的需求是抗封锁和隐私保护,VLESS + Reality 或 VLESS + XTLS-Vision 已经足够强大
- 关注上游动态:VLESS-Encryption 的发展依赖 Xray-core 和客户端更新,建议关注相关项目的 Release Notes
延伸阅读
- VLESS 协议 — 了解 VLESS 的标准使用方式(Reality / XTLS-Vision)
- Xray-core 项目:github.com/XTLS/Xray-core