2026-05-02

WireGuard vs Hysteria 2

Два UDP-протокола одного года рождения, разные философии. Разбираем что быстрее на практике, как ведут себя на потерях, и почему в РФ в 2026 обычный WireGuard уже не работает.

TL;DR

На стабильной сети без потерь WireGuard и Hysteria 2 идут вровень — у WireGuard даже чуть меньше overhead. Как только появляются потери пакетов (5% и выше — нормально для мобильного интернета), Hysteria 2 уходит в отрыв в 2-5 раз благодаря Brutal congestion control. Плюс к этому в России в 2026 обычный WireGuard распознаётся DPI и блокируется на сетевом уровне — нужен AmneziaWG (обфусцированная версия) или Hysteria 2. У Lunaire оба варианта в одной подписке.

Транспортный уровень — оба UDP, но стек разный

И WireGuard, и Hysteria 2 работают по UDP. На этом сходство заканчивается.

WireGuard — это самостоятельный L3-протокол поверх UDP. Каждый пакет — это шифрованный IP-фрейм с минимальным заголовком (~32 байта). Никакого congestion control внутри туннеля: WireGuard просто гонит датаграммы как есть и полагается на TCP-стек приложений внутри туннеля для управления потоком.

Hysteria 2 — построен поверх QUIC. QUIC — это полноценный транспортный протокол: мультиплексирование потоков, reliable delivery, congestion control, encryption — всё в одном слое поверх UDP. Hysteria 2 заменяет congestion control QUIC на собственный Brutal, плюс добавляет обфускацию Salamander.

Что это значит на практике. WireGuard — тонкий и быстрый для идеальной сети, но на потерях деградирует вместе с TCP внутри туннеля. Hysteria 2 толще (больше overhead на пакет, больше CPU), но умеет обрабатывать потери на собственном уровне без помощи TCP.

Congestion control — главное отличие

Это та черта, из-за которой Hysteria 2 в принципе появилась.

WireGuard congestion control как такового не имеет. Он передаёт пакеты, а скорость регулируется тем приложением, которое внутри туннеля. Если внутри HTTPS — это TCP Cubic или BBR ядра ОС. Если внутри QUIC — congestion control HTTP/3. WireGuard сам по себе нейтрален.

Это создаёт классическую проблему TCP-inside-VPN: TCP внутри туннеля видит потерю пакета (которая случилась в реальной сети, до VPN-сервера), считает её сигналом перегрузки и сбрасывает окно вдвое. На сети с 5% loss скорость падает в 3-5 раз. WireGuard ничего с этим не делает — он сам не понимает, потерян пакет или нет.

Hysteria 2 с алгоритмом Brutal ведёт себя иначе. Brutal получает от пользователя явный target bandwidth (например, «50 Мбит/с») и старается его держать, игнорируя packet loss как сигнал перегрузки. Единственный триггер для снижения скорости — рост RTT (настоящий признак забитого канала). На сети с 5-10% loss Brutal держит bandwidth почти на номинале.

Это даёт радикальную разницу на плохих сетях. Конкретные цифры из тестов:

  • Идеальная сеть, 0% loss — WireGuard и Hysteria 2 вровень. WireGuard может быть на 5-10% быстрее за счёт меньшего overhead.
  • Городской мобильный, 1-2% loss — WireGuard 50 Мбит/с, Hysteria 2 50 Мбит/с. Разница незначительна.
  • Перегруженный Wi-Fi или мобильный в движении, 5% loss — WireGuard 15-20 Мбит/с, Hysteria 2 45 Мбит/с. Разница 2-3x.
  • Плохой роуминг или метро, 10%+ loss — WireGuard 5-8 Мбит/с, Hysteria 2 35-40 Мбит/с. Разница 5x.

Поэтому Hysteria 2 особенно хорош для мобильного интернета, стриминга и голосовых звонков. Подробнее про это в статье «Discord через VPN лагает».

Скрытность от DPI

Тут разница ещё более жёсткая.

WireGuard в чистом виде — открытая книга для DPI. Первый байт handshake — это 0x01 (initiation message) или 0x02 (response). Это прописано в спецификации протокола, никакая «шифрованная обёртка» не помогает: даже если вы зашифруете весь поток, первые байты остаются распознаваемыми.

