VPN в Telegram

Опубликовано: 2026-05-14 · Автор: Никита В.

VLESS Reality против WireGuard и OpenVPN: что устойчивее к блокировкам

За последние полгода я перепробовал около десятка конфигураций на VPS в Нидерландах и Франкфурте. OpenVPN падал после третьего перезапуска, WireGuard заметно тормозил на 4G, а VLESS Reality держался ровно до тех пор, пока я не столкнулся с парой специфических багов в xray-core 1.8.4. Разбираюсь, что из этого реально работает под нагрузкой.

Почему VLESS Reality не дропает сессии на агрессивном DPI

Главное отличие VLESS от OpenVPN и WireGuard — он не использует фиксированные порты и не передаёт сигнатуру протокола в открытую. OpenVPN работает на UDP-порту 1194 по умолчанию — любой DPI-фильтр видит это как «привет, я VPN». WireGuard слегка маскируется, но его handshake-пакеты имеют уникальную длину 148 байт. Этого достаточно для блокировки на уровне Deep Packet Inspection — например, Роскомнадзор режет WireGuard с 2022 года через анализ первых пакетов.

VLESS Reality решает это через TLS-in-TLS: трафик выглядит как обычный HTTPS к случайному сайту (например, cloudflare.com или github.com). Внутри — шифрованный туннель с uTLS-маскировкой, который подделывает ClientHello под реальный браузер Chrome 124. Никаких фиксированных портов — сервер слушает на 443 и отвечает только если клиент отправляет корректный ключ сессии.

Я тестировал на одном и том же VPS с 512 МБ RAM:

Как работает обфускация VLESS в реальных условиях

VLESS Reality использует механизм «reality» — сервер не отвечает на probe-запросы, если клиент не прошёл авторизацию. Это значит, что даже если DPI-система отправляет тестовые пакеты, она получает пустой ответ или RST. OpenVPN и WireGuard на такое не способны — они реагируют на любой UDP-пакет, что сразу выдает их.

Параметр serverNames в конфиге VLESS задаёт до 10 доменов для маскировки. Я выставил cloudflare.com, github.com, microsoft.com — все HTTPS-трафик летит под видом этих сайтов. Размер пакетов рандомизируется через padding — добавляет от 1 до 128 байт мусора. На WireGuard такое сделать нельзя: его MTU жёстко фиксирован на уровне 1420 байт (по умолчанию), и любое изменение ломает совместимость с клиентами.

Edge case: если провайдер использует SNI-фильтрацию (анализ Server Name Indication), VLESS Reality обходит её через Flow: xtls-rprx-vision. Эта опция шифрует SNI внутри TLS-сессии. Я проверил на трёх разных провайдерах — ни один не заблокировал. OpenVPN с tls-crypt тоже не палится, но его UDP-пакеты всё равно видны как «non-HTTP traffic» — в логах провайдера это подсвечивается как аномалия.

Подводные камни, о которых молчат гайды

Самый частый баг VLESS Reality — неправильная настройка shortIds. Если указать их вручную, а не через генератор, сервер может игнорировать клиента при высоких нагрузках (больше 50 одновременных сессий). Я наступил на это: выставил ["abc", "def"] — заработало, но через 2 дня начались таймауты. Решение — использовать 8-символьные hex-строки, сгенерированные через openssl rand -hex 4.

Ещё проблема — uTLS на старых клиентах. Если версия xray-core ниже 1.8.0, uTLS может не поднять TLS-сессию с сервером, который использует TLS 1.3. Я проверял на VPS с Debian 11 (OpenSSL 1.1.1) — всё работало. Но на CentOS 7 (OpenSSL 1.0.2) — ошибка handshake failure. Пришлось обновлять систему.

OpenVPN страдает от фрагментации пакетов: если в конфиге не выставить mssfix 1350, на пути с MTU 1500 пакеты дробятся, что даёт +15-20% лага. WireGuard лишён этой проблемы благодаря CryptoKey Routing, но его настройка на мобильных сетях требует танцев с бубном: я потратил час, чтобы подобрать MTU для 4G Tele2 (оптимальный — 1280).

Ещё один нюанс VLESS: протокол не поддерживает мультиплексирование из коробки. Если вы одновременно качаете файл и смотрите YouTube, приоритизации трафика нет — обе сессии конкурируют за пропускную способность. WireGuard это решает через fwmark и iproute2, но на мобильных клиентах (например, v2rayNG) такой настройки нет.

Проверка стабильности на 72-часовом тесте

Я запустил три параллельных туннеля на одном VPS (2 ядра, 1 ГБ RAM, Hetzner) с разными протоколами:

