VMess

VMess - это зашифрованный транспортный протокол, который обычно используется в качестве моста между клиентами и серверами Xray.

Предупреждение

VMess полагается на системное время. Убедитесь, что системное время UTC, используемое Xray, находится в пределах 120 секунд от фактического времени, независимо от часового пояса. В системах Linux вы можете установить службу ntp для автоматической синхронизации системного времени.

OutboundConfigurationObject

{
  "vnext": [
    {
      "address": "127.0.0.1",
      "port": 37192,
      "users": [
        {
          "id": "5783a3e7-e373-51cd-8642-c83782b807c5",
          "security": "auto",
          "level": 0,
          "experiments": ""
        }
      ]
    }
  ]
}

vnext: [ ServerObject ]

Массив, содержащий набор конфигураций сервера.

Каждый элемент - это конфигурация сервера ServerObject.

ServerObject

{
  "address": "127.0.0.1",
  "port": 37192,
  "users": []
}

address: address

Адрес сервера, поддерживается IP-адрес или доменное имя.

port: number

Номер порта, который прослушивает сервер, обязательный параметр.

users: [ UserObject ]

Массив, представляющий группу пользователей, распознаваемых сервером.

Каждый элемент - это пользователь UserObject.

UserObject

{
  "id": "5783a3e7-e373-51cd-8642-c83782b807c5",
  "security": "auto",
  "level": 0,
  "experiments": ""
}

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Открыть в новой вкладке.

Вы можете использовать команду xray uuid -i "пользовательская строка" для создания UUID, соответствующего пользовательской строке. Вы также можете использовать команду xray uuid для создания случайного UUID.

level: number

Уровень пользователя, для соединения будет использоваться локальная политика, соответствующая этому уровню пользователя.

Значение level соответствует значению level в разделе policy. Если не указано, используется значение по умолчанию - 0.

security: "aes-128-gcm" | "chacha20-poly1305" | "auto" | "none" | "zero"

Метод шифрования. Клиент будет отправлять данные с использованием настроенного метода шифрования, сервер автоматически распознает его, настройка на сервере не требуется.

  • "aes-128-gcm": рекомендуется для использования на ПК.
  • "chacha20-poly1305": рекомендуется для использования на мобильных устройствах.
  • "auto": значение по умолчанию, автоматический выбор (метод шифрования aes-128-gcm, если платформа выполнения - AMD64, ARM64 или s390x, в противном случае - Chacha20-Poly1305).
  • "none": без шифрования.
  • "zero": без шифрования и проверки подлинности сообщений (v1.4.0+).

Подсказка

Рекомендуется использовать метод шифрования "auto", чтобы обеспечить безопасность и совместимость в долгосрочной перспективе.

Метод псевдошифрования "none" будет вычислять и проверять контрольные суммы пакетов данных, но поскольку алгоритм аутентификации не имеет аппаратной поддержки, на некоторых платформах он может быть медленнее, чем "aes-128-gcm" с аппаратным ускорением.

Метод псевдошифрования "zero" не шифрует сообщения и не вычисляет контрольные суммы данных, поэтому теоретически он должен быть быстрее любого другого метода шифрования. Фактическая скорость может зависеть от других факторов.

Не рекомендуется использовать методы псевдошифрования "none" и "zero" без включенного TLS-шифрования и обязательной проверки сертификатов. Если для установления соединения используется CDN или другая промежуточная платформа, расшифровывающая TLS, или сетевая среда, не рекомендуется использовать методы псевдошифрования "none" и "zero".

Независимо от используемого метода шифрования, заголовок пакета VMess защищен шифрованием и аутентификацией.

experiments: string

Включенные экспериментальные функции протокола VMess. (Функции здесь нестабильны и могут быть удалены в любое время). Несколько включенных экспериментов можно разделить символом |, например, "AuthenticatedLength|NoTerminationSignal".

"AuthenticatedLength" включает эксперимент с аутентифицированной длиной пакета. Этот эксперимент необходимо включить одновременно на клиенте и сервере, а также запустить одну и ту же версию программы.

"NoTerminationSignal" включает эксперимент с отключением сигнала завершения соединения. Этот эксперимент может повлиять на стабильность проксируемого соединения.