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. Дальше:
- Клиент начинает рукопожатие TLS 1.3 с именем цели в SNI, оформленное как рукопожатие настоящего браузера.
- Внутри рукопожатия спрятано значение, которое может вычислить только клиент с публичным ключом сервера и действующим short ID.
- Если значение верное, сервер сам завершает рукопожатие, а клиент проверяет его тем же общим ключом. Внутри работает соединение VLESS.
- Если нет — например, сервер кто-то зондирует, — сервер перенаправляет соединение на настоящую цель. Посетитель получает настоящий сайт с его настоящим сертификатом.
Поэтому серверу никогда не нужен собственный сертификат, а при зондировании видна обычная веб-страница.
Публичный ключ, 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.