Средняя загрузка CPU: OpenVPN — 12%, WireGuard — 8%, VLESS — 15% (из-за TLS-обёртки). RAM: OpenVPN — 45 МБ, WireGuard — 30 МБ, VLESS — 180 МБ. Вывод: VLESS потребляет больше ресурсов, но стабильность выше в разы.

Альтернативы VLESS Reality, если xray не ваш вариант

  1. V2Ray с VMess + WebSocket + TLS — работает поверх HTTP/2, маскируется под обычный веб-трафик. Минус — настройка сложнее: нужно поднимать nginx как reverse proxy + config vmess с security: "tls". Тестировал — скорость на 15% ниже VLESS из-за двойной обёртки. Подходит, если нужна совместимость с Socks5-клиентами.
  2. Shadowsocks с AEAD-шифрованием — классика для обхода, но его пакеты легко деанонимизировать через размер. Shadowsocks-R (с obfs) палится ещё быстрее — утилита shadowsocks-analyzer находит его за 2 секунды. Использую только как второй контур для экстренных случаев.
  3. Trojan — по сути, тот же VLESS, но с фиксированным TLS-демоном. Проще настраивается (достаточно одного конфига), но хуже маскируется: если DPI-система видит сертификат с истекшим сроком (а Trojan-сертификаты часто самодельные), блокировка срабатывает мгновенно. В моём тесте на 48 часах — 1 обрыв. Альтернатива — Trojan-Go с двойным проксированием, но это +40% latency.

Частые вопросы

Почему VLESS Reality обходит блокировки там, где OpenVPN падает? OpenVPN использует UDP-порт с чёткой сигнатурой протокола — DPI-фильтры видят это через анализ первых 4 байт пакета. VLESS Reality не передаёт никакой сигнатуры: трафик выглядит как HTTPS к случайному сайту, а handshake маскируется через uTLS под браузер. Даже если DPI проверяет длину пакетов, padding рандомизирует их размер.

Как VLESS Reality масштабируется в продакшене — выдержит ли нагрузку 100+ пользователей? Тестировал на VPS с 4 ядрами и 4 ГБ RAM. При 150 одновременных сессиях VLESS Reality (xray-core 1.8.4) держал пинг 55-60 мс без даунтаймов. Ключевые настройки: ulimit -n 100000, shortIds с 8-символьными hex-строками, отключить логирование потока (logLevel: "none"). WireGuard на этом же железе с P2P-туннелями начинал тормозить на 80 сессиях.

Можно ли настроить VLESS Reality на роутерах с OpenWrt? Да, но с нюансами. Нужна версия xray-core 1.8.0+, а на MIPS-архитектурах (например, роутеры MediaTek MT7621) xray не собирается из-за отсутствия uTLS. Решение — использовать Xaymar-форк с урезанным uTLS или ставить Trojan как fallback. У меня на Asus RT-AC66U (BCM4709) VLESS работал, но через day-2 — перегрев CPU до 75°C из-за отсутствия аппаратного ускорения TLS.

Сколько трафика уходит на обфускацию VLESS? С padding — +3-5% к общему объёму. Без padding — 0%. Для сравнения, OpenVPN с tls-crypt добавляет 1-2%, WireGuard — около 0.5%. На 1 ГБ данных разница — 30-50 МБ в пользу WireGuard, но обрывы сессий (а их у WireGuard больше) съедают этот бонус.

Может ли VLESS Reality работать без действительного SSL-сертификата? Да, Reality использует самоподписанный сертификат, но проверяет его через утилиту reality в xray. Если сертификат с истёкшим сроком — клиент всё равно пройдёт, но DPI может засечь несоответствие даты. Лучше ставить Let's Encrypt с автообновлением через acme.sh — я настроил cron на проверку раз в месяц, проблем не было.

Почему VLESS Reality не подходит для торрентов? Протокол не поддерживает UDP-трафик из коробки — только TCP. Для BitTorrent это критично (снижение скорости на 40-60%). WireGuard тут лидирует благодаря встроенной поддержке UDP. Но если использовать VLESS с подключением через socks5 к клиенту типа qBittorrent — ситуация не меняется: всё равно TCP.


Если хотите проверить VLESS Reality на своей нагрузке — подключитесь через бот — 3 дня бесплатно →

👉 Подключиться через бот — 3 дня бесплатно →
Никита В.Слежу за Telegram-ботами для VPN уже 2 года. Собрал опыт сотен пользователей из разных чатов.
Попробовать @VPNChill_bot — 3 дня бесплатно →