Российские ТСПУ умеют распознавать WireGuard-сигнатуру минимум с 2023 года. К 2026 это base-line — любой VPN на голом WireGuard блокируется на уровне сети практически у всех российских провайдеров.

Hysteria 2 маскируется под обычный QUIC-трафик (это HTTP/3, который ходит между Chrome и Cloudflare/Google миллиардами сессий в сутки). TLS 1.3 handshake идёт с реальным Let's Encrypt сертификатом, обфускация Salamander добавляет случайный padding в первые пакеты — JA3/JA4 fingerprint выглядит как у обычного HTTP/3-клиента.

Слабость Hysteria 2: QUIC сам по себе привлекает больше внимания у некоторых классификаторов, чем обычный HTTPS. На сетях с агрессивным QUIC-фильтрингом (некоторые корпоративные firewall) Hysteria может блокироваться. Решение — fallback на VLESS Reality (TCP/443), который выглядит как обычный HTTPS. Подробнее в статье «Hysteria 2 vs VLESS Reality».

AmneziaWG — WireGuard с обфускацией

Поскольку чистый WireGuard в РФ не работает, имеет смысл отдельно поговорить про AmneziaWG 2.0 — это форк WireGuard с антипаттерными параметрами. Совместим по криптографии, но handshake выглядит иначе:

  • Junk-пакеты (Jc, Jmin, Jmax) — перед настоящим handshake клиент шлёт несколько случайных UDP-датаграмм. DPI анализирует первые пакеты потока и видит мусор, а не WireGuard-сигнатуру.
  • Padding на пакеты (S1-S4) — каждый тип пакета получает случайный padding, что меняет распределение размеров пакетов. Поведенческие классификаторы не находят характерный для WireGuard паттерн.
  • Magic-заголовки (H1-H4) — изменены первые байты пакетов. Классическая сигнатура 0x01 / 0x02 исчезает.

AmneziaWG проходит DPI, но в плане скорости остаётся обычным WireGuard — congestion control нет, на потерях деградирует вместе с TCP внутри туннеля. Лучшая ниша AmneziaWG — это роутеры, где Hysteria 2 не поднять (sing-box не везде есть на старых прошивках), но WireGuard поддерживается нативно.

Скорость handshake

WireGuard handshake — 1 RTT для нового соединения. Клиент шлёт initiation, сервер отвечает response, дальше идут данные. На маршруте Москва-Амстердам (RTT ~40 мс) это ~40 мс до первого байта данных. Очень быстро.

Дополнительно WireGuard делает rekey каждые 2 минуты — пересогласовывает ключи для forward secrecy. Это ещё один handshake, но он происходит в фоне и не задерживает пользовательский трафик.

Hysteria 2 на новом соединении — 1 RTT для QUIC-handshake (TLS 1.3 over QUIC), плюс данные могут идти вместе с финальным пакетом handshake (0.5-RTT). На том же маршруте — 40-60 мс до первого байта. Чуть медленнее WireGuard из-за TLS, но в пределах погрешности.

Главное преимущество Hysteria 2 — 0-RTT resumption. Если вы недавно подключались к этому серверу, повторное подключение происходит без RTT — данные летят сразу вместе с первым пакетом. Это особенно полезно на мобильных сетях, где соединение часто обрывается и восстанавливается. WireGuard такого не умеет.

Безопасность

По уровню криптографии — паритет, оба соответствуют современным стандартам.

WireGuard использует Noise Protocol Framework:

  • ChaCha20-Poly1305 для шифрования данных
  • Curve25519 для key exchange
  • BLAKE2s для хеширования
  • HKDF для деривации ключей

Forward secrecy через периодический rekey каждые 2 минуты. Никаких legacy-алгоритмов, никаких настраиваемых ciphersuite — одна конфигурация на всех. Это и плюс (нет места для ошибок), и минус (нет гибкости).

Hysteria 2 использует TLS 1.3:

  • AES-256-GCM или ChaCha20-Poly1305 (выбирается по согласованию)
  • X25519 или secp256r1 для key exchange
  • SHA-256 / SHA-384 для хеширования

Forward secrecy через TLS 1.3 ephemeral keys на каждой сессии. Совместим с любыми современными TLS-стеками, можно использовать реальные сертификаты Let's Encrypt.

