mirror of
https://github.com/XTLS/Xray-docs-next.git
synced 2026-09-27 17:38:05 +03:00
81 lines
6.6 KiB
Markdown
81 lines
6.6 KiB
Markdown
# VMess
|
|
|
|
[VMess](../../development/protocols/vmess.md) - это зашифрованный транспортный протокол, который обычно используется в качестве моста между клиентами и серверами Xray.
|
|
|
|
::: danger
|
|
VMess полагается на системное время. Убедитесь, что системное время UTC, используемое Xray, находится в пределах 120 секунд от фактического времени, независимо от часового пояса. В системах Linux вы можете установить службу `ntp` для автоматической синхронизации системного времени.
|
|
:::
|
|
|
|
## OutboundConfigurationObject
|
|
|
|
`OutboundConfigurationObject` соответствует элементу `settings` в [`OutboundObject`](../outbound.md).
|
|
|
|
```json
|
|
{
|
|
"outbounds": [
|
|
{
|
|
// ...
|
|
"protocol": "vmess",
|
|
// [!code focus:8]
|
|
"settings": {
|
|
"address": "127.0.0.1",
|
|
"port": 37192,
|
|
"id": "5783a3e7-e373-51cd-8642-c83782b807c5",
|
|
"security": "auto",
|
|
"level": 0,
|
|
"experiments": ""
|
|
}
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
> `address`: address
|
|
|
|
Адрес сервера, поддерживается IP-адрес или доменное имя.
|
|
|
|
> `port`: number
|
|
|
|
Номер порта, который прослушивает сервер, обязательный параметр.
|
|
|
|
> `id`: string
|
|
|
|
Идентификатор пользователя VMess, может быть любой строкой длиной менее 30 байт или допустимым UUID.
|
|
|
|
Пользовательская строка и соответствующий ей UUID эквивалентны, что означает, что вы можете использовать любой из следующих вариантов в файле конфигурации для идентификации одного и того же пользователя:
|
|
|
|
- Напишите `"id": "Я люблю арбуз учителя 1314"`,
|
|
- Или напишите `"id": "5783a3e7-e373-51cd-8642-c83782b807c5"` (этот UUID является сопоставлением строки "Я люблю арбуз учителя 1314")
|
|
|
|
Стандарт сопоставления описан в [VLESS UUID Mapping Standard: Mapping Custom Strings 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.
|
|
|
|
> `security`: "aes-128-gcm" | "chacha20-poly1305" | "auto" | "none" | "zero"
|
|
|
|
Метод шифрования. Клиент будет отправлять данные с использованием настроенного метода шифрования, сервер автоматически распознает его, настройка на сервере не требуется.
|
|
|
|
- `"aes-128-gcm"`: Использовать алгоритм `AES-128-GCM`.
|
|
- `"chacha20-poly1305"`: Использовать алгоритм `Chacha20-Poly1305`.
|
|
- `"auto"`: Значение по умолчанию. Автоматический выбор (для архитектур `AMD64`, `ARM64` или `s390x` будет выбран метод шифрования `aes-128-gcm`, в остальных случаях — `Chacha20-Poly1305`).
|
|
- `"none"`: Без шифрования, сохраняется структура сообщения `VMess`.
|
|
- `"zero"`: Без шифрования, поток данных копируется напрямую (аналогично `VLESS`).
|
|
|
|
Не рекомендуется использовать псевдошифрование `"none"` или `"zero"` без включенного `TLS` шифрования и принудительной проверки сертификата. Независимо от выбранного метода шифрования, заголовки пакетов `VMess` всегда защищены шифрованием и аутентификацией.
|
|
|
|
Обратите внимание, что `auto` определяет поддержку аппаратного ускорения `AES` только на стороне клиента. Если сервер не поддерживает аппаратное ускорение `AES`, необходимо вручную установить `"chacha20-poly1305"`. Это очень важно, поскольку `Chacha20-Poly1305` на платформах с поддержкой ускорения `AES` работает примерно на 48% медленнее, чем `AES-128-GCM`, однако на платформах без аппаратного ускорения `AES`, `AES-128-GCM` будет работать более чем на 2000% медленнее, чем `Chacha20-Poly1305`.
|
|
|
|
> `experiments`: string
|
|
|
|
Включенные экспериментальные функции протокола VMess. (Функции здесь нестабильны и могут быть удалены в любое время). Несколько включенных экспериментов можно разделить символом |, например, "AuthenticatedLength|NoTerminationSignal".
|
|
|
|
"AuthenticatedLength" включает эксперимент с аутентифицированной длиной пакета. Этот эксперимент необходимо включить одновременно на клиенте и сервере, а также запустить одну и ту же версию программы.
|
|
|
|
"NoTerminationSignal" включает отправку отключенного сигнала разрыва соединения. Эта функция теперь включена по умолчанию.
|