2026-04-05
Как устроены современные VPN-протоколы
Разбор без жаргона: TLS, QUIC, congestion control, handshake — из чего состоит любой VPN в 2026 году.
Из чего вообще состоит VPN
VPN-соединение — это не один монолитный механизм, а стек из нескольких слоёв. Нижний — транспорт (UDP или TCP). Над ним —криптографический handshake (TLS 1.3 в современных протоколах). Над ним — туннель (VLESS, Hysteria, WireGuard-формат пакетов). Над ним — congestion control(алгоритм управления скоростью). И наконец — маскировка(Reality, obfs, xHTTP).
Разные протоколы выбирают разные комбинации. WireGuard: UDP + своя лёгкая крипта (ChaCha20) + свой формат пакетов + простой congestion control + без маскировки. OpenVPN: TCP или UDP + TLS 1.2 + свой туннель + TCP Cubic + без маскировки. Hysteria 2: UDP + TLS 1.3 через QUIC + свой туннель + Brutal + маскировка через QUIC. VLESS Reality: TCP + TLS 1.3 с fake SNI + простой VLESS-туннель + BBR + максимальная маскировка.
QUIC — что это такое
QUIC — транспортный протокол, который Google разработал в 2012 году и стандартизировали в IETF в 2021 (RFC 9000). Главная идея: объединить в один протокол всё, что делают TCP + TLS + HTTP/2 вместе. QUIC работает поверх UDP, но даёт при этом гарантии доставки, шифрование, мультиплекс потоков.
Преимущества QUIC над TCP+TLS: в три раза быстрее handshake (1 RTT vs 3 RTT); 0-RTT resumption при повторном подключении; stream multiplexing без head-of-line blocking (в TCP потеря одного пакета блокирует весь поток; в QUIC — только конкретный stream); обновление congestion control без изменения ядра ОС (в TCP это требует пересборки ядра Linux).
TLS 1.3 vs TLS 1.2
TLS 1.3 стандартизирован в 2018 году и сейчас используется в ~80% HTTPS-соединений. Ключевое отличие от 1.2 — drastically упрощённый handshake. В 1.2 было 2 round-trip до первого байта данных; в 1.3 — 1 round-trip, с поддержкой 0-RTT для повторных подключений.
Для VPN это важно по двум причинам. Первое — скорость reconnection. На мобильном интернете соединения рвутся часто; TLS 1.3 с 0-RTT даёт восстановление без заметной для пользователя паузы. Второе — fingerprinting. TLS 1.2 handshake имел больше параметров, которые можно было fingerprint-ить (JA3). В 1.3 параметров меньше, и различия между обычным браузером и VPN-клиентом становятся минимальными.
Congestion control — алгоритмы управления скоростью
Эта часть — сердце производительности. Congestion control отвечает за то, сколько данных отправлять в сеть в единицу времени: слишком много — потери пакетов и откат, слишком мало — простой канала.
TCP Cubic (стандарт Linux с 2006) — увеличивает окно отправки по кубической кривой, при потере — сбрасывает до половины. Работает стабильно в предсказуемых сетях, плохо на lossy.
TCP BBR (Google, 2016) — не использует loss как сигнал, вместо этого измеряет bandwidth × RTT и отправляет столько, сколько помещается в «трубе» без переполнения буфера. Работает лучше Cubic на всех сетях, особенно на lossy.
Brutal (Hysteria, 2022) — ещё агрессивнее BBR. Игнорирует loss полностью, держит user-specified bandwidth. Лучший выбор для VPN на нестабильных сетях, но менее вежлив к другим соединениям на канале.
Почему WireGuard — не предел
WireGuard — отличный протокол по меркам 2018 года (год релиза). Минимум overhead, простой формат пакетов, современная криптография. Но у него есть архитектурные ограничения, которые в 2026-м ощущаются.
Первое — фиксированный формат пакетов без возможности менять параметры из userspace. Переделать congestion control нельзя без изменения ядра. Второе — UDP-only без fallback на TCP. Третье — нет встроенной маскировки, WireGuard-трафик легко детектируется по fingerprint. Четвёртое — статический handshake, нет 0-RTT resumption.
Все эти ограничения Hysteria 2 решает: userspace-реализация с гибким congestion control, маскировка под QUIC, 0-RTT через QUIC, возможность fallback на TCP. Lunaire не использует WireGuard по этим причинам — Hysteria 2 даёт ту же простоту эксплуатации при лучшей производительности и скрытности.
Маскировка — obfs, Reality, xHTTP
Маскировка — отдельный слой, который пытается сделать VPN-трафик похожим на что-то обычное. Три основных подхода.
obfs (устарело) — случайные байты с определённой энтропией, чтобы трафик не выглядел как что-то узнаваемое. Проблема — современные классификаторы распознают obfs по характеристикам энтропии. В Hysteria 1 был obfs, в Hysteria 2 его убрали.
Reality (2023, Xray) — новый подход. Вместо попытки выглядеть «как ничего» пытается выглядеть как конкретный существующий сайт. При handshake сервер отдаёт настоящий сертификат Microsoft или Apple, и клиент выглядит как обычный пользователь этого сайта.
xHTTP (2024) — туннель поверх HTTP/2, который визуально неотличим от обычных HTTP/2-запросов. Менее скрытный чем Reality, зато работает через CDN и Cloudflare.
Что использовать в 2026
Для собственных серверов (self-hosted): Hysteria 2 как основной протокол + VLESS Reality для ситуаций с заблокированным UDP. Для подписочных сервисов — выбирайте те, которые поддерживают оба протокола сразу, например Lunaire. Классические WireGuard-only сервисы в 2026 году постепенно становятся legacy-решением.