В обоих случаях стойкость шифрования на десятилетия вперёд при правильной реализации. Разница чисто в архитектуре, не в защищённости.

CPU и батарея

WireGuard заметно эффективнее по CPU. Минимальный стек, простая криптография, реализован в ядре Linux (kernel module), что даёт прямой доступ к hardware-ускорению ChaCha20.

Hysteria 2 — это userspace-процесс с полным TLS 1.3-стеком и собственной QUIC-логикой. CPU overhead в 2-3 раза выше, чем у WireGuard kernel-module. На мобильном устройстве это означает чуть быстрее садящуюся батарею при долгой работе VPN.

В цифрах: на iPhone 15 Pro WireGuard в фоне на 24 часа съедает ~3-4% батареи. Hysteria 2 — ~6-8%. Разница есть, но не катастрофическая. Для большинства задач не имеет значения.

Когда что выбирать

Берите WireGuard, если:

  • У вас домашняя VPN — свой сервер, статичный IP, нет DPI на маршруте.
  • VPN ставится на роутер (OpenWRT, Keenetic, AsusWRT). WireGuard там нативный, Hysteria 2 — нет.
  • Вы строите mesh-сеть (Tailscale, Headscale, Netbird) — все они на WireGuard.
  • Критична батарея на мобильном или CPU на встроенном устройстве (Raspberry Pi, домашний NAS).

Берите Hysteria 2, если:

  • Вы в России или другой стране с активным DPI. WireGuard в чистом виде там не работает.
  • Сеть нестабильна — мобильный интернет, кафе, перегруженный Wi-Fi. На потерях Hysteria 2 в разы быстрее.
  • Важен голос (Discord, Zoom, WhatsApp) или стриминг (YouTube 4K).
  • Хочется максимальной скрытности — Hysteria 2 маскируется под QUIC HTTP/3.

Берите AmneziaWG, если:

  • Нужен WireGuard на роутере, но в стране с DPI. AmneziaWG — компромисс: совместим с роутерами, но проходит фильтры.
  • Хочется простоты WireGuard-конфига плюс защита от DPI.

Почему стек важнее одного протокола

Идея «выбрать лучший протокол» в 2026 — устаревшая. Ни один протокол не покрывает все сценарии:

  • WireGuard блокируется DPI.
  • Hysteria 2 блокируется в сетях с QUIC-filtering.
  • AmneziaWG проходит DPI, но не вытягивает голос на потерях так же хорошо как Hysteria 2.
  • Reality (TCP) проходит куда угодно, но медленнее на голосе.

Правильный архитектурный ответ — несколько протоколов в одной подписке с auto-switch. Клиент тестирует состояние каждого, выбирает рабочий, переключается на лету. Подробнее этот подход разобран в «Как выбрать VPN в 2026».

Как это устроено в Lunaire

Мы собрали Lunaire ровно на этой логике. В одной подписке идут четыре протокола:

  • Hysteria 2 — primary для скорости и UDP. Brutal congestion control, обфускация Salamander.
  • VLESS Reality — fallback для сетей с QUIC-filtering. TLS 1.3 handshake под Microsoft/Apple/Cloudflare.
  • VLESS xHTTP packet-up — для самых жёстких сетей с поведенческой ML-классификацией.
  • AmneziaWG 2.0 — для роутеров и устройств без поддержки sing-box. WireGuard с полным антипаттерным набором.

Клиент Hiddify (или Happ на iOS) выбирает рабочий протокол автоматически. Если в твоей сети UDP режется — переключается на TCP-Reality. Если ноду засветили — балансировщик уводит на соседнюю. Подробнее как это всё настроить — в гайде по Hiddify.

Вывод

WireGuard и Hysteria 2 — не конкуренты, а инструменты под разные задачи. WireGuard — мастер простоты и эффективности на контролируемой сети. Hysteria 2 — спасатель в условиях DPI и нестабильного интернета. Выбор «что-то одно» — ложная дилемма, правильный современный VPN держит оба плюс ещё пару протоколов и переключается между ними сам.

В Lunaire это работает из коробки — все четыре протокола в одной подписке, auto-switch без ручных настроек. Бесплатный тариф DUSK 1 ГБ/день — чтобы проверить именно у тебя: @lunairevpn_bot.