mirror of
https://github.com/XTLS/Xray-docs-next.git
synced 2026-09-28 09:58:06 +03:00
VLESS: Add VLESS encryption
This commit is contained in:
@@ -1,9 +1,5 @@
|
||||
# VLESS(XTLS Vision Seed)
|
||||
|
||||
::: danger
|
||||
目前 VLESS 没有自带加密,请用于可靠信道,如 TLS。
|
||||
:::
|
||||
|
||||
VLESS 是一个无状态的轻量传输协议,它分为入站和出站两部分,可以作为 Xray 客户端和服务器之间的桥梁。
|
||||
|
||||
与 [VMess](./vmess.md) 不同,VLESS 不依赖于系统时间,认证方式同样为 UUID。
|
||||
@@ -38,11 +34,24 @@ VLESS 是一个无状态的轻量传输协议,它分为入站和出站两部
|
||||
|
||||
> `decryption`: "none"
|
||||
|
||||
现阶段需要填 `"none"`,不能留空。
|
||||
若未正确设置 decryption 的值,使用 Xray 或 -test 时会收到错误信息。
|
||||
[VLESS 加密](https://github.com/XTLS/Xray-core/pull/5067)设置。不能留空,禁用需显式设置为 `"none"`.
|
||||
|
||||
注意这里是 decryption,和 clients 同级。
|
||||
decryption 和 vmess 协议的 encryption 的位置不同,是因为若套一层约定加密,服务端需要先解密才能知道是哪个用户。
|
||||
推荐大多数用户使用 ./xray vlessenc 自动生成该字段确保编写不会出错。下方详细配置仅推荐高级用户阅读。
|
||||
|
||||
其格式为一串字段由 `.` 连接的详细配置。 如 `mlkem768x25519plus.native.0rtt.100-111-1111.75-0-111.50-0-3333.ptjHQxBQxTJ9MWr2cd5qWIflBSACHOevTauCQwa_71U`. 本文档将用点分开的单独部分称之为一个块
|
||||
|
||||
- 第1个块为握手方式,目前有且仅有 `mlkem768x25519plus`. 要求服务端与客户端一致
|
||||
- 第2个块为加密方式,可选 `native`/`xorpub`/`random`, 分别对应: 原始格式数据包/原始格式+混淆公钥部分/全随机数(类似 VMESS/Shadows socks)。要求服务端与客户端一致
|
||||
- 第3个块为会话恢复票据有效时间。格式为 `600s` 或 `100-500s`. 前者将在该时长和该时长的一半之间随机一个时间(如 `600s`=`300-600s`),后者则手动指定随即范围
|
||||
|
||||
往后为 padding, 连接建立后服务端发送一些垃圾数据用以混淆长度特征,无需与客户端相同(出站的相同部分为客户端向服务端方向发送的 padding),属于可变长部分,格式为 `padding.delay.padding`+`(.delay.padding)`*n(可插入多个 padding, 要求两个 padding 块之间必须包含一个 delay 块) 比如可以写一个超长的 `padding.delay.padding.delay.padding.delay.padding.delay.padding.delay.padding`
|
||||
|
||||
-`padding` 格式为 `probability-min-max` 如 `100-111-1111` 含义为 100% 发送一个长度 111~1111 的padding.
|
||||
-`delay` 格式同样为 `probability-min-max` 如 `75-0-111` 含义为 75% 的概率等待 0~111 毫秒
|
||||
|
||||
第一个 padding 块存在特殊要求,要求概率为 100% 且最小长度大于 0. 若不存在任何 padding, 核心自动使用 `100-111-1111.75-0-111.50-0-3333` 作为 padding 设置。
|
||||
|
||||
最后一个块会被核心识别为认证客户端使用的参数,可用 `./xray x25519`(使用 PrivateKey 部分) 或 `./xray mlkem768`(使用 Seed 部分) 生成,要求与客户端对应。`mlkem768` 属于后量子算法,可以防止(未来)客户端参数泄露后被量子计算机破解出私钥并冒充服务端。该参数仅用于验证,握手过程无论如何都是后量子安全的,现有的加密数据无法被未来出现的量子计算机破解。
|
||||
|
||||
> `fallbacks`: \[ [FallbackObject](../features/fallback.md) \]
|
||||
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
# VLESS(XTLS Vision Seed)
|
||||
|
||||
::: danger
|
||||
目前 VLESS 没有自带加密,请用于可靠信道,如 TLS。
|
||||
:::
|
||||
|
||||
VLESS 是一个无状态的轻量传输协议,它分为入站和出站两部分,可以作为 Xray 客户端和服务器之间的桥梁。
|
||||
|
||||
与 [VMess](./vmess.md) 不同,VLESS 不依赖于系统时间,认证方式同样为 UUID。
|
||||
@@ -89,11 +85,24 @@ VLESS 的用户 ID,可以是任意小于 30 字节的字符串, 也可以是
|
||||
|
||||
> `encryption`: "none"
|
||||
|
||||
需要填 `"none"`,不能留空。
|
||||
[VLESS 加密](https://github.com/XTLS/Xray-core/pull/5067)设置。不能留空,禁用需显式设置为 `"none"`.
|
||||
|
||||
该要求是为了提醒使用者没有加密,也为了以后出加密方式时,防止使用者填错属性名或填错位置导致裸奔。
|
||||
推荐大多数用户使用 ./xray vlessenc 自动生成该字段确保编写不会出错。下方详细配置仅推荐高级用户阅读。
|
||||
|
||||
若未正确设置 encryption 的值,使用 Xray 或 -test 时会收到错误信息。
|
||||
其格式为一串字段由 `.` 连接的详细配置。 如 `mlkem768x25519plus.native.0rtt.100-111-1111.75-0-111.50-0-3333.ptjHQxBQxTJ9MWr2cd5qWIflBSACHOevTauCQwa_71U`. 本文档将用点分开的单独部分称之为一个块
|
||||
|
||||
- 第1个块为握手方式,目前有且仅有 `mlkem768x25519plus`. 要求服务端与客户端一致
|
||||
- 第2个块为加密方式,可选 `native`/`xorpub`/`random`, 分别对应: 原始格式数据包/原始格式+混淆公钥部分/全随机数(类似 VMESS/Shadows socks)。要求服务端与客户端一致
|
||||
- 第3个块为是否会话恢复。选择 `0rtt` 将跟随服务端设置尝试使用先前生成的票据跳过握手快速连接(可被服务端手动禁用),选择 `1rtt` 将强制执行 1RTT 的握手过程。此处与服务端设置含义不同,详见 VLESS 入站 `decryption` 设置。
|
||||
|
||||
往后为 padding, 连接建立后客户端发送一些垃圾数据用以混淆长度特征,无需与服务端相同(入站的相同部分为服务端向客户端方向发送的 padding),属于可变长部分,格式为 `padding.delay.padding`+`(.delay.padding)`*n(可插入多个 padding, 要求两个 padding 块之间必须包含一个 delay 块) 比如可以写一个超长的 `padding.delay.padding.delay.padding.delay.padding.delay.padding.delay.padding`
|
||||
|
||||
-`padding` 格式为 `probability-min-max` 如 `100-111-1111` 含义为 100% 发送一个长度 111~1111 的padding.
|
||||
-`delay` 格式同样为 `probability-min-max` 如 `75-0-111` 含义为 75% 的概率等待 0~111 毫秒
|
||||
|
||||
第一个 padding 块存在特殊要求,要求概率为 100% 且最小长度大于 0. 若不存在任何 padding, 核心自动使用 `100-111-1111.75-0-111.50-0-3333` 作为 padding 设置。
|
||||
|
||||
最后一个块会被核心识别为认证服务端使用的参数,可用 `./xray x25519`(使用 Password 部分) 或 `./xray mlkem768`(使用 Client 部分) 生成,要求与服务端对应。`mlkem768` 属于后量子算法,可以防止(未来)客户端参数泄露后被量子计算机破解出私钥并冒充服务端。该参数仅用于验证,握手过程无论如何都是后量子安全的,现有的加密数据无法被未来出现的量子计算机破解。
|
||||
|
||||
> `flow`: string
|
||||
|
||||
|
||||
Reference in New Issue
Block a user