Что такое AmneziaWG и зачем он нужен
AmneziaWG — это форк протокола WireGuard, разработанный командой Amnezia для обхода глубокого анализа трафика (DPI). Первая версия появилась в 2023 году и позволяла маскировать handshake с помощью мусорных пакетов и изменения размеров пакетов. Однако к 2025 году DPI-системы научились распознавать такие паттерны по статистическим характеристикам: размерам пакетов, временным интервалам и фиксированным заголовкам.
Версия 2.0, анонсированная в марте 2025 года, делает следующий шаг — от простой маскировки к полной мимикрии под легитимные протоколы. Теперь трафик AmneziaWG может выглядеть как DNS-запросы, QUIC-соединения (HTTP/3) или SIP-звонки. Это достигается за счёт отправки перед каждым handshake специальных сигнатурных пакетов, которые имитируют начало реального протокола.
AmneziaWG 2.0 поддерживается в клиенте AmneziaVPN для десктопов и Android (self-hosted), а также доступен в виде модуля ядра Linux. Для пользователей Free и Premium пока используется версия 1.5, но поддержка 2.0 планируется позже.
Ключевые нововведения AmneziaWG 2.0
Версия 2.0 добавляет несколько важных механизмов, которые в совокупности делают трафик практически неотличимым от обычного интернет-трафика.
Signature packets (i1–i5) — до пяти специальных пакетов, отправляемых перед каждым handshake. Они имитируют начало легитимного протокола: например, первые байты DNS-запроса или QUIC Initial. DPI видит знакомый паттерн и пропускает трафик, не проверяя, что идёт дальше.
Расширенный padding (S3, S4) — в первой версии можно было менять только размеры handshake-пакетов (S1, S2). Теперь добавлен padding для cookie reply (S3) и, что важнее, для всех транспортных data-пакетов (S4). Это позволяет скрыть характерные размеры пакетов WireGuard, которые раньше были предсказуемыми.
Диапазонные заголовки (H1–H4) — вместо фиксированных значений, которые DPI мог запомнить, теперь можно задавать диапазоны. Для каждого пакета случайно выбирается значение из диапазона, что делает заголовки уникальными. Например, H4 может иметь диапазон от 1,7 до 1,8 миллиарда — 100 миллионов вариантов.
Как работают сигнатурные пакеты (i1–i5)
Сигнатурные пакеты — это «маскировка» перед настоящим handshake. Они отправляются только если настроен i1, иначе сохраняется обратная совместимость с версией 1.0.
Каждый пакет описывается на языке CPS (Custom Protocol Signature). CPS позволяет собирать пакет из тегов:
**— вставить точные байты (например, магические байты протокола);- `` — добавить timestamp (4 байта Unix time);
- `` — добавить N случайных байт;
- `` — добавить N случайных букв/цифр;
- `` — добавить N случайных цифр.
Пример сигнатуры QUIC: i1 = **. Здесь 0xc7 — тип QUIC Initial, 0x00000001 — версия QUIC v1, затем 8 случайных символов для Connection ID, timestamp и 50 случайных байт payload. DPI видит начало QUIC-пакета и пропускает его.
Важно: сигнатурные пакеты отправляются только перед handshake, который происходит раз в две минуты. Основной трафик (data-пакеты) маскируется с помощью S4 и H4.
Padding и диапазонные заголовки: детали
Padding (добавление случайных байт) — это способ скрыть истинные размеры пакетов. В WireGuard каждый тип пакета имеет фиксированный размер: handshake init — 148 байт, response — 92, cookie reply — 64, data — переменный, но часто кратный 16. DPI может использовать эти размеры для идентификации.
AmneziaWG 2.0 добавляет:
- S1 — padding к handshake init (было в 1.0);
- S2 — padding к handshake response (было в 1.0);
- S3 — padding к cookie reply (новое);
- S4 — padding к каждому data-пакету (новое, самое важное).
Пример конфигурации: S1 = 68, S2 = 149, S3 = 32, S4 = 16. Значения задают количество случайных байт, добавляемых к стандартному размеру.
Диапазонные заголовки H1–H4 заменяют фиксированные 4-байтовые идентификаторы типа пакета. В стандартном WireGuard: Type=1 (handshake init), Type=2 (response), Type=3 (cookie), Type=4 (data). AmneziaWG 2.0 позволяет задать диапазон, например H1 = 471800590-471800690. При отправке выбирается случайное значение, при приёме — принимается любое из диапазона. Важно: диапазоны H1–H4 не должны пересекаться, иначе невозможно определить тип пакета.
Порядок отправки пакетов в AmneziaWG 2.0
Понимание последовательности пакетов помогает правильно настроить обфускацию. При каждом handshake (раз в 2 минуты):
- Отправляются сигнатурные пакеты i1→i2→i3→i4→i5 (если настроены);
- Затем junk-пакеты (мусорные) в количестве Jc (случайное от Jmin до Jmax);
- Handshake init с padding S1 и заголовком H1;
- Handshake response с padding S2 и заголовком H2.
При нагрузке на сервер (когда сервер отправляет cookie reply) — пакет с padding S3 и заголовком H3.
Весь data-трафик (постоянно) — каждый пакет с padding S4 и заголовком H4 (случайное значение из диапазона).
Ключевые моменты:
- i1–i5 отправляются только если настроены;
- junk-пакеты отправляются всегда перед handshake;
- S4 применяется к каждому data-пакету, что критично для маскировки основного трафика;
- H1–H4 с диапазонами делают каждый пакет уникальным.
Установка AmneziaWG 2.0 на свой сервер
Развернуть собственный VPN с AmneziaWG 2.0 можно двумя способами: через официальное приложение AmneziaVPN или с помощью установочного скрипта.
Официальный способ: скачайте AmneziaVPN версии 4.8.12.9 или выше, добавьте свой сервер (VPS) и выберите протокол AmneziaWG. Приложение само установит необходимые компоненты и сгенерирует конфигурацию. Дополнительная настройка не требуется.
Скрипт-установщик (например, bivlked/amneziawg-installer) позволяет поднять сервер одной командой на чистом VPS с Ubuntu или Debian. Скрипт:
- устанавливает модуль ядра AmneziaWG;
- настраивает firewall (UFW) и Fail2Ban;
- включает форвардинг;
- создаёт первого клиента и выводит QR-код и vpn-ссылку.
Команда установки:
wget -O install_amneziawg.sh https://github.com/bivlked/amneziawg-installer/releases/latest/download/install_amneziawg.sh
chmod +x install_amneziawg.sh
sudo bash ./install_amneziawg.shСкрипт поддерживает Ubuntu 24.04, Debian 12/13, а также ARM-платформы (Raspberry Pi, Hetzner CAX, Oracle Ampere). Требования к VPS: 1 vCPU, от 512 МБ RAM, 5 ГБ диска.
Настройка клиентов и управление подключениями
После установки сервера необходимо добавить клиентские устройства. В официальном приложении AmneziaVPN это делается через импорт конфигурации (файл .conf, vpn-ссылка или QR-код).
В скрипте-установщике управление клиентами осуществляется командами:
- добавить клиента:
./amneziawg.sh add-client; - удалить клиента:
./amneziawg.sh remove-client; - список клиентов:
./amneziawg.sh list; - перегенерировать ключи:
./amneziawg.sh regenerate.
Можно создавать гостевые конфиги с датой истечения. Для автоматизации команды поддерживают флаг --json, что позволяет интегрировать управление с Telegram-ботами или скриптами.
Важно: для каждой локации Amnezia Premium можно сгенерировать только один файл конфигурации. Использование одного файла на нескольких устройствах приведёт к разрыву подключения на всех.
Совместимость, ограничения и версии
AmneziaWG 2.0 работает на ядрах Linux 6.7 и новее. На более старых ядрах может использоваться версия 2.0, собранная из исходников, или даже линия 3.0 (если доступна). Скрипт-установщик автоматически выбирает подходящую версию: на свежих ядрах ставится 3.0, на старых — 2.0.
Важные ограничения:
- Диапазоны H1–H4 не должны пересекаться;
- Параметры S1–S4 и H1–H4 должны совпадать на сервере и клиенте, иначе handshake не сойдётся;
- Jc/Jmin/Jmax и сигнатурные пакеты i1–i5 могут отличаться, так как это отдельные пакеты-обманки;
- Регистр в i1–i5 важен: только верхний.
AmneziaWG не даёт 100% гарантии обхода DPI, но на текущий момент успешно противостоит ТСПУ в России, а также цензуре в Иране, Китае и корпоративных сетях.
Сравнение с WireGuard и другими протоколами
WireGuard — это современный VPN-протокол с высокой скоростью и простотой настройки, но его трафик легко идентифицировать по фиксированным сигнатурам. AmneziaWG сохраняет все преимущества WireGuard (производительность, криптографию) и добавляет обфускацию.
Основные отличия:
- WireGuard: фиксированные заголовки, предсказуемые размеры пакетов, нет маскировки;
- AmneziaWG 1.0: мусорные пакеты, изменение размеров handshake, фиксированные заголовки H1–H4;
- AmneziaWG 2.0: сигнатурные пакеты i1–i5, padding S3/S4, диапазонные заголовки.
По сравнению с другими обфусцированными протоколами (например, XRay с VLESS), AmneziaWG работает как модуль ядра, что даёт меньшую задержку и более высокую скорость. Однако XRay может имитировать TLS-трафик, что иногда эффективнее против DPI. Выбор зависит от конкретных условий.
Практические советы по настройке и диагностике
Если AmneziaWG не подключается, а обычный WireGuard работает, скорее всего проблема в рассинхроне параметров обфускации. Проверьте:
- Совпадение S1–S4 и H1–H4 на сервере и клиенте;
- Версии amneziawg-tools (старые не понимают 2.0);
- Правильность диапазонов H1–H4 (не пересекаются).
Для мобильных операторов рекомендуется использовать порт 443/udp, так как нестандартные UDP-порты часто блокируются. В скрипте-установщике есть флаг --mobile.
Если нужно, чтобы российские сайты (банки, госуслуги) работали без VPN, можно настроить отдельный маршрут для российских IP-сетей. Это делается в конфигурации клиента.
Для диагностики используйте команды show и diagnose в установщике, а также логи AmneziaVPN.
Вопросы и ответы
Чем AmneziaWG 2.0 отличается от обычного WireGuard?
AmneziaWG 2.0 — это форк WireGuard с добавленной обфускацией. В отличие от стандартного WireGuard, который легко идентифицировать по фиксированным заголовкам и размерам пакетов, AmneziaWG 2.0 использует сигнатурные пакеты (i1–i5), имитирующие легитимные протоколы (DNS, QUIC, SIP), добавляет случайный padding ко всем типам пакетов (S1–S4) и использует диапазонные заголовки (H1–H4), которые меняются для каждого пакета. Это делает трафик практически неотличимым от обычного интернет-трафика для DPI-систем.
Как установить AmneziaWG 2.0 на свой сервер?
Есть два основных способа. Первый — через официальное приложение AmneziaVPN: скачайте версию 4.8.12.9 или выше, добавьте свой VPS и выберите протокол AmneziaWG. Второй — с помощью скрипта-установщика (например, bivlked/amneziawg-installer): выполните три команды в SSH на чистом VPS с Ubuntu или Debian, скрипт сам установит модуль ядра, настроит firewall и создаст первого клиента. После установки вы получите QR-код и vpn-ссылку для импорта в клиент.
Какие параметры обфускации нужно настраивать вручную?
В большинстве случаев достаточно настроек по умолчанию, которые генерирует приложение или скрипт. Однако для тонкой настройки доступны параметры: Jc, Jmin, Jmax (количество мусорных пакетов), S1–S4 (padding для разных типов пакетов), H1–H4 (диапазоны заголовков), i1–i5 (сигнатурные пакеты). Важно, чтобы S1–S4 и H1–H4 совпадали на сервере и клиенте. Диапазоны H1–H4 не должны пересекаться.
На каких устройствах работает AmneziaWG 2.0?
AmneziaWG 2.0 поддерживается в клиенте AmneziaVPN для Windows, macOS, Linux, Android и iOS (через приложение AmneziaWG). Для self-hosted серверов требуется Linux с ядром 6.7 или новее (или сборка модуля для старых ядер). Также есть готовые модули для ARM-платформ: Raspberry Pi 3/4/5, Hetzner CAX, Oracle Ampere A1, AWS Graviton.
Гарантирует ли AmneziaWG 2.0 обход DPI?
Нет, абсолютной гарантии нет. AmneziaWG 2.0 значительно усложняет идентификацию VPN-трафика, но DPI-системы постоянно развиваются. Протокол успешно работает против ТСПУ в России, а также в Иране, Китае и корпоративных сетях, но в каждом конкретном случае эффективность может различаться. Рекомендуется комбинировать AmneziaWG с другими методами обхода, например, использовать каскад из двух серверов.
Можно ли использовать AmneziaWG 2.0 бесплатно?
Да, протокол AmneziaWG является открытым (open source). Вы можете развернуть собственный VPN-сервер на любом VPS, оплачивая только аренду сервера (обычно от 3 до 5 долларов в месяц). Официальное приложение AmneziaVPN также бесплатно для self-hosted. Для пользователей Amnezia Free и Premium используется версия 1.5, но поддержка 2.0 планируется позже.