VLESS Reality простыми словами: как работает протокол и почему мы построили на нём свой VPN
Я Вадим, разработчик Unlimited VPN; в конце статьи — рассказ о нашем сервисе (это реклама). Классические VPN-протоколы хорошо шифруют трафик, но плохо прячут сам факт использования VPN. В сетях с DPI (глубокой инспекци
Я Вадим, разработчик Unlimited VPN; в конце статьи — рассказ о нашем сервисе (это реклама).
Классические VPN-протоколы хорошо шифруют трафик, но плохо прячут сам факт использования VPN. В сетях с DPI (глубокой инспекцией пакетов) это становится главной проблемой: соединение не расшифровывают, его просто узнают и обрывают. VLESS с транспортом Reality решает именно эту задачу. Ниже разберу, как он устроен, без маркетинга и выдуманных цифр.
Что такое VLESS и Xray
Xray-core — открытый прокси-движок, ответвившийся от V2Ray. Он поддерживает несколько протоколов (VMess, VLESS, Trojan, Shadowsocks) и разные транспорты (TCP, WebSocket, gRPC, XHTTP).
VLESS — лёгкий протокол передачи данных внутри Xray. Его особенности:
- Нет собственного шифрования. VLESS лишь идентифицирует клиента по UUID и передаёт данные. Шифрование обеспечивает внешний слой — TLS или Reality. Это убирает двойное шифрование, которое было у VMess.
- Нет зависимости от точного времени, в отличие от VMess, где рассинхрон часов ломал подключение.
-
Поддержка XTLS Vision (flow
xtls-rprx-vision). Этот режим борется с характерной для прокси картиной «TLS внутри TLS»: когда внутренний трафик уже зашифрован TLS, Vision выравнивает (паддит) размеры первых пакетов, чтобы по ним было сложнее распознать туннель.
Сам по себе VLESS — просто «конверт». Вся маскировка — в транспорте поверх него.
Что делает Reality
Чтобы обычный TLS-прокси выглядел как сайт, раньше нужно было купить домен, получить сертификат и поднять веб-сервер. У такой схемы есть слабые места:
- Домен и IP можно внести в чёрный список.
- Цензор может сам подключиться к серверу (активное зондирование) и увидеть, что за «сайтом» ничего нет или он ведёт себя странно.
- SNI (имя сайта в открытом виде в ClientHello) выдаёт, куда идёт подключение.
Reality устроен иначе.
Чужое рукопожатие вместо своего сертификата
Сервер Reality не имеет собственного сертификата. В конфигурации указывается реальный сторонний сайт (параметр dest/target и список serverNames), который поддерживает TLS 1.3 — например, крупный сайт с HTTP/2.
Клиент отправляет ClientHello с SNI этого сайта. Со стороны сети подключение выглядит как обычный заход на этот популярный сайт. Отпечаток клиента подделывается под настоящий браузер с помощью uTLS (параметр fingerprint, например chrome).
Как сервер отличает «своего»
Внутри ClientHello клиент прячет данные для аутентификации, используя поле session ID и обмен ключами x25519 с публичным ключом сервера (publicKey) и коротким идентификатором (shortId).
- Если это наш клиент, сервер проверяет данные, завершает рукопожатие сам и дальше передаёт VLESS-трафик.
- Если это кто угодно другой — браузер, сканер, цензор, — сервер просто проксирует соединение на настоящий сайт. Тот, кто зондирует, получает подлинный сертификат и подлинную страницу.
Что это даёт
- Устойчивость к активному зондированию: проверка сервера показывает реальный сайт с реальным сертификатом.
- Устойчивость к блокировкам по SNI: SNI указывает на легитимный популярный домен, блокировать который дорого для самого цензора.
- Не нужен свой домен и сертификат: нечего вносить в чёрный список по имени, нечего продлевать.
Ограничения (честно)
- IP сервера всё равно виден. Если в сети блокируют целые подсети хостеров или «белые списки» IP, Reality не спасёт. Поэтому важно, чтобы выбранный сайт для маскировки был правдоподобным для этого IP (например, не выдавать сервер в небольшом дата-центре за CDN крупной компании, у которой известные диапазоны адресов).
- Статистический анализ трафика (объёмы, длительность, тайминги) теоретически остаётся возможным — Reality маскирует рукопожатие, а не поведение пользователя.
- Это не «невидимость», а значительное повышение стоимости обнаружения.
Сравнение по заметности
Ниже — качественное сравнение именно по тому, насколько легко узнать протокол в сети. Скорость не сравниваю: она зависит от сервера, канала и реализации, а честных цифр для общей таблицы нет.
| Протокол | Как выглядит в сети | Типичная уязвимость к блокировке |
|---|---|---|
| OpenVPN | Узнаваемые заголовки и рукопожатие, даже в режиме TCP/443 | Легко определяется сигнатурами DPI |
| WireGuard | UDP с фиксированными типами и размерами сообщений рукопожатия | Очень легко узнаётся по структуре пакетов; без обфускации блокируется точечно |
| Shadowsocks | Поток без структуры, «похожий на случайный шум» | Энтропийный анализ и активное зондирование; исторически это использовалось для блокировок |
| VLESS + TLS (свой домен) | Обычный HTTPS | Блокировка домена/IP, зондирование, признаки TLS-в-TLS |
| VLESS + Reality | HTTPS к реальному популярному сайту | Блокировка по IP/подсетям, статистический анализ |
WireGuard и OpenVPN — отличные протоколы для своей задачи: защищённого туннеля в сети, где VPN не запрещают. Они просто не проектировались для маскировки.
Клиенты
Конфигурация VLESS Reality обычно передаётся ссылкой вида vless://... или подпиской. Поддерживают её:
- Happ — iOS, Android, Windows, macOS, Android TV;
- v2RayTun — iOS, Android, Windows и др.;
- v2rayNG — Android;
- Streisand, FoXray, Shadowrocket — iOS;
- Nekoray / NekoBox, Hiddify, v2rayN — десктоп и мобильные платформы.
Важно, чтобы клиент был основан на свежей версии Xray-core или sing-box с поддержкой Reality.
Типичная архитектура
Типичная настройка Reality выглядит так:
-
Транспорт TCP + Reality + flow
xtls-rprx-vision. Самая проверенная связка: меньше признаков TLS-в-TLS и минимум накладных расходов. - Сайт для маскировки подбирают под IP-сеть сервера. Обычно выбирают ресурс с TLS 1.3 и HTTP/2, для которого трафик с такого адреса выглядит правдоподобно.
- Отдельный UUID на каждого пользователя. Так можно отключить одного клиента, не трогая остальных.
-
Несколько
shortId. Позволяет менять идентификаторы без перевыпуска всех конфигураций. - Выдача через подписку. Клиент сам обновляет конфигурацию, если параметры сервера меняются.
Итог
VLESS — простой и быстрый «конверт» для данных, Reality — способ сделать так, чтобы этот конверт выглядел как обычное посещение популярного сайта, а любая проверка сервера показывала настоящий сайт. Это не абсолютная защита, но на сегодня одна из самых практичных схем для сетей с DPI.
О нашем сервисе
Unlimited VPN построен на VLESS Reality.
- Серверы в Чехии.
- iOS, Android, Windows, macOS, Android TV — через Happ или v2RayTun.
- 3 дня бесплатно, без привязки карты.
- Бот: https://t.me/Vpn_UnlimitedBot
- Канал: https://t.me/UnlimitedVPN_rus
Буду рад вопросам по настройке Reality в комментариях — отвечу и тем, кто поднимает свой сервер.
Originally published by Dev.to Security. Aggregated on AIWithGhost for educational purposes — full credit and traffic to the original publisher.