VLESS + REALITY простыми словами
VLESS — это lightweight транспорт от команды Xray, который ничего не шифрует сам по себе и полагается на внешний TLS. REALITY — слой маскировки поверх VLESS, который заставляет ваше соединение выглядеть как обычный TLS-handshake к чужому популярному сайту (например, к крупному CDN или порталу облачного провайдера).
Связка «VLESS + REALITY» — главный современный ответ на ТСПУ. С точки зрения DPI ваш клиент будто бы открыл HTTPS к microsoft.com или yandex.ru: сертификат настоящий, домен живой, отличить от обычного браузера крайне сложно. Поэтому про неё «много говорят» — для обхода глубокой инспекции это сейчас один из самых рабочих вариантов.
Ниже разберём, что в этой связке делает каждая часть и почему REALITY устроен принципиально иначе, чем обычная TLS-маскировка вроде Trojan или Shadowsocks-over-TLS.
Коротко
- VLESS — транспортный proxy-протокол на ядре Xray, без собственного шифрования.
- Снаружи VLESS обычно оборачивают в TLS — отсюда связки VLESS+TLS, VLESS+XTLS, VLESS+REALITY.
- REALITY делает TLS-handshake к настоящему чужому сайту и подсовывает его сертификат клиенту.
- Для DPI это выглядит как легитимный HTTPS к популярному домену — сигнатуры нет.
- Никаких самоподписанных сертификатов: подделка не нужна, сертификат настоящий.
- Слабое место — нужен «правильный» внешний домен, под который маскируемся.
Как устроена связка VLESS + REALITY
Чтобы не запутаться, разделим три уровня: транспорт, шифрование, маскировка.
Что делает VLESS
VLESS — это просто «упаковщик» вашего трафика. Он берёт исходящие пакеты, помечает их идентификатором пользователя (UUID) и передаёт серверу. Никакой криптографии внутри. Поэтому VLESS почти всегда живёт в паре с внешним TLS. Подробности — в репозитории xray-core.
Что делает REALITY
REALITY заменяет обычный TLS-сервер на хитрый прокси-сервер. Когда клиент подключается, REALITY-сервер сам в этот же момент подключается к внешнему «прикрытию» — реальному сайту (target). Он забирает у этого сайта настоящий TLS-сертификат и продолжает handshake с клиентом, как будто он и есть этот сайт.
Если клиент — настоящий браузер случайного человека, REALITY-сервер незаметно достраивает соединение до того самого сайта и отдаёт обычный контент. Если клиент знает секрет (короткий ключ), REALITY переключает соединение в режим proxy и пропускает трафик через VLESS.
Почему это сложно блокировать
DPI на ТСПУ может попытаться отличить «настоящий» TLS от «прокси-TLS» по мелочам: набор ClientHello, время ответа, длина сертификата. REALITY обходит почти все классические признаки, потому что отдаёт реальный сертификат реального сайта и пропускает мимо настоящий трафик «лишних» клиентов. Активная проверка («давайте сами зайдём на этот IP и посмотрим, что отдают») возвращает легитимный сайт прикрытия.
Чем REALITY отличается от TLS-плагинов
Старые схемы вроде Trojan или Shadowsocks+TLS требовали свой домен и свой сертификат (например, через Let's Encrypt). DPI постепенно научилась находить такие связки по поведению. REALITY вообще не имеет «своего» домена — он использует чужой реальный, поэтому фильтру нет смысла блокировать целевой домен, не задев настоящих пользователей.
Как понять, что именно сломалось в VLESS+REALITY
| Симптом | Возможная причина | Что проверить |
|---|---|---|
| Клиент пишет «handshake failure» | Неверный публичный ключ или sid | Сверить конфиг с серверным |
| Подключение есть, сайты не открываются | Маршрутизация (routing) на клиенте | Проверить, что трафик уходит в outbound, не в direct |
| Резко перестал работать после года стабильности | Сменился TLS-fingerprint сайта прикрытия | Сменить target на актуальный популярный домен |
| Работает на Wi-Fi, не работает в LTE | Оператор фильтрует именно этот IP | Сменить IP сервера, проверить блокировку отдельно |
| Сервер коннектится, но виден таймаут на любых сайтах | DNS клиента уходит мимо туннеля | Включить fakeip / proxy DNS в клиенте |
| В клиенте мигают reconnect каждые 30 секунд | Не работает SNI / sid mismatch | Перепроверить fingerprint браузера в outbound |
Как проверить прямо сейчас
Чтобы понять, виноват ли DPI или ваш конкретный сервер, нужны замеры от пробников в разных сетях. Freedom Checker мониторит доступность по операторам и регионам без рекламы конкретных сервисов — это позволяет отделить локальную проблему от системной.
Если VLESS+REALITY не отвечает только у одного оператора, а у других идёт — почти наверняка дело в фильтрации именно этого IP или порта. Если протокол не работает нигде — ищите ошибку в конфиге или меняйте target.
Сбой или блокировка?
Сбой VLESS+REALITY обычно выглядит как одинаковый отвал у разных пользователей одного сервера: упал сам VPS, перегружен порт, кончился трафик. Через перезапуск сервера проблема уходит.
Блокировка проявляется иначе — у части операторов работает, у части нет, у одного и того же оператора в разных регионах поведение разное. Это типовая картина: ТСПУ научился фильтровать по IP или по поведению определённого сервера. Чаще всего помогает либо смена IP, либо смена target-домена на более «безопасный».
На что обратить внимание
- Target должен быть реально работающим популярным сайтом, не вашим собственным доменом.
- На клиенте обязательно укажите тот же uTLS fingerprint, что и в конфиге сервера (например, chrome).
- sid (short id) важен — сервер по нему отличает proxy-клиента от случайного гостя.
- Если меняете VPS — REALITY не привязан к конкретному порту, можно держать 443.
- REALITY несовместим со старыми клиентами на v2ray без xtls — нужен Xray или sing-box.
- Не показывайте свой конфиг публично: уникальный sid + ключ — это и есть допуск.
- «Резервная» точка входа на другом IP с другим target обычно спасает в плохие дни.
Вывод
Связка VLESS+REALITY — не «волшебный VPN», а аккуратная инженерная находка: она перестала придумывать собственную маскировку и стала использовать настоящий чужой TLS. Поэтому она держится лучше большинства классических протоколов.
Если у вас уже есть конфиг — храните запасной с другим target и другим IP. Если только выбираете, на чём поднимать свой VPN, начинать имеет смысл именно с этой связки.