VLESS Reality — это прокси-сервер VLESS, который прячется за TLS-рукопожатием другого сайта. VLESS — легкий прокси-протокол из проекта Xray, а REALITY заменяет его обычный слой TLS: сервер отвечает как настоящий посторонний сайт, поэтому ему не нужны собственный домен и сертификат, а до прокси добираются только клиенты, у которых есть его публичный ключ и short ID. Обычно его используют вместе с потоком Vision (xtls-rprx-vision).

В этой статье разберем каждую часть, как они сочетаются и где у них слабые места.

Что такое VLESS?

VLESS — протокол прокси без состояния. Каждое соединение начинается с короткого заголовка: версия, ID пользователя (UUID), команда (TCP или UDP) и адрес назначения. Дальше идут ваши данные.

Вот, по сути, и все. Собственного шифрования у VLESS нет. Его предшественник VMess сам шифрует каждый пакет, а VLESS оставляет это нижележащему слою, обычно TLS или REALITY. Без двойного шифрования меньше работы и у телефона, и у сервера.

VLESS предложили в 2020 году в сообществе V2Ray, сегодня его развивают в Xray. Его также поддерживают sing-box и Mihomo. Сравнение двух протоколов — в статье VMess или VLESS.

Транспорты

VLESS может работать прямо поверх TCP или внутри транспорта, который несет соединение:

  • WebSocket, HTTP Upgrade и gRPC — часто нужны, чтобы пройти через CDN.
  • XHTTP (ранее SplitHTTP) — HTTP-транспорт Xray, который заменил в Xray HTTP/2 и QUIC.

REALITY используют без транспорта, с gRPC или с XHTTP.

Что такое XTLS Vision?

Когда вы открываете HTTPS-сайт через TLS-прокси, TLS-соединение браузера идет внутри TLS-соединения прокси. У такого «TLS внутри TLS» узнаваемая форма: размеры и тайминги внутреннего рукопожатия просвечивают сквозь внешнее шифрование.

Эту проблему решает поток Vision (xtls-rprx-vision). Он дополняет первые пакеты внутреннего TLS-рукопожатия, чтобы их размеры меньше выдавали прокси. Когда внутреннее соединение уже зашифровано, Vision может пропускать его данные, не шифруя их второй раз.

Vision требует VLESS без транспорта и TLS или REALITY. Вариант xtls-rprx-vision-udp443 дополнительно разрешает UDP на порт 443 (QUIC). Старые потоки XTLS, например xtls-rprx-direct, из Xray удалены.

Что такое REALITY?

Обычному TLS-прокси нужны доменное имя и сертификат. Это лишняя работа при настройке, а сервер с «пустым» доменом и сайтом может выделяться.

REALITY, появившийся в Xray в 2023 году, устроен иначе. На сервере задается цель (target) — настоящий сайт, у которого он заимствует рукопожатие, например www.example.com. Дальше:

  1. Клиент начинает рукопожатие TLS 1.3 с именем цели в SNI, оформленное как рукопожатие настоящего браузера.
  2. Внутри рукопожатия спрятано значение, которое может вычислить только клиент с публичным ключом сервера и действующим short ID.
  3. Если значение верное, сервер сам завершает рукопожатие, а клиент проверяет его тем же общим ключом. Внутри работает соединение VLESS.
  4. Если нет — например, сервер кто-то зондирует, — сервер перенаправляет соединение на настоящую цель. Посетитель получает настоящий сайт с его настоящим сертификатом.

Поэтому серверу никогда не нужен собственный сертификат, а при зондировании видна обычная веб-страница.

Публичный ключ, short ID, SNI и отпечаток

Сервер REALITY выдает вам четыре настройки. Все они должны совпадать с настройками сервера.

Настройка Параметр ссылки Что это
Публичный ключ pbk Публичный ключ X25519 сервера, строка Base64 из 43 символов. Закрытая половина остается на сервере.
Short ID sid Короткая шестнадцатеричная строка до 16 символов, которую принимает сервер. На сервере их может быть несколько — по одной на пользователя или устройство.
Имя сервера (SNI) sni Сайт, у которого сервер заимствует рукопожатие. Это должно быть одно из имен, разрешенных на сервере.
Отпечаток fp TLS-рукопожатие какого браузера имитировать, например chrome, firefox или safari.

Отпечаток важен потому, что рукопожатие TLS-библиотеки выглядит иначе, чем у браузера. Имитация браузера делает рукопожатие похожим на то, что ожидаешь от сайта, которым притворяется сервер.

VLESS Encryption

В 2025 году в Xray появился VLESS Encryption — необязательный собственный слой шифрования VLESS. Он использует постквантовый обмен ключами (ML-KEM-768 вместе с X25519), а его значение на стороне клиента начинается с mlkem768x25519plus. Он может работать без TLS или поверх TLS, в том числе с Vision.

Механизм еще новый, и большинство серверов, которые вам встретятся, используют TLS или REALITY с encryption=none. Potatso сохраняет эту настройку при импорте ссылки, подписки или конфигурации Xray. Поддерживаемые режимы перечислены в справке по VLESS.

Сильные и слабые стороны

