AmneziaWG работает в РФ
WireGuard + обфускация · Amnezia VPN · 2023 → 2024 → …
TL;DR: форк WireGuard от команды Amnezia VPN, где к оригиналу добавлена обфускация handshake. ТСПУ не может опознать сигнатуру → соединение проходит. Работает там, где обычный WG уже нет.
Что это
Amnezia VPN — российский open-source проект (GitHub: amnezia-vpn/amnezia-client), запущен в 2020 как self-hosted VPN. В 2023 они выкатили AmneziaWG — свой форк ядра WireGuard с параметрами обфускации.
Основная задача — сохранить всю крипто-математику WireGuard (Curve25519, ChaCha20, Noise), но замаскировать её так, чтобы ТСПУ не мог опознать пакеты по сигнатуре.
Что добавили к WG (версия 1.5, 2023)
Jc — junk packet count (сколько мусорных пакетов слать до реального handshake)
Jmin, Jmax — минимальный и максимальный размер мусора
S1, S2 — размер junk prefix внутри handshake init/response пакетов (сбивает фиксированные 148/92 байта)
H1, H2, H3, H4 — кастомные magic bytes для типов пакетов (вместо 0x01, 0x02, 0x03, 0x04)
Jmin, Jmax — минимальный и максимальный размер мусора
S1, S2 — размер junk prefix внутри handshake init/response пакетов (сбивает фиксированные 148/92 байта)
H1, H2, H3, H4 — кастомные magic bytes для типов пакетов (вместо 0x01, 0x02, 0x03, 0x04)
Что стало в версии 2.0 (2024)
- I1 — I5 — special messages, генерируемые сервером и клиентом по договорённости. Дополнительно путают DPI.
- Более сложные junk-паттерны (не просто random, а имитация других протоколов).
- Randomization of ping intervals — keepalive-пакеты идут не строго через 25 сек, а с джиттером.
- Улучшенный handshake retry с exponential backoff.
- Поддержка мультиплекса через один UDP-порт (несколько peers маскируются под один поток).
Пример конфига
[Interface] PrivateKey = ... Address = 10.8.0.2/24 DNS = 1.1.1.1 # AmneziaWG-специфичные параметры Jc = 7 # 7 junk packets перед handshake Jmin = 50 # каждый мусорный пакет 50-1000 байт Jmax = 1000 S1 = 86 # junk prefix 86 байт в init (148+86 ≠ 148) S2 = 574 # junk prefix 574 байт в response H1 = 1234567890 # свой magic byte для init H2 = 2345678901 # для response H3 = 3456789012 # для cookie H4 = 4567890123 # для data [Peer] PublicKey = ... Endpoint = 1.2.3.4:51820 AllowedIPs = 0.0.0.0/0
Как это ломает ТСПУ
Для ТСПУ пакеты больше не похожи на WG:
- Первый байт — случайное число (по H1..H4), а не 0x01/02/03/04.
- Размеры первых пакетов — случайные, S1/S2 добавляют мусор, никакие 148/92 не встречаются.
- Перед handshake летит Jc пакетов мусора — ТСПУ видит какой-то UDP-шум, статистика ломается.
- Сигнатура-детектор из /wg просто не срабатывает.
Как использовать
- Клиент: Amnezia VPN — приложения для Windows, macOS, Linux, iOS, Android. Или
amneziawg-toolsв CLI (forkwg-tools). - Сервер: ставится через
amnezia-serverодной командой на VPS. Поддерживает и обычный WG, и AWG одновременно. - Совместимость: AWG-клиент может подключиться только к AWG-серверу. Обычный WG-клиент к AWG-серверу — не сможет, потому что не знает H1..H4/S1/S2/Jc параметров.
- Параметры H1-H4, S1, S2, Jc/Jmin/Jmax — должны совпадать на клиенте и сервере. Задаются один раз при генерации конфига.
Ограничения
- Оверхед по трафику: junk-пакеты и prefix-мусор жрут ~5-15% лишнего.
- Немного медленнее handshake — плюс несколько пакетов мусора перед реальным.
- Клиент AWG не совместим с обычным WG-сервером (Endpoint только на AWG).
- ТСПУ теоретически может научиться детектить и AWG (по паттернам мусора). Пока что — работает.
Что делает Amnezia дальше
Активно развивается: релиз 2.0 в 2024, готовят 2.1 с ещё более гибкой конфигурацией. Обсуждают:
- Имитация конкретных протоколов (WhatsApp voice, DNS-over-UDP) в junk-паттернах.
- Поддержка QUIC-транспорта поверх AWG.
- Автоматическая ротация H-параметров через шифрованный канал.
Итог: AmneziaWG — примерно единственный VPN «в стиле WireGuard», который в 2026 работает в РФ из коробки без хитрых настроек. Простое, элегантное, эффективное решение. Собранное командой, которая живёт под этим цензурным режимом и знает что делать.