mirror of
https://github.com/XTLS/Xray-docs-next.git
synced 2026-10-06 22:08:16 +03:00
Change: reformat protocols
This commit is contained in:
@@ -1,18 +1,12 @@
|
||||
---
|
||||
date: "2020-12-23T00:00:00.000Z"
|
||||
description: Project X 的文档.
|
||||
title: VMess
|
||||
weight: 6
|
||||
---
|
||||
# VMess
|
||||
|
||||
[VMess](../../../develop/protocols/vmess) 是一个加密传输协议,通常作为 Xray 客户端和服务器之间的桥梁。
|
||||
|
||||
::: danger
|
||||
VMess 依赖于系统时间,请确保使用 Xray 的系统 UTC 时间误差在 90 秒之内,时区无关。在 Linux 系统中可以安装`ntp`服务来自动同步系统时间。</br>
|
||||
|
||||
VMess 依赖于系统时间,请确保使用 Xray 的系统 UTC 时间误差在 90 秒之内,时区无关。在 Linux 系统中可以安装`ntp`服务来自动同步系统时间。
|
||||
:::
|
||||
|
||||
## InboundConfigurationObject
|
||||
---
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -61,7 +55,6 @@ VMess 依赖于系统时间,请确保使用 Xray 的系统 UTC 时间误差在
|
||||
|
||||
|
||||
### ClientObject
|
||||
---
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -74,15 +67,19 @@ VMess 依赖于系统时间,请确保使用 Xray 的系统 UTC 时间误差在
|
||||
|
||||
> `id`: string
|
||||
|
||||
Vmess 的用户 ID,可以是任意小于30字节的字符串, 也可以是一个合法的UUID. </br>
|
||||
Vmess 的用户 ID,可以是任意小于30字节的字符串, 也可以是一个合法的UUID.
|
||||
|
||||
::: tip
|
||||
自定义字符串和其映射的 UUID 是等价的, 这意味着你将可以这样在配置文件中写id来标识同一用户,即
|
||||
- 写 "id": "我爱🍉老师1314",
|
||||
- 或写 "id": "5783a3e7-e373-51cd-8642-c83782b807c5" (此UUID是 `我爱🍉老师1314` 的 UUID 映射)
|
||||
|
||||
:::
|
||||
|
||||
其映射标准在[VLESS UUID 映射标准:将自定义字符串映射为一个 UUIDv5](https://github.com/XTLS/Xray-core/issues/158)
|
||||
|
||||
你可以使用命令 `xray uuid -map "自定义字符串"` 生成自定义字符串所映射的的 UUID.</br>
|
||||
也可以使用命令 `xray uuid` 生成随机的UUID.
|
||||
你可以使用命令 `xray uuid -map "自定义字符串"` 生成自定义字符串所映射的的 UUID.
|
||||
|
||||
> 也可以使用命令 `xray uuid` 生成随机的UUID.
|
||||
|
||||
> `level`: number
|
||||
|
||||
@@ -100,16 +97,13 @@ level 的值, 对应 [policy](../../base/policy#policyobject) 中 level 的值.
|
||||
::: tip
|
||||
客户端 AlterID 设置为 0 代表启用 VMessAEAD ;服务端为自动适配,可同时兼容启用和未开启 VMessAEAD 的客户端。
|
||||
客户端可通过设置环境变量 Xray_VMESS_AEAD_DISABLED=true 强行禁用 VMessAEAD
|
||||
|
||||
:::
|
||||
|
||||
> `email`: string
|
||||
|
||||
用户邮箱地址,用于区分不同用户的流量。
|
||||
|
||||
|
||||
|
||||
### DetourObject
|
||||
---
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -121,10 +115,7 @@ level 的值, 对应 [policy](../../base/policy#policyobject) 中 level 的值.
|
||||
|
||||
一个 inbound 的`tag`, 指定的 inbound 的必须是使用 VMess 协议的 inbound.
|
||||
|
||||
|
||||
|
||||
### DefaultObject
|
||||
---
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -143,10 +134,7 @@ level 的值, 对应 [policy](../../base/policy#policyobject) 中 level 的值.
|
||||
|
||||
动态端口的默认`alterId`,默认值为`0`。
|
||||
|
||||
|
||||
|
||||
## VMess MD5 认证信息 玷污机制
|
||||
---
|
||||
|
||||
为了进一步对抗可能的探测和封锁,每个 VMess 认证数据的服务端结构都会包含一个一次写入的玷污状态标记,初始状态为无瑕状态,当服务器检测到重放探测时或者因为其他原因入站连接出错以致校验数据不正确时,该连接所对应的请求认证数据会被玷污。
|
||||
|
||||
@@ -157,6 +145,5 @@ level 的值, 对应 [policy](../../base/policy#policyobject) 中 level 的值.
|
||||
如果服务器正在被重放攻击,可能会出现连接不稳定的情况。
|
||||
|
||||
::: tip
|
||||
拥有服务器 UUID 以及其他连接数据的恶意程序可能根据此机制对服务器发起拒绝服务攻击,受到此类攻击的服务可以通过修改 proxy/vmess/validator.go 文件中 func (v \*TimedUserValidator) BurnTaintFuse(userHash []byte) error 函数的 atomic.CompareAndSwapUint32(pair.taintedFuse, 0, 1) 语句为 atomic.CompareAndSwapUint32(pair.taintedFuse, 0, 0) 来解除服务器对此类攻击的安全保护机制。使用 VMessAEAD 认证机制的客户端不受到 VMess MD5 认证信息 玷污机制 的影响。
|
||||
|
||||
|
||||
拥有服务器 UUID 以及其他连接数据的恶意程序可能根据此机制对服务器发起拒绝服务攻击,受到此类攻击的服务可以通过修改 `proxy/vmess/validator.go` 文件中 `func (v \*TimedUserValidator) BurnTaintFuse(userHash []byte) error` 函数的 `atomic.CompareAndSwapUint32(pair.taintedFuse, 0, 1)` 语句为 `atomic.CompareAndSwapUint32(pair.taintedFuse, 0, 0)` 来解除服务器对此类攻击的安全保护机制。使用 VMessAEAD 认证机制的客户端不受到 VMess MD5 认证信息 玷污机制 的影响。
|
||||
:::
|
||||
|
||||
Reference in New Issue
Block a user