Сильные стороны:

  • Не нужны домен и сертификат. REALITY заимствует рукопожатие настоящего сайта.
  • Устойчивость к активному зондированию. Клиентов без ключа сервер пропускает на настоящий сайт.
  • Легкость. VLESS почти не добавляет накладных расходов, а Vision избавляет от двойного шифрования.
  • Гибкость. Один и тот же протокол работает поверх чистого TCP, WebSocket, gRPC или XHTTP, с TLS или REALITY.

Слабые стороны:

  • Сложнее обнаружить — не значит невозможно. Трафик все равно можно анализировать по шаблонам. А сервер, IP-адрес которого явно не принадлежит заимствованному сайту, может выглядеть подозрительно.
  • Цель нужно выбирать аккуратно. Она должна поддерживать TLS 1.3, а неудачный выбор может выделить сервер или вовсе сломать его работу.
  • REALITY не работает через CDN. К серверу REALITY нужно подключаться напрямую, в отличие от WebSocket поверх TLS.
  • Настройки должны совпадать в точности. Неверный публичный ключ, short ID или SNI выглядит как тайм-аут или обычный сайт — без понятной ошибки.
  • UDP нужно включить. Многие клиенты, в том числе Potatso, держат UDP для VLESS выключенным, пока вы его не включите.

Сравнение VLESS Reality с другими протоколами

VLESS + REALITY VLESS + TLS Trojan VMess Hysteria 2
Шифрование REALITY (TLS 1.3) TLS TLS Встроенный шифр, по желанию TLS TLS 1.3 внутри QUIC
Нужны домен и сертификат Нет Да Да Только с TLS Да, либо закрепленный самоподписанный
Работает через CDN Нет Да, с WebSocket, gRPC, XHTTP Да, с WebSocket или gRPC Да, с WebSocket или gRPC Нет
Работает поверх TCP TCP TCP TCP UDP (QUIC)
Ответ на зондирование Заимствованный сайт Ваш собственный сайт, если настроен Резервный сайт, если настроен Зависит от настройки Сайт-маскировка, если настроен

Общую картину см. в статье Сравнение прокси-протоколов, а также в материалах о Trojan и Hysteria 2.

Как выглядит ссылка VLESS Reality

Провайдеры обычно выдают ссылку vless://. Вот ссылка с REALITY и Vision, которая заимствует www.example.com:

vless://3971e1b2-18a3-4f83-8fa6-bf9b142ee258@vless.example.com:443?security=reality&sni=www.example.com&fp=chrome&pbk=Z84J2IelR9ch3k8VtlVhhs5ycBUlXA7wHBWcBrjqnAw&sid=0123abcd&type=tcp&flow=xtls-rprx-vision#REALITY-Vision

Разберем ее слева направо:

  • 3971e1b2-… — ваш ID пользователя.
  • vless.example.com:443 — сервер и порт.
  • security=reality включает REALITY.
  • sni=www.example.com — заимствованный сайт.
  • fp=chrome — отпечаток.
  • pbk и sid — публичный ключ и short ID.
  • type=tcp означает без транспорта, а flow=xtls-rprx-vision включает Vision.
  • #REALITY-Vision — название сервера в приложении.

В ссылке с обычным TLS вместо этого стоит security=tls, а pbk и sid нет. Все параметры перечислены в справке по VLESS.

VLESS Reality на iPhone

Potatso — бесплатный прокси-клиент для iPhone и iPad с поддержкой VLESS с REALITY, Vision, XHTTP и VLESS Encryption, проверенный на серверах Xray и sing-box. Инструкция Как настроить VLESS Reality на iPhone поможет импортировать ссылку и подключиться за несколько минут.

Частые вопросы

Что такое VLESS Reality простыми словами?
Это прокси-сервер VLESS, который вместо обычного TLS использует REALITY. Сервер показывает TLS-рукопожатие настоящего постороннего сайта, поэтому ему не нужны собственный домен и сертификат, а до прокси добираются только клиенты, знающие его публичный ключ и short ID.
Шифрует ли VLESS трафик?
Собственного шифрования у VLESS нет. Трафик шифрует слой под ним — TLS или REALITY. Новый механизм VLESS Encryption в Xray добавляет необязательный собственный слой шифрования, но большинство серверов по-прежнему используют TLS или REALITY.
Что такое xtls-rprx-vision?
Это поток Vision — настройка для VLESS поверх TLS или REALITY без дополнительного транспорта. Он дополняет (padding) начало TLS-соединений, которые вы открываете через прокси, поэтому характерный для проксируемого HTTPS узор «TLS внутри TLS» распознать сложнее.
Можно ли обнаружить VLESS Reality?
Необнаружимых протоколов не бывает. REALITY сильно затрудняет опознание сервера активным зондированием, потому что посторонние посетители видят настоящий сайт. Но анализ трафика и другие признаки, например IP-адрес, который не принадлежит заимствованному сайту, все равно могут его выдать.
Можно ли пользоваться VLESS Reality на iPhone?
Да, нужен клиент с поддержкой REALITY. Potatso — бесплатный прокси-клиент для iPhone и iPad — импортирует ссылки vless:// с REALITY и Vision и подключается к серверам Xray и sing-box.

Другие языки: English · 简体中文 · 繁體中文 · 日本語