VLESS+REALITY без магии: почему его сложнее душить
Обычно это выглядит скучно: открываешь ноутбук, жмёшь «подключиться», и ничего не происходит. Мессенджер крутит кружок, браузер молчит, а в системном трее у VPN зелёная галочка. И ты сидишь в кафе, где Wi‑Fi как будто есть, но как будто нет.
В такие дни я и вспоминаю про VLESS+REALITY. Не как про «секретный протокол», а как про рабочий инструмент, который иногда вытаскивает там, где банальный WireGuard внезапно становится слишком заметным.
Почему все внезапно заговорили про VLESS+REALITY
VLESS сам по себе довольно простой транспортный протокол из экосистемы Xray (родственник V2Ray). Он решает задачу «как упаковать трафик клиента и донести до сервера», без лишней криптографической самодеятельности: шифрование и маскировка обычно делаются отдельным слоем.
REALITY как раз про маскировку. И вот тут начинается интересное: вместо того чтобы честно поднимать TLS с сертификатом на своём домене, REALITY имитирует обычное TLS‑подключение к реальному публичному сайту (так называемому dest). При этом сервер не обязан владеть сертификатом этого сайта. Клиент сверяет сервер по публичному ключу (X25519) и короткому идентификатору (shortId), а снаружи всё похоже на нормальный TLS 1.3 трафик к популярному ресурсу.
Звучит как фокус. Отчасти так и есть.
Но практический смысл простой: если сеть режет «подозрительные» VPN‑сигнатуры на уровне DPI, REALITY старается выглядеть максимально скучно, как обычный веб.
Что именно обходит REALITY, а что нет
Самая частая история блокировок сейчас не «закрыли порт 1194». Это именно распознавание по отпечаткам: характерный ClientHello, странные наборы шифров, неестественные расширения TLS, повторяющиеся паттерны в первых пакетах. WireGuard, например, быстрый и приятный, но его UDP‑почерк многие уже научились узнавать. Shadowsocks‑2022 тоже неплох, но при агрессивном DPI иногда приходится долго подбирать плагины и обвязку.
REALITY делает ставку на две вещи:
1) Похожесть на обычный TLS. Внешне соединение выглядит так, будто вы открываете сайт по 443 порту.
2) Устойчивость к «активному прощупыванию». Это когда блокирующая сторона сама пытается подключиться к вашему серверу и проверить, «а не VPN ли ты». У REALITY логика рукопожатия завязана на ключи и параметры. Без них сервер ведёт себя иначе.
Теперь про неприятное.
Если серверный IP заблокировали целиком, никакая маскировка не поможет. Если на магистрали режут весь 443 к нужной подсети, тоже. И ещё: при очень злом DPI бывает, что ловят не сигнатуру протокола, а поведенческие штуки (частота переподключений, размер пакетов, необычный тайминг). Тут чудес нет.
Настройка: где люди чаще всего спотыкаются
REALITY многим нравится ровно до первого ручного конфига. Потому что в отличие от «ввёл логин и пароль», здесь есть параметры, которые нельзя перепутать.
Минимальный набор, который обычно фигурирует в профиле VLESS+REALITY:
- serverName (SNI): доменное имя, под которое маскируемся (обычно совпадает с dest)
- publicKey сервера
- shortId
- uuid (идентификатор клиента для VLESS)
- иногда fingerprint (отпечаток клиента, чтобы быть похожим на Chrome/Firefox/Safari)
Честно, самая раздражающая часть это не uuid, а именно связка publicKey и shortId. Один символ мимо, и вы получите «подключено», но трафика не будет. Или будет 10 секунд, а потом отвалится.
Ещё один момент, который редко проговаривают: dest должен быть живым и «обычным». Если вы выбрали экзотический домен, который сам по себе в вашей сети плохо открывается, маскировка превращается в тыкву. Я обычно беру что-то крупное и предсказуемое, и обязательно проверяю, что оно реально доступно из той сети, где собираюсь пользоваться.
Клиенты и платформы, которые реально удобны
Я постоянно вижу, как люди пытаются тащить один и тот же профиль между устройствами и удивляются разным результатам. Это нормально: клиенты отличаются по реализации uTLS, по маршрутизации, по тому, как они ведут себя при смене сети.
Набор, который чаще всего работает без плясок:
- Android: V2RayNG, NekoBox, Hiddify
- iOS: Shadowrocket (если он у вас есть), иногда Streisand как инфраструктурный проект, но это уже не «клиент в один тап»
- Windows/macOS: Hiddify, клиенты на базе Xray core
- Роутеры: OpenWrt с Xray (здесь важно помнить про слабый процессор и шифрование)
Да, список выглядит как набор странных названий. Привыкаешь.
На телефоне добавляется отдельная боль: энергосбережение. Android любит прибивать фоновые VPN‑сервисы, особенно если вы часто перескакиваете между LTE и Wi‑Fi. Итог простой: больше переподключений, больше шансов поймать временную блокировку по «подозрительному» поведению.
Короткий совет. Отключите «оптимизацию батареи» для клиента.
Скорость, задержка, потери: что почувствуете руками
По ощущениям VLESS+REALITY обычно ближе к «нормальному HTTPS‑туннелю»: задержка чуть выше, чем у WireGuard, но часто стабильнее в сетях, где UDP не любят или режут. На плохом мобильном интернете это заметно.
Если вы много звоните по голосу или сидите в видеосвязи, обратите внимание на потери пакетов при прыжках сети. TCP‑перепередачи могут давать эффект «вроде подключено, но звук дергается». В таких случаях иногда проще держать два профиля: один на WireGuard для домашних и нормальных сетей, другой на VLESS+REALITY как запасной.
И ещё. Не ждите, что «маскировка под сайт» ускорит трафик. Она про то, чтобы трафик не резали.
Как я проверяю, что проблема не в протоколе
Когда «не работает», первое желание это менять сервер, протокол, клиента, телефон и судьбу. Я делаю проще и последовательно, иначе легко запутаться.
Вот быстрый чек-лист, который экономит нервы:
- открывается ли выбранный dest (домен из serverName) из этой сети без VPN
- совпадают ли publicKey и shortId с тем, что выдали на сервере
- не включён ли на сервере и клиенте разный flow/transport (люди иногда смешивают профили)
- не душит ли сеть UDP целиком (актуально, если параллельно тестируете WireGuard)
- не отваливается ли клиент при блокировке в фоне (особенно Android)
Если после этого всё равно тишина, я смотрю логи Xray на сервере. Там обычно сразу видно: дошло ли рукопожатие, есть ли ошибки ключа, или вас режут раньше.
Где у REALITY тонкое место
Активное противодействие всё равно возможно. Например, если блокируют по IP‑репутации или подсетям хостеров. Или если начинают подозревать сам факт «слишком много TLS в одно место». В реальности это выглядит так: пару дней всё летает, а потом конкретный сервер начинает «подлагивать» только в одной сети.
Ещё тонкость: выбор отпечатка (fingerprint). Иногда «как Chrome» в одной сети проходит, а «как Safari» вызывает лишние вопросы. Это не магия, это просто разные наборы расширений TLS. Подбирать неприятно, но иногда помогает.
Если вы выбираете сервис, я бы смотрел не на обещания, а на то, насколько удобно управлять профилями и как быстро их можно заменить. На странице возможностей DuduVPN как раз полезно посмотреть, что у провайдера есть помимо одного протокола, потому что держать один-единственный вариант на все случаи жизни обычно плохо заканчивается.
Когда проще взять готовое, чем собирать самому
Я люблю ручные настройки, но это хобби, а не обязанность. Если нужно, чтобы работало на iOS, на рабочем Windows, и ещё на роутере с OpenWrt, вы довольно быстро упрётесь в поддержку, обновления клиентов и банальную ротацию серверов.
У DuduVPN мне нравится подход «без квеста»: берёте DuduVPN, получаете профиль под нужное устройство и при необходимости поднимаете всё через Telegram bot. По ценам и срокам проще один раз посмотреть на странице тарифов, чем выискивать условия по чату.
Если вы всё же настраиваете сами, держите под рукой страницу вопросов и ответов выбранного сервиса или проекта, потому что половина «не работает» решается одним пунктом про время на устройстве или неверный SNI.
Последний практический совет: если REALITY внезапно перестал коннектиться в одной конкретной сети, сначала поменяйте dest/serverName на другой заведомо доступный домен, и только потом трогайте ключи и сервер.
Похожие статьи
WireGuard, OpenVPN или REALITY: что поставить и почему
Разбираю WireGuard, OpenVPN и VLESS+REALITY по-человечески: скорость, устойчивость к блокировкам, батарея и задержка на мобильной сети.
VPN или прокси, выбираем по задачам
Практический разбор: чем VPN отличается от прокси, когда достаточно SOCKS5 или Shadowsocks, а когда нужен WireGuard на телефоне, ноутбуке и роутере.
«Без логов» у VPN: что скрывается за обещанием
«No logs» звучит просто, но за этим прячутся нюансы: какие данные может хранить VPN, что неизбежно в протоколах и как проверять обещания на практике.
VPN, который не сдается по вечерам
Разбираю, почему VPN «проседает» в прайм-тайм и как выбрать сервис по протоколам, приложениям и тестам, чтобы связь держалась стабильно.