|
|
|
|
# VMess
|
|
|
|
|
|
|
|
|
|
[VMess](../../development/protocols/vmess.md) - это зашифрованный транспортный протокол, который обычно используется в качестве моста между клиентами и серверами Xray.
|
|
|
|
|
|
|
|
|
|
::: danger
|
|
|
|
|
VMess полагается на системное время. Убедитесь, что системное время UTC, используемое Xray, находится в пределах 120 секунд от фактического времени, независимо от часового пояса. В системах Linux вы можете установить службу `ntp` для автоматической синхронизации системного времени.
|
|
|
|
|
:::
|
|
|
|
|
|
|
|
|
|
## InboundConfigurationObject
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
{
|
|
|
|
|
"clients": [
|
|
|
|
|
{
|
|
|
|
|
"id": "5783a3e7-e373-51cd-8642-c83782b807c5",
|
|
|
|
|
"level": 0,
|
|
|
|
|
"email": "love@xray.com"
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"default": {
|
|
|
|
|
"level": 0
|
|
|
|
|
},
|
|
|
|
|
"detour": {
|
|
|
|
|
"to": "tag_to_detour"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
> `clients`: \[ [ClientObject](#clientobject) \]
|
|
|
|
|
|
|
|
|
|
Массив, представляющий группу пользователей, одобренных сервером.
|
|
|
|
|
|
|
|
|
|
Каждый элемент в массиве - это пользователь [ClientObject](#clientobject).
|
|
|
|
|
|
|
|
|
|
Когда эта конфигурация используется для динамических портов, Xray будет автоматически создавать пользователей.
|
|
|
|
|
|
|
|
|
|
> `detour`: [DetourObject](#detourobject)
|
|
|
|
|
|
|
|
|
|
Указывает, что для соответствующего исходящего протокола следует использовать другой сервер.
|
|
|
|
|
|
|
|
|
|
> `default`: [DefaultObject](#defaultobject)
|
|
|
|
|
|
|
|
|
|
Необязательно. Конфигурация по умолчанию для клиентов. Действует только при использовании с `detour`.
|
|
|
|
|
|
|
|
|
|
### ClientObject
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
{
|
|
|
|
|
"id": "5783a3e7-e373-51cd-8642-c83782b807c5",
|
|
|
|
|
"level": 0,
|
|
|
|
|
"email": "love@xray.com"
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
> `id`: string
|
|
|
|
|
|
|
|
|
|
Идентификатор пользователя VMess. Это может быть любая строка длиной менее 30 байт или допустимый UUID.
|
|
|
|
|
|
|
|
|
|
::: tip
|
|
|
|
|
Пользовательские строки и соответствующие им UUID эквивалентны, что означает, что вы можете использовать любой из следующих вариантов в файле конфигурации для идентификации одного и того же пользователя:
|
|
|
|
|
|
|
|
|
|
- `"id": "Я люблю арбуз учителя 1314"`
|
|
|
|
|
- `"id": "5783a3e7-e373-51cd-8642-c83782b807c5"` (этот UUID является сопоставлением строки "Я люблю арбуз учителя 1314")
|
|
|
|
|
|
|
|
|
|
Стандарт сопоставления описан в [VLESS UUID Mapping Standard: Mapping a Custom String to a UUIDv5](https://github.com/XTLS/Xray-core/issues/158).
|
|
|
|
|
|
|
|
|
|
Вы можете использовать команду `xray uuid -i "пользовательская строка"` для создания UUID, соответствующего пользовательской строке.
|
|
|
|
|
|
|
|
|
|
Вы также можете использовать команду `xray uuid` для создания случайного UUID. :::
|
|
|
|
|
|
|
|
|
|
> `level`: number
|
|
|
|
|
|
|
|
|
|
Уровень пользователя, который будет использоваться соединением для определения соответствующей [локальной политики](../policy.md#levelpolicyobject).
|
|
|
|
|
|
|
|
|
|
Значение `level` соответствует значению `level` в [policy](../policy.md#policyobject). Если не указано, используется значение по умолчанию - 0.
|
|
|
|
|
|
|
|
|
|
> `email`: string
|
|
|
|
|
|
|
|
|
|
Адрес электронной почты пользователя, используемый для разделения трафика от разных пользователей.
|
|
|
|
|
|
|
|
|
|
### DetourObject
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
{
|
|
|
|
|
"to": "tag_to_detour"
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
> `to`: string
|
|
|
|
|
|
|
|
|
|
`Тег` входящего соединения, определяющий входящее соединение, использующее протокол VMess.
|
|
|
|
|
|
|
|
|
|
### DefaultObject
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
{
|
|
|
|
|
"level": 0
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
> `level`: number
|
|
|
|
|
|
|
|
|
|
Уровень пользователя, который будет использоваться соединением для определения соответствующей [локальной политики](../policy.md#levelpolicyobject).
|
|
|
|
|
|
|
|
|
|
Значение `level` соответствует значению `level` в [policy](../policy.md#policyobject). Если не указано, используется значение по умолчанию - 0.
|
|
|
|
|
|
|
|
|
|
|