AmneziaWG: что такое obfuscation и почему провайдеры не блокируют
AmneziaWG прячет WireGuard под джанк-пакетами и переменной структурой. Разбираем какие именно параметры за что отвечают.
Обычный WireGuard блокируется потому, что его первый пакет (Handshake Initiation) имеет фиксированную структуру: 4 байта type=0x01, 4 байта sender_id, 32 байта unencrypted_ephemeral, и так далее. Эту последовательность DPI запоминает и ловит.
AmneziaWG добавляет несколько слоёв шума, чтоб эту последовательность размыть.
Параметр Junk (Jc, Jmin, Jmax)
Перед началом реального WireGuard-handshake клиент шлёт Jc (junk count) случайных пакетов случайной длины от Jmin до Jmax байт. DPI видит мусор, который никуда не ведёт — и теряет «зацепку».
Типично: Jc=4, Jmin=40, Jmax=70. Можно настраивать индивидуально.
Параметры S1, S2 — байты-наполнители
В Handshake Initiation добавляются S1 случайных байт до UDP-payload, и S2 байт после. Сдвигает позицию характерных байтов, чтобы DPI-сигнатуры «не цеплялись».
Параметры H1-H4 — изменение header magic
WireGuard в первом байте имеет тип пакета: 1=initiation, 2=response, 3=cookie, 4=data. DPI может смотреть «есть UDP-пакет с первым байтом 0x01 → возможно, WireGuard initiation».
AmneziaWG позволяет указать кастомные значения H1-H4 (32-битные числа) вместо стандартных 1-4. Каждый сервер может иметь свои уникальные H1-H4 → создать «одно правило DPI для всех AmneziaWG» нельзя.
Что это даёт
- Нет фиксированной сигнатуры в первом пакете — DPI ничего не может матчить.
- Каждое развёртывание уникально — нельзя добавить одно правило и накрыть всех.
- Внешне трафик — это «странный UDP-поток с шифрованными данными». Таких потоков в интернете полно — игры, голос, видео-стримы. Блокировать их «по подозрению» — это положить много легитимного трафика.
Криптография
Внутри AmneziaWG использует ту же ChaCha20-Poly1305 (для AEAD) и X25519 (для key exchange), что обычный WireGuard. Скорость почти такая же — обфускация работает только в момент handshake, потом идёт чистый WireGuard.
Минусы
- Чуть выше нагрузка на старте соединения за счёт junk-пакетов.
- Не работает с обычными WireGuard-клиентами — нужен либо официальный Amnezia-клиент, либо наш WGate, либо AmneziaWG-aware сборка WireGuard.
WProxy использует AmneziaWG только в Android-приложении WGate. Параметры obfuscation мы подбираем автоматически под текущую ситуацию с блокировками — вам не надо настраивать руками.
Один аккаунт — пять протоколов
MTProto, Hysteria, VLESS, AmneziaWG и Whitelist — пять протоколов под разные задачи, каждый подключается отдельно. Регистрация бесплатная, на старте хватит 100 ₽ чтобы попробовать.
Приложение WGate для Android
AmneziaWG и Whitelist-VPN в один тап. Только Android.