Все статьи
Технологии
26 мин

REALITY: как протокол обходит ТСПУ и DPI Роскомнадзора

REALITY — это режим работы VLESS, который превратил Xray из «ещё одного VPN» в практически непробиваемое решение для стран с жёсткой интернет-цензурой. Принцип работы REALITY одновременно гениальный и парадоксально простой: вместо того чтобы прятать VPN-трафик, REALITY заставляет его выглядеть как трафик к настоящему сайту — например, к www.cloudflare.com. И не просто «выглядеть», а реально проксировать запросы к этому сайту, когда нужно. ТСПУ Роскомнадзора видит обычное HTTPS-соединение с настоящим Cloudflare-сертификатом, не находит ничего подозрительного и пропускает трафик. В этой статье — подробный разбор, как именно REALITY это делает, какие технические детали стоят за его эффективностью, и почему именно этот режим выбран в качестве основы VPN RUS Client.

Главные тезисы

REALITY использует настоящие TLS-сертификаты популярных сайтов (cloudflare.com, microsoft.com и т.д.) — не подделывает их и не использует свои. Активное зондирование возвращает пользователя на настоящий сайт, поэтому DPI не может отличить ваш VPN-сервер от обычного клона Cloudflare. Защищён от утечки SNI, замены TLS, снифинга. На сегодняшний день не имеет известных способов автоматической детекции.

Почему обычный TLS уже не помогает

До REALITY основным способом маскировки VPN был обычный TLS. Идея простая: VPN-трафик (например, VLESS или Trojan) заворачивается в TLS, и DPI видит «обычный HTTPS». Долгое время это работало. Но в 2022–2023 годах ТСПУ научились распознавать VPN-сервера через их TLS-fingerprints. Принципиальные слабости обычного TLS+VPN:

Самоподписанные сертификаты

VPN-серверы часто использовали самоподписанные cert-ы или Let's Encrypt с подозрительными доменами (типа vpn123.example.tk). DPI могла легко собрать список таких доменов и блокировать.

Несоответствие SNI и поведения

SNI клиента говорит «vpn.example.com», а сертификат сервера для другого домена. Несовпадение — флаг для DPI.

Активное зондирование

DPI отправляет тестовые запросы. Обычный VPN-сервер при некорректном handshake закрывает соединение или отвечает странно. Это и палит сервер.

Timing fingerprint

VPN-серверы отвечают на запросы быстрее, чем настоящие веб-сайты. Эта разница в задержке тоже обнаруживается.

REALITY решает все эти проблемы одновременно — за счёт принципиально нового подхода.

Как работает REALITY: пошагово

Представьте: вы запускаете VPN-клиент с REALITY-конфигом. Сервер находится по адресу 185.221.222.248. SNI в конфиге — www.cloudflare.com. Что происходит дальше?

1Клиент отправляет TLS ClientHello с SNI = cloudflare.com

Внешне это выглядит как обычная попытка открыть https://cloudflare.com. ТСПУ видит SNI «cloudflare.com», не блокирует — Cloudflare не в чёрных списках.

2Внутри ClientHello есть «секретный» X25519 публичный ключ

REALITY-клиент встраивает в TLS Client Random свой временный X25519-ключ. Этот ключ передаётся вместе с ClientHello, но выглядит как случайные байты — никаких отличий от обычного TLS-handshake.

3REALITY-сервер видит ClientHello, проверяет публичный ключ

На сервере REALITY с помощью своего приватного X25519 ключа дешифрует Client Random. Если расшифровка даёт корректную метку — это «свой» клиент. Иначе — чужой.

Клиент свой → переключаемся в VPN-режим

REALITY-сервер сам генерирует «фейковый» сертификат для cloudflare.com (используя ту же X25519-математику) и завершает TLS-handshake так, чтобы клиент видел корректный сертификат. Дальше — обычный VLESS-трафик внутри TLS.

Клиент чужой → проксируем на настоящий cloudflare.com

REALITY-сервер открывает TCP-соединение к настоящему cloudflare.com:443 и просто прокачивает байты в обе стороны. Чужой клиент (DPI-зонд, любопытный пользователь) видит настоящий Cloudflare с настоящим сертификатом и ничего не подозревает.

Защита от активного зондирования

Это, пожалуй, самая красивая часть REALITY. Активное зондирование — это когда DPI отправляет к подозрительному IP различные запросы и анализирует ответы. Раньше VPN-серверы реагировали странно (закрывали соединение, отвечали ошибкой, давали короткий timeout) — и это было прямой уликой.

REALITY делает по-настоящему гениальный финт: любой непрошеный запрос проксируется на настоящий cloudflare.com. Что это означает:

  • DPI отправляет HTTP-запрос → REALITY проксирует → получает страницу Cloudflare → возвращает её зонду
  • DPI пробует TLS-handshake → REALITY проксирует → получает реальный сертификат cloudflare.com → возвращает зонду
  • DPI анализирует timing → REALITY проксирует → задержки совпадают с реальным Cloudflare (потому что мы реально с ним разговариваем)

Зонд получает абсолютно идентичные ответы, как если бы он напрямую обращался к Cloudflare. Чтобы отличить наш сервер от настоящего Cloudflare, ТСПУ нужно знать заранее, что наш IP — не Cloudflare. Но IP-список Cloudflare публикуется и известен. А для других IP «маскировка под Cloudflare» работает идеально: DPI не может определить, кто за этим IP — реальный Cloudflare-сервер у частного хостера или REALITY-сервер.

REALITY и реальные TLS-сертификаты

Один из самых частых вопросов: «Где REALITY берёт сертификат для cloudflare.com? Это что, поддельный?»

Технически REALITY не имеет приватного ключа Cloudflare. Подделать сертификат cloudflare.com нельзя — нет приватного ключа. Но REALITY и не подделывает! Вот трюк:

Как REALITY формирует сертификат

При первом подключении REALITY-сервер реально устанавливает TLS-соединение с настоящим cloudflare.com и получает оттуда настоящий сертификат. Этот сертификат REALITY кэширует и использует в TLS-handshake с клиентом. Подпись делает не Cloudflare (мы не имеем приватного ключа), а REALITY-сервер с использованием ECDH-операций на основе своего X25519-приватного ключа и публичного ключа клиента.

Клиент НЕ проверяет валидность подписи в общепринятом смысле (т.е. не сверяет с CA-цепочкой). Вместо этого он проверяет, что подпись сгенерирована тем же X25519-ключом, которым он сам подписал Client Random. Это и есть «доказательство» что сервер «свой».

С точки зрения DPI — TLS-handshake идеален: видны корректные TLS-расширения, корректный сертификат, корректная подпись. Никаких аномалий.

XTLS Vision: ускоритель

Vision — это flow-режим VLESS, который специально разработан для использования вместе с REALITY (или обычным TLS). Главная идея: не шифровать TLS-в-TLS.

Когда вы открываете https://google.com через VPN, происходит так:

  • Браузер устанавливает TLS с google.com (внутреннее шифрование)
  • Этот зашифрованный поток идёт к VPN-клиенту
  • VPN-клиент шифрует его в свой TLS-туннель к VPN-серверу
  • VPN-сервер расшифровывает свой TLS, видит уже зашифрованный TLS google.com, передаёт google.com
  • В обратную сторону — наоборот

Это «двойное шифрование» — медленное и неэффективное. Vision определяет, что внутри туннеля идёт уже зашифрованный TLS, и не шифрует ещё раз. Внешнее шифрование снимается, остаётся только внутреннее (которое и так есть). Скорость растёт на 30–80% в зависимости от типа трафика.

REALITY против ShadowSocks, Trojan, Hysteria

REALITY — не единственный современный обходной протокол. Сравним с другими:

ПротоколМаскировкаАктивное зондированиеВ РФ 2026
VLESS+REALITYCloudflareЗащищёнРаботает
ShadowSocks 2022Случайные байтыУязвимЧастично
Trojan + TLSTLSУязвимЗаблокирован избирательно
Hysteria 2 (UDP)QUICЧастично защищёнРаботает на части провайдеров
VMess + WS+TLSTLSУязвимЗаблокирован массово

REALITY в VPN RUS Client

В VPN RUS Client REALITY — основной режим для двух типов подключения:

🇳🇱 NL Direct REALITY (185.221.222.248:443)

Основной REALITY-сервер в Амстердаме. SNI: www.cloudflare.com. Используется для премиум-доступа и в подписке как опция «🇳🇱 NL Stealth (REALITY)».

🇸🇪 SE REALITY (193.42.39.185:443) — для Windows-клиента

Эксклюзивный сервер в Стокгольме для пользователей нашего фирменного Windows-клиента. SNI: www.cloudflare.com. Самый низкий пинг от Москвы (~25–35 мс).

Тот же приватный ключ X25519, тот же shortId — это позволяет одному UUID работать на обоих REALITY-серверах. Если в подписке указано несколько REALITY-эндпоинтов, клиент сам выбирает доступный.

FAQ про REALITY

Заблокирует ли РКН REALITY в будущем?

Чтобы заблокировать REALITY, ТСПУ нужно либо найти признак, отличающий REALITY-сервер от настоящего Cloudflare, либо начать резать сам Cloudflare. Первое — пока не нашли (REALITY очень тщательно прячет все артефакты). Второе — невозможно политически (Cloudflare обслуживает массу сайтов в рунете). Поэтому REALITY на сегодня — самое устойчивое решение.

Можно ли использовать REALITY с любым доменом?

Технически — с любым публичным сайтом, который поддерживает TLS 1.3 и не имеет HSTS-pinning. На практике используют сайты, которые: (1) используют TLS 1.3, (2) не «упадут» от случайных запросов, (3) не вызовут подозрений у DPI. cloudflare.com, microsoft.com, apple.com — типичные кандидаты.

REALITY использует ваш Cloudflare-аккаунт?

Нет. REALITY не имеет никакого отношения к Cloudflare-аккаунтам. Просто использует адрес www.cloudflare.com как «маску». Cloudflare об этом не знает и не должен знать. Это абсолютно одностороннее использование публичного TLS-handshake.

Какие приложения поддерживают REALITY?

Все Xray-совместимые: Hiddify Next, v2rayN, v2rayNG, NekoBox, NekoRay, Streisand, Shadowrocket, FairVPN, sing-box. Также — наш фирменный Windows-клиент. NordVPN, ExpressVPN, Surfshark и другие классические VPN-сервисы REALITY не поддерживают.

Сколько серверов используют REALITY в мире?

Точная статистика недоступна, но по оценкам разработчиков Xray — десятки тысяч REALITY-серверов работают одновременно. Особенно много в Китае (где это основной способ обхода файрвола), в Иране, в Беларуси, в Турции и в России. Совокупная аудитория — миллионы пользователей.

Заключение

REALITY — это не «ещё один протокол», а принципиально другой подход к маскировке. Вместо того чтобы прятать VPN-трафик, REALITY заставляет его выглядеть и вести себя как настоящий трафик к крупному CDN. ТСПУ Роскомнадзора не может отличить REALITY-сервер от обычного Cloudflare-сервера, не имея инсайдерской информации. На сегодняшний день это самое устойчивое к блокировкам решение для России.

VPN с REALITY-маскировкой

VPN RUS Client использует REALITY на серверах в Нидерландах и Швеции. Тестовый доступ на 24 часа без оплаты — попробуйте сами.

Связанные статьи