AmneziaWG простыми словами
AmneziaWG (часто пишут Amnezia WG или просто AWG) — это протокол VPN, полученный из WireGuard добавлением слоя маскировки. Внутри он остаётся WireGuard: те же ключи Curve25519, то же шифрование ChaCha20-Poly1305, то же рукопожатие Noise и та же криптографическая маршрутизация по AllowedIPs. Снаружи его пакеты выглядят иначе — без узнаваемых заголовков и стандартных размеров, по которым сетевое оборудование определяет WireGuard. Если протокол WireGuard вам знаком, считайте AmneziaWG его версией «в неприметной одежде»; если нет — начните со статьи что такое WireGuard.
Разрабатывает протокол проект Amnezia — команда, известная клиентом AmneziaVPN с открытым исходным кодом. Код AmneziaWG тоже открыт и опубликован на GitHub: модуль для ядра Linux, пользовательская реализация amneziawg-go, утилиты amneziawg-tools (команды awg и awg-quick) и форки официальных клиентов WireGuard для Windows, macOS, iOS и Android. Официальный сайт проекта — amnezia.org, техническая документация опубликована на docs.amnezia.org.
Практический смысл простой: в сети, где обычный WireGuard-туннель не устанавливается, потому что оборудование классифицирует UDP-трафик по сигнатурам, AmneziaWG даёт тот же уровень защиты и почти ту же скорость, но не попадает под классификацию. Это техническая совместимость с конкретной сетью, а не другой класс продукта. Amnezia VPN как протокол — неточное выражение: AmneziaVPN — это приложение, а протокол называется AmneziaWG.
Почему WireGuard заметен для сетевого оборудования
WireGuard проектировался ради скорости и простоты, а не скрытности. Его пакеты легко узнать по нескольким признакам:
- Первые четыре байта каждого пакета — тип сообщения: 1 для начала рукопожатия, 2 для ответа, 3 для cookie-сообщения, 4 для транспортных данных, и следом три нулевых байта.
- Пакет начала рукопожатия всегда 148 байт, ответ — 92 байта, cookie-сообщение — 64 байта.
- Рукопожатие повторяется примерно каждые две минуты при наличии трафика, и его размер не меняется.
- Транспортные пакеты несут 16-байтный заголовок, а длина полезной нагрузки выровнена по 16 байт.
Системы глубокого анализа пакетов (DPI) используют эти признаки как сигнатуру: увидев на UDP-порту пакет из 148 байт с байтами 01 00 00 00 в начале, оборудование с высокой вероятностью помечает поток как WireGuard и применяет к нему политику, отличную от политики для остального трафика. Шифрование при этом не страдает — содержимое остаётся закрытым; проблема в том, что туннель не устанавливается или работает нестабильно.
Как AmneziaWG маскирует трафик: параметры обфускации
AmneziaWG меняет именно эти признаки. Параметры задаются в секции [Interface] конфига и должны совпадать у клиента и сервера — иначе стороны не поймут друг друга.
| Параметр | Что делает | Типичные значения |
|---|---|---|
Jc | Количество мусорных пакетов со случайным содержимым, которые отправляются перед рукопожатием | 3–10 |
Jmin, Jmax | Минимальный и максимальный размер мусорного пакета в байтах | Jmin около 50, Jmax около 1000; Jmax не больше 1280 |
S1 | Случайный паддинг перед пакетом начала рукопожатия — 148 байт перестают быть 148 | 15–150 |
S2 | Паддинг перед пакетом ответа на рукопожатие | 15–150; должно выполняться условие S1 + 56 ≠ S2 |
H1–H4 | Заменяют стандартные типы сообщений 1, 2, 3, 4 на произвольные 32-битные значения | Четыре разных случайных числа |
Мусорные пакеты Jc и паддинг S1/S2 задействованы только в момент рукопожатия. Параметры H1–H4 меняют заголовок каждого пакета, но не его размер, поэтому на пропускную способность не влияют. В результате классификатор видит поток UDP-датаграмм переменной длины со случайными первыми байтами — ничего похожего на сигнатуру WireGuard.
Протокол развивается: в версиях 1.5, 2.0 и 3.1 добавились параметры I1–I5 (специальные пакеты перед рукопожатием, содержимое которых задаётся описанием и может имитировать другие протоколы), паддинг S3 и S4 для cookie- и транспортных пакетов, защита заголовков ключом, случайное дополнение полезной нагрузки и рандомизация таймеров рукопожатия. Криптографическое ядро WireGuard при этом не меняется ни в одной версии. Пользователю готового сервиса эти детали знать не обязательно: все параметры уже прописаны в конфиге, который выдаёт сервис.
AmneziaWG vs WireGuard: таблица различий
| Критерий | WireGuard | AmneziaWG |
|---|---|---|
| Криптография | Curve25519, ChaCha20-Poly1305, BLAKE2s, HKDF, Noise | Та же, без изменений |
| Транспорт | UDP | UDP |
| Сигнатура пакетов | Фиксированные типы сообщений и размеры рукопожатия | Случайные заголовки, паддинг, мусорные пакеты |
| Формат конфига | Секции [Interface] и [Peer] | Тот же плюс параметры маскировки в [Interface] |
| Скорость | Эталон | Практически та же; дополнительный трафик только при рукопожатии |
| Приложения | Официальные клиенты WireGuard | AmneziaVPN, приложения AmneziaWG, amneziawg-tools |
| Совместимость | Клиент WireGuard не принимает конфиг с параметрами Jc, S1, H1 и т. д. | Клиент AmneziaWG подключается к обычному WireGuard-серверу только при нулевых параметрах маскировки и стандартных H1–H4 |
| Поддержка в ядре Linux | В основной ветке с версии 5.6 | Отдельный модуль ядра и пользовательская реализация, не в основной ветке |
| Роутеры | Keenetic, MikroTik, OpenWrt, ASUS и другие | Пакеты для OpenWrt; поддержка в новых прошивках Keenetic — проверяйте для своей модели |
Главный вывод из таблицы: переход на AmneziaWG ничего не отнимает у безопасности. Это тот же протокол с дополнительным слоем, который касается только формы пакетов. Обратное тоже верно: если сеть не мешает WireGuard, маскировка не нужна и преимуществ не даст.
Как AmneziaWG влияет на скорость и батарею
Накладные расходы минимальны. Мусорные пакеты и паддинг отправляются только в момент рукопожатия — при подключении и затем примерно раз в две минуты при активном трафике. Даже при Jc = 10 и Jmax = 1000 это около 10 КБ дополнительно на каждое рукопожатие: на фоне видеозвонка или загрузки страницы величина незаметная. Транспортные пакеты несут тот же 16-байтный заголовок, просто с другим значением типа, и шифруются тем же ChaCha20-Poly1305.
На практике пропускная способность и задержка в AmneziaWG совпадают с WireGuard в пределах погрешности измерения, если на сервере и клиенте стоит реализация в ядре или свежая версия amneziawg-go. Расход батареи на телефоне тоже не отличается: в простое протокол молчит, как и оригинал. Единственная тонкость — MTU: паддинг увеличивает пакеты рукопожатия, и в сетях с нестандартной инкапсуляцией иногда помогает снизить MTU туннеля. Если после перехода на AmneziaWG соединение установилось, но страницы открываются медленно, начните с этого — общий разбор в статье почему WireGuard работает медленно.
Какие приложения поддерживают AmneziaWG
Официальные приложения WireGuard конфиг с параметрами маскировки не примут: при импорте они проверяют ключи секций и сообщают об ошибке в неизвестной строке. Нужен клиент, понимающий AmneziaWG.
- AmneziaVPN — основной клиент проекта для Windows, macOS, Linux, Android и iOS. Поддерживает несколько протоколов, в том числе WireGuard и AmneziaWG, импортирует .conf-файлы и ключи вида vpn://. Именно для него Muhomor VPN выдаёт конфиг «скрытного режима».
- Приложения AmneziaWG — форки официальных клиентов WireGuard с минимальным интерфейсом: Android (Google Play и APK на GitHub), iOS и macOS (App Store), Windows (установщик на GitHub). Удобны, когда нужен один туннель и знакомый интерфейс WireGuard.
- Linux — пакет amneziawg-tools с командами awg и awg-quick, модуль ядра amneziawg или пользовательская реализация amneziawg-go.
- Роутеры — пакеты для OpenWrt (kmod-amneziawg и luci-proto-amneziawg); в новых версиях KeeneticOS поддержка AmneziaWG появилась начиная с бета-прошивок — уточняйте для своей модели. MikroTik RouterOS штатной поддержки AmneziaWG на момент публикации не имеет.
Совместимость в обратную сторону: клиент AmneziaWG умеет работать с обычным WireGuard-сервером, если все параметры маскировки равны нулю, а H1–H4 оставлены стандартными (1, 2, 3, 4). В этом случае он ведёт себя как обычный WireGuard-клиент.
Когда включать скрытный режим в Muhomor VPN
В Muhomor VPN протокол по умолчанию — обычный WireGuard: он быстрее подключается в большинстве сетей и работает в официальном приложении. AmneziaWG вынесен в отдельный «скрытный режим», который включается кнопкой «Включить скрытный режим» на странице доступа. Переключаться стоит в конкретной ситуации: обычный туннель не устанавливается — в приложении WireGuard не появляется строка «Последнее рукопожатие», счётчик принятых данных стоит на нуле, а в других сетях тот же конфиг работает.
Так бывает в сетях с фильтрацией UDP-трафика — в некоторых корпоративных и гостиничных Wi-Fi, а также у отдельных мобильных операторов, чьё оборудование классифицирует протоколы по сигнатуре. Перед переключением исключите простые причины: нет интернета без VPN, сбито время на устройстве, конфиг одновременно используется на другом устройстве, истёк срок доступа. Список проверок — в статье WireGuard не подключается.
- Установите AmneziaVPN для своей платформы — приложение бесплатное.
- На странице доступа нажмите «Включить скрытный режим» и получите конфиг для AmneziaVPN.
- Импортируйте конфиг в AmneziaVPN и подключитесь. Пошаговая инструкция — как настроить AmneziaWG.
- Обычный WireGuard-конфиг оставьте: в домашней сети он по-прежнему удобнее, а переключение между режимами занимает секунды.
Если UDP в сети закрыт полностью, AmneziaWG не поможет — маскировка работает внутри UDP, а не поверх TCP. Такие сети редки; распознать их можно по тому, что не устанавливается ни WireGuard-, ни AmneziaWG-туннель, а другие UDP-приложения тоже молчат. Обзор альтернатив по транспорту — в сравнении WireGuard и OpenVPN.
Типичные ошибки при переходе на AmneziaWG
- Конфиг AmneziaWG импортирован в официальное приложение WireGuard. Приложение сообщит об ошибке в строке с Jc или H1. Нужен AmneziaVPN или приложение AmneziaWG.
- Два туннеля включены одновременно. WireGuard и AmneziaWG на одном устройстве спорят за маршруты. Держите активным один профиль.
- Параметры не совпадают. Актуально для своего сервера: если у клиента и сервера разные Jc, Jmin, Jmax, S1, S2 или H1–H4, рукопожатие не проходит без каких-либо сообщений об ошибке. Сверьте значения посимвольно.
- Устаревший клиент. Старая версия приложения не знает параметров новых версий протокола (I1–I5 и другие) и не сможет разобрать конфиг. Обновите приложение из магазина или с GitHub.
- Маскировка включена там, где не нужна. Скорости она не добавит, а рукопожатие станет чуть тяжелее. В домашней сети, где обычный WireGuard работает, используйте его.
Попробуйте Muhomor VPN — 3 дня бесплатно
WireGuard-конфиг придёт на e-mail за минуту. Без карты и автосписаний, до 5 устройств на одном доступе.
Частые вопросы
AmneziaWG — это отдельный VPN или протокол?
Протокол: форк WireGuard с маскировкой сигнатуры. Сервисом или сервером он не является — его используют клиент AmneziaVPN, приложения AmneziaWG и готовые VPN-сервисы.
AmneziaWG медленнее WireGuard?
Практически нет. Дополнительные байты передаются только при рукопожатии, транспортные пакеты шифруются так же; разница в скорости в пределах погрешности.
Можно ли открыть конфиг AmneziaWG в обычном приложении WireGuard?
Нет: приложение WireGuard не знает параметров Jc, S1, H1 и откажется импортировать файл. Нужен AmneziaVPN или приложение AmneziaWG.
AmneziaWG безопаснее WireGuard?
Криптографически они одинаковы: те же ключи, шифры и рукопожатие. AmneziaWG добавляет только маскировку формы пакетов, а не новый уровень шифрования.
Что такое Amnezia VPN и обязательно ли его ставить?
AmneziaVPN — бесплатный клиент с открытым кодом от авторов протокола. Для конфига AmneziaWG нужен он или облегчённое приложение AmneziaWG; для обычного WireGuard достаточно официального клиента.
Когда стоит переключиться на AmneziaWG?
Когда обычный WireGuard-туннель не устанавливается в конкретной сети, хотя интернет без VPN есть и время на устройстве верное. В Muhomor VPN это кнопка «Включить скрытный режим».