Some checks failed
Published content check / validate (push) Failing after 6s
По материалам мейнтейнера amneziawg-installer (проверено по коду и GitHub API): - internals: AWG-параметр нельзя убрать через awg setconf/syncconf — обе реализации обрабатывают только присутствующие ключи; команда включения dynamic debug для пояснений к отказам модуля ядра; - reference: поддержка AWG 3.0 в mihomo v1.19.30 (16 августа), статусы официальных клиентов amneziawg-android (3.x — только предрелизы) и amneziawg-windows-client (стабильный 2.0.2). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
239 lines
49 KiB
Markdown
239 lines
49 KiB
Markdown
---
|
||
date: 2026-08-04
|
||
tags:
|
||
- amneziawg
|
||
- wireguard
|
||
- обфускация
|
||
- обход-блокировок
|
||
- dpi
|
||
aliases:
|
||
- AmneziaWG 3.0
|
||
- AWG 3
|
||
- Amnezia 3.0
|
||
- Амнезия 3.0
|
||
- Амнезия ВПН новая версия
|
||
- Что за новая Amnezia 3.0
|
||
- Чем AmneziaWG 3.0 отличается от 2.0
|
||
- Амнезия ВПН 3.0 для своего сервера
|
||
- AmneziaWG 3 self-hosted когда
|
||
- AmneziaWG 3.1
|
||
- RandomTrailers и DisableCookies что это
|
||
link: https://github.com/amnezia-vpn/amneziawg-go
|
||
---
|
||
|
||
# 🛡️ AmneziaWG 3.0 — шифрование заголовков поверх WireGuard
|
||
|
||
![[awg3-header.webp]]
|
||
|
||
> [!info] О чём заметка
|
||
> Разбор третьего поколения протокола AmneziaWG (AWG) — обфусцированного WireGuard от команды Amnezia, выпущенного 24 июля 2026 года. Что реально добавили в 3.0, чем это отличается от [[amnezia-2-0/reference|AmneziaWG 2.0]], кому протокол доступен и какие утверждения о нём гуляют по сети, не подтверждаясь исходным кодом. Побайтовая механика — в [[amnezia-3-0/internals|разборе внутреннего устройства]], сопутствующий релиз приложения — в [[amnezia-3-0/client-5-0-0-5|заметке про AmneziaVPN 5.0.0.5]].
|
||
|
||
## TL;DR
|
||
|
||
- **«Amnezia 3.0» — это версия протокола, а не приложения.** Клиент AmneziaVPN версий 3.x — это 2023 год; актуальная нумерация приложения перешла с 4.8.21.0 сразу на 5.0.0.5 (26 июля 2026), и уже в нём появилась поддержка AmneziaWG 3.0.
|
||
- **Главная новинка — header protection**: потоковым шифром ChaCha20 шифруются заголовки пакетов, то есть те поля, которые в WireGuard и в AWG 2.0 оставались открытыми и предсказуемыми. Криптографию самого WireGuard при этом не трогали.
|
||
- Дополнительно: **content padding** (случайное удлинение полезной нагрузки) и **рандомизация таймингов** — интервалы рукопожатий и keepalive задаются диапазонами, а не константами.
|
||
- **Ценой стало требование к паддингу**: при включённой защите заголовков значения `S1`–`S4` обязаны быть не меньше 12 байт, потому что первые 12 байт случайного префикса работают одноразовым числом (nonce) для шифра.
|
||
- **12 августа 2026 внутри третьего поколения вышла линия 3.1** — синхронные теги `v3.1.20260812` в движке, модуле ядра и утилитах. Два новых параметра: `RandomTrailers` (случайный хвост у пакетов рукопожатия; включать строго на обеих сторонах) и `DisableCookies` (устройство перестаёт слать cookie-ответы; односторонний). Netlink-интерфейс не менялся, утилиты 3.0 работают с модулем 3.1.
|
||
- **Self-hosted пока пролетает**: AWG 3.0 доступен только подписчикам Amnezia Premium и пользователям Amnezia Free. Поддержка своих серверов смержена в ветку разработки 6 августа 2026 (PR #2908), но в релиз не вошла: последняя версия приложения на 20 августа — 5.0.0.5 от 26 июля.
|
||
- Популярный «разбор под капотом» из GitHub Discussions (`FallbackPort`, uTLS с отпечатком Chrome, REALITY внутри движка) **исходным кодом релиза не подтверждается** — это либо экспериментальные ветки, либо выдумка.
|
||
|
||
## Почему путаница с номером версии
|
||
|
||
Вопрос «что за новая Amnezia 3.0?» возникает регулярно, и почти всегда за ним стоит смешение двух независимых нумераций. В русскоязычных чатах сервис называют как угодно — «амнезия», «амнезия ВПН», «Амнезия 3.0», «АмнезияВГ», — и за всеми этими написаниями скрываются два разных продукта с собственными версиями.
|
||
|
||
**Приложение** — AmneziaVPN, графический клиент для Windows, macOS, Linux, Android и iOS. Его версии 3.0.8 и 3.1.0 вышли летом 2023 года (переезд на Qt 6, десктопный WireGuard), после чего нумерация ушла в 4.x, а 26 июля 2026 года прыгнула на 5.0.0.5.
|
||
|
||
**Протокол** — AmneziaWG, обфусцированная надстройка над WireGuard, которую делает та же команда. Его поколения нумеруются отдельно: 1.0, 1.5, 2.0 и, с 24 июля 2026 года, 3.0.
|
||
|
||
Проще говоря: когда в 2026 году пишут «Amnezia 3.0», почти всегда имеют в виду протокол AmneziaWG 3.0 внутри приложения AmneziaVPN 5.0.0.5. Корректная формулировка — «AmneziaWG 3.0», а «Amnezia VPN 3.0» отсылает к трёхлетней давности релизу клиента.
|
||
|
||
## Хронология поколений протокола
|
||
|
||
Каждое поколение AmneziaWG — ответ на конкретный этап давления DPI (Deep Packet Inspection, глубокая инспекция пакетов). Даты ниже сверены по тегам репозитория [amneziawg-go](https://github.com/amnezia-vpn/amneziawg-go) и публикациям команды.
|
||
|
||
| Поколение | Когда | Что принесло |
|
||
|---|---|---|
|
||
| **AWG 1.0** | 2023 | Мусорные пакеты `Jc`/`Jmin`/`Jmax`, паддинг рукопожатий `S1`/`S2`, подменяемые фиксированные заголовки `H1`–`H4` |
|
||
| **AWG 1.5** | июль 2025 (теги `v0.2.13`–`v0.2.14-beta-awg-1.5`, 4–10 июля 2025) | Сигнатурные пакеты `I1`–`I5`: до пяти UDP-датаграмм перед рукопожатием, имитирующих QUIC, DNS или SIP |
|
||
| **AWG 2.0** | сентябрь 2025 (тег `v0.2.15` «feat: awg 2.0», 1 сентября 2025) | Паддинг `S3`/`S4` для cookie и транспортных пакетов, диапазонные заголовки `H1`–`H4`, язык CPS для сигнатур |
|
||
| **AWG 3.0** | 24 июля 2026 (тег `v3.0.0`, PR [#158](https://github.com/amnezia-vpn/amneziawg-go/pull/158)) | Шифрование заголовков, content padding, диапазонные тайминги |
|
||
| **AWG 3.1** | 12 августа 2026 (тег `v3.1.20260812` синхронно в go, модуле ядра и утилитах) | Случайные хвосты пакетов рукопожатия (`RandomTrailers`), отключение cookie-ответов (`DisableCookies`) |
|
||
|
||
Порядок здесь важен, потому что в пересказах его часто переворачивают: версия 1.5 вышла **раньше** 2.0 и была срочным ответом на блокировки лета 2025, когда, по собственной оценке Amnezia в юбилейной статье на Хабре от 16 октября 2025 года, протокол перестал работать примерно у 10% пользователей. Первой заблокированной оказалась версия 1.0, а не 2.0.
|
||
|
||
> [!note] Версии нумеруются не как теги Git
|
||
> До июля 2026 года движок `amneziawg-go` жил в нумерации `v0.2.x`, и «AWG 2.0» соответствовал тегу `v0.2.15`. С выходом третьего поколения теги привели в соответствие с названием протокола: `v3.0.0`, `v3.0.1` (оба 24 июля 2026), `v3.0.2` (28 июля), `v3.0.3` (31 июля). Затем схема стала датированной, синхронной с остальными репозиториями: `v3.0.20260805` (5 августа, исправление keepalive-дефекта) и линия 3.1 — `v3.1.20260812`, в go также багфиксы `v3.1.20260813` и `v3.1.20260814`. Полноценных GitHub Releases у репозитория нет — только теги, поэтому «дата релиза» здесь означает дату коммита, на который тег указывает.
|
||
|
||
## Контекст: почему 3.0 появился именно летом 2026
|
||
|
||
Третье поколение вышло не по плану развития, а по итогам полутора месяцев атаки на инфраструктуру сервиса. Хронология по [публикации Amnezia от 5 июня 2026 года](https://amnezia.org/ru/blog/amnezia-vpn-may-june-2026-incident-preliminary-summary), которая затем дополнялась до 16 июля: 20 мая — массовая блокировка IP-адресов серверов, 1 июня — организованная DDoS-атака, 10 июня — отдельная атака на сайт. В обновлении от 16 июля команда прямо назвала AmneziaWG 3.0 одним из главных пунктов плана восстановления: «Один из главных пунктов — релиз очередной версии нашего оригинального протокола, AmneziaWG 3.0».
|
||
|
||
Смысл смены поколения объясняет [интервью анонимного разработчика Amnezia изданию Meduza от 3 августа 2026 года](https://meduza.io/feature/2026/08/03/teoreticheski-oni-mogut-zablokirovat-lyuboy-servis-tselikom). По его словам, надзорное ведомство перешло от блокировки протокола к блокировке серверов по совокупности признаков: «У них есть 50 критериев, каждый из которых приносит одно очко, и если набралось больше 25 очков, то сервер попадает под блокировку». Отдельно описан автоматизированный стенд: «Они берут приложение, собирают с него испытательный стенд — тестовую сборку, куда автоматически подгружают свежие файлы конфигурации, и смотрят, куда и как они подключаются». Похожая логика подсчёта признаков разбирается в заметке [[DPI/statistical-morphing-concept|о статистическом морфинге трафика]], а свежая волна блокировок — в [[DPI/vpn-blocking-wave-forecast-summer-2026|прогнозе по блокировкам VPN лета 2026]].
|
||
|
||
Практический вывод из этого контекста: обновление протокола лечит **сигнатурную** часть проблемы — то, по каким байтам трафик опознают как VPN. Блокировку по IP-адресу сервера, который уже попал в списки, новый протокол не отменяет.
|
||
|
||
> [!warning] Осторожно с цифрой «более 90% серверов»
|
||
> Формулировка «заблокировано более 90% российских серверов Amnezia» широко разошлась по пересказам (например, в материале techora.ru от 6 июля 2026 года), но в самом посте Amnezia об инциденте и в интервью Meduza такой цифры нет. Считайте её оценкой из вторых рук, а не заявлением компании.
|
||
|
||
## Header protection — что это на самом деле
|
||
|
||
Это единственное по-настоящему новое свойство третьего поколения, и именно оно отличает 3.0 от [[amnezia-2-0/reference|AWG 2.0]].
|
||
|
||
### Что было открытым до 3.0
|
||
|
||
В обычном WireGuard каждый транспортный пакет начинается с 16-байтового заголовка: 4 байта типа сообщения, 4 байта индекса получателя и 8 байт счётчика пакетов. Полезная нагрузка зашифрована, а вот заголовок передаётся открытым текстом. AWG 1.0 и 2.0 подменяли в нём только поле типа (параметры `H1`–`H4`) и добавляли перед пакетом случайный префикс (`S1`–`S4`), но остальные поля заголовка оставались как есть.
|
||
|
||
Проще говоря: наблюдателю доставалась готовая структура — постоянный индекс получателя, который не меняется всю сессию, и счётчик, растущий строго на единицу с каждым пакетом. Это удобный материал для статистической сигнатуры даже тогда, когда поле типа рандомизировано диапазоном. Официального объяснения от Amnezia, какие именно признаки они закрывают, пока нет — README говорит обобщённо о «низкоэнтропийных значениях заголовков», — но механика описывается именно так.
|
||
|
||
### Как устроена защита
|
||
|
||
Проверено по коду тега `v3.0.3` (файлы `device/noise-protocol.go`, `device/send.go`, `device/receive.go`):
|
||
|
||
- Шифр — **ChaCha20 без аутентификации**, потоковый, IETF-вариант с 12-байтовым nonce (`chacha20.NewUnauthenticatedCipher`). Не ChaCha20-Poly1305 и не XChaCha20: аутентификацию здесь дают штатные механизмы WireGuard, задача этого слоя — только скрыть структуру.
|
||
- **Рукопожатия и cookie-ответы шифруются целиком**, включая поля MAC1 и MAC2.
|
||
- **Транспортные пакеты** — только 16-байтовый заголовок; полезная нагрузка не трогается, она уже зашифрована штатным ChaCha20-Poly1305, и второй проход по ней был бы бессмысленной тратой процессора.
|
||
- **Nonce берётся из паддинга.** Перед каждым сообщением, как и в 2.0, пишется префикс из криптослучайных байт длиной `S1`–`S4` (по типу сообщения), и первые 12 байт этого префикса используются одноразовым числом для шифра. Приёмная сторона читает их из того же места.
|
||
|
||
Красивая часть решения в том, что паддинг из чистого мусора стал функциональным: те же байты, что раньше просто сбивали анализ по длинам, теперь несут nonce, и лишних данных в пакет добавлять не пришлось. Полная схема сборки пакета, приёмный трюк с «хэшем типа» и разбор того, какие следы протокол всё-таки оставляет, — в [[amnezia-3-0/internals|заметке про внутреннее устройство]].
|
||
|
||
### Ключ и обязательный минимум паддинга
|
||
|
||
Ключ задаётся параметром `HeaderProtectionKey`, длина 32 байта, в конфигурационном файле записывается в base64 — так же, как обычный ключ WireGuard (шестнадцатеричная форма используется только на внутреннем интерфейсе UAPI). Генерируется командой `awg genkey` из пакета `amneziawg-tools` версии `v3.0.20260730` и новее. Значение обязано совпадать на сервере и на клиенте: сторона без ключа не расшифрует заголовки и молча отбросит пакеты как неопознанные.
|
||
|
||
Отсюда же вытекает жёсткое требование к паддингу: раз nonce берётся из первых 12 байт префикса, то при включённой защите заголовков **все четыре значения `S1`–`S4` должны быть не меньше 12**. Меньшее значение движок отвергает с ошибкой, а модуль ядра возвращает `-EINVAL`.
|
||
|
||
> [!danger] Миф о «минимуме 8 байт»
|
||
> В пересказах встречается требование «S1–S4 не меньше 8» — это ошибка, попавшая в оборот из README самого проекта. В коде порог всегда был 12 (`HeaderCipherNonceSize = 12`), а вот текст документации и сообщение об ошибке действительно говорили про 8, пока их не исправили 31 июля 2026 года коммитом `ce7cf103` («docs: change 8 requirement to 12 in README»). Если вы читали инструкцию до этой даты — перепроверьте свои значения.
|
||
|
||
## Content padding — случайное удлинение пакетов
|
||
|
||
Параметр `ContentPaddingAddition` задаётся диапазоном (`uint32,range`) и помечен в README как клиентский. На каждый исходящий транспортный пакет из диапазона берётся случайное число, и столько нулевых байт дописывается в хвост открытого текста **до** шифрования — то есть добавка оказывается внутри шифртекста, а не отдельным видимым довеском. Размер обрезается по MTU, чтобы не спровоцировать фрагментацию.
|
||
|
||
Важная деталь: если параметр задан, он **заменяет** штатное выравнивание WireGuard до кратности 16 байт. Смысл в том, что предсказуемое выравнивание само по себе — признак: длины пакетов ложатся на сетку из 16 байт, и это видно в статистике потока. Случайная добавка эту сетку размывает.
|
||
|
||
README при этом заметно мягче, чем пересказы: «It's important to specify content padding on both sides. However, this is not strictly required and could be omitted» — то есть согласовать значения на обеих сторонах желательно, но не обязательно.
|
||
|
||
## Рандомизация таймингов
|
||
|
||
WireGuard известен своей регулярностью: рукопожатие раз в 120 секунд, keepalive по фиксированному таймеру, повторы по константам. Для анализатора трафика это ритм, который видно даже без разбора содержимого. В третьем поколении шесть таймеров стали настраиваемыми диапазонами:
|
||
|
||
| Параметр | Секция | Что задаёт |
|
||
|---|---|---|
|
||
| `RekeyAfterTime` | `[Interface]` | Через сколько инициировать новое рукопожатие (в WireGuard — жёстко 120 с) |
|
||
| `RekeyTimeout` | `[Interface]` | Пауза перед повторной попыткой рукопожатия |
|
||
| `RejectAfterTime` | `[Interface]` | Когда сессия считается протухшей |
|
||
| `KeepaliveTimeout` | `[Interface]` | Таймер отправки keepalive |
|
||
| `MaxHandshakeAttempts` | `[Interface]` | Сколько попыток рукопожатия делать |
|
||
| `PersistentKeepalive` | `[Peer]` | Уже существовавший параметр, теперь принимает диапазон |
|
||
|
||
Этим список новых параметров релиза 3.0 и исчерпывается: сравнение полного набора ключей UAPI между `v0.2.19` и `v3.0.3` даёт ровно эти шесть таймеров плюс `content_padding_addition` и `header_protection_key`. Скрытых параметров в релизе нет.
|
||
|
||
## Линия 3.1: случайные хвосты и отключение cookie
|
||
|
||
12 августа 2026 года внутри третьего поколения вышло обновление 3.1 — тег `v3.1.20260812` появился синхронно в трёх репозиториях: движке [amneziawg-go](https://github.com/amnezia-vpn/amneziawg-go), модуле ядра и amneziawg-tools. В go следом вышли багфиксы `v3.1.20260813` и `v3.1.20260814` (последний чинит длину случайного хвоста у cookie-ответа). Новых параметров устройства ровно два — это видно по диффу UAPI-интерфейса между линиями.
|
||
|
||
**`RandomTrailers`** (`on`/`off`) дописывает к пакетам рукопожатия — инициации, ответу и cookie-ответу — хвост из случайных байт случайной длины. Длина берётся из диапазона от нуля до «окна» за вычетом размера самого пакета; окно стартует с 500 байт и подстраивается под максимальный размер пакетов, реально приходивших от пира. Транспортные пакеты отдельного хвоста не получают: для них тот же механизм даёт случайный паддинг внутри шифртекста, если `ContentPaddingAddition` не задан. Параметр закрывает признак, который оставался виден в 3.0, — постоянные размеры рукопожатий `S1`+148 и `S2`+92 байта, разобранные в [[amnezia-3-0/internals|описании внутреннего устройства]].
|
||
|
||
> [!danger] RandomTrailers включается строго на обеих сторонах
|
||
> Приёмник принимает удлинённые пакеты рукопожатия только при включённом у себя флаге: проверка в коде — «размер равен ожидаемому, либо включён RandomTrailers и размер больше ожидаемого». Сторона без флага отбрасывает удлинённый пакет как неопознанный, поэтому включение только на одной стороне рвёт рукопожатие. Изредка пакет может проскочить — случайная длина хвоста бывает и нулевой, — но рассчитывать на это нельзя.
|
||
|
||
**`DisableCookies`** (`on`/`off`) запрещает устройству отправлять cookie-ответы — служебные сообщения, которыми сервер под нагрузкой просит инициатора подтвердить свой адрес. Параметр односторонний: приём cookie-ответов не меняется, формат пакетов на проводе тоже, поэтому согласовывать его с пиром не нужно. Цена: под настоящей DoS-нагрузкой такое устройство молча отбрасывает рукопожатия без валидной метки, не оставляя легитимному клиенту способа пройти проверку до спада нагрузки.
|
||
|
||
Совместимость с 3.0 аккуратная: версия netlink-интерфейса модуля ядра (`WG_GENL_VERSION`) в 3.1 не менялась, поэтому утилиты линии 3.0 работают с модулем 3.1 — просто не умеют задавать два новых параметра.
|
||
|
||
### Как отличить 3.1 в установленной системе
|
||
|
||
PPA Amnezia для Ubuntu раздаёт линию 3.1 с 13 августа 2026 года (`amneziawg-tools` и мета-пакет `amneziawg`) и с 14 августа (`amneziawg-dkms`). Версии пакетов сбивают с толку: они всегда начинаются с `1.0.0` — это версия debian-упаковки, замороженная с декабря 2023 года, — а линия кода видна только по git-хешу в конце строки. Например, `1.0.0-0~202608140352+4680320` собрана из коммита `46803204e7ec`, помеченного тегом `v3.1.20260812`; отметка времени в середине различается между сериями Ubuntu на минуты. Версию фактически загруженного модуля показывает `cat /sys/module/amneziawg/version`: у DKMS-сборки там строка тега (`3.1.20260812`), у модуля, собранного вручную через `make`, — те же непоказательные `1.0.0`.
|
||
|
||
## Чего в AWG 3.0 нет, вопреки популярному разбору
|
||
|
||
29 июля 2026 года в GitHub Discussions репозитория клиента появился пост «AmneziaVPN 5.0.0.5 — AWG 3.0: что изменилось под капотом» ([#2899](https://github.com/amnezia-vpn/amnezia-client/discussions/2899)), который активно растащили по чатам. Мейнтейнер проекта ответил на него репликой «Stop writing AI slop» и закрыл обсуждение как устаревшее. Проверка по исходному коду показывает, где текст расходится с релизом.
|
||
|
||
> [!warning] Что не подтверждается кодом
|
||
> **`FallbackPort` и пакет `conceal/`** (проксирование «непохожего» трафика на локальный веб-сервис в духе REALITY) — не входят ни в один тег `v3.0.x`. Соответствующий PR [#124](https://github.com/amnezia-vpn/amneziawg-go/pull/124) смержен 25 марта 2026 года в ветку `experimental`, а не в основную. Заодно и деталь «только TCP» неверна: в экспериментальном коде есть обёртки и для UDP.
|
||
>
|
||
> **uTLS с отпечатком Chrome и xtls/reality внутри движка** — в репозитории отсутствуют полностью: ни библиотек в зависимостях, ни единого упоминания в коде. Пакет `outline/` действительно есть, но это интеграционный слой для Outline SDK, появившийся ещё в декабре 2025 года (PR [#106](https://github.com/amnezia-vpn/amneziawg-go/pull/106), тег `v0.2.17`), и к третьему поколению протокола он отношения не имеет.
|
||
>
|
||
> **«Переписанная система тегов обфускации»** — язык CPS с тегами `<b>`, `<r>`, `<rc>`, `<rd>`, `<t>` и тремя недокументированными (`<d>`, `<ds>`, `<dz>`) существует с версии 2.0; подробный разбор всех восьми — в [[amnezia-2-0/reference|справочнике по AmneziaWG 2.0]]. В 3.0 набор тегов не изменился.
|
||
|
||
Отдельно стоит зафиксировать то, что подтвердилось: криптография WireGuard действительно не тронута. Файл `device/noise-helpers.go` в теге `v3.0.3` побайтно совпадает с оригиналом из `wireguard-go`, рукопожатие Noise IKpsk2 не менялось. Разработчик в интервью Meduza формулирует это как принцип: «Это наше золотое правило — не лезть в криптографию, которую обеспечивают нам ученые, работавшие над ней десятилетие».
|
||
|
||
## Совместимость с AWG 2.0: что ломается, а что нет
|
||
|
||
Официальная позиция из [FAQ Amnezia](https://docs.amnezia.org/ru/faq/) однозначна: AmneziaWG 3.0 «не имеет обратной совместимости с AmneziaWG 2.0». Код уточняет, где именно проходит граница.
|
||
|
||
Все параметры третьего поколения опциональны, а функция выдачи шифра возвращает пустое значение при нулевом ключе. Это значит, что **движок версии 3 без `HeaderProtectionKey` выдаёт в сеть ровно тот же формат, что и 2.0** — те же `S1`–`S4`, `H1`–`H4`, `Jc`/`Jmin`/`Jmax`, `I1`–`I5`. Несовместимость возникает в момент, когда защита заголовков включена: пир без ключа видит вместо знакомой структуры шум и отбрасывает пакеты как пакеты неизвестного типа. Отдельно нужен свежий `amneziawg-tools` — старая версия просто не знает новых ключей конфигурации и не передаст их в ядро.
|
||
|
||
На практике это даёт такую картину:
|
||
|
||
- Клиент 5.0.0.5 подключается к **старым серверам** AWG 2.0 без проблем — конфигурация без `HeaderProtectionKey` работает по-прежнему.
|
||
- Старый клиент к **серверу с включённой защитой заголовков** не подключится никак.
|
||
- Сервер AWG 3.0 **без** ключа защиты обслуживает клиентов 2.0 — совместимость такой связки подтверждена сторонним тестом на стенде (сообщение пользователя bivlked на ntc.party от 1 августа 2026 года).
|
||
- Обновить существующую установку протокола «на месте» нельзя: по [FAQ](https://docs.amnezia.org/ru/faq/) для нового протокола нужны новая конфигурация и новый ключ. Правило то же, что действовало при переходе 1.0 → 2.0, где старые установки в новых клиентах отображаются как «AmneziaWG Legacy».
|
||
|
||
## Кому протокол доступен на 20 августа 2026
|
||
|
||
Здесь главная практическая новость, и она разочаровывает владельцев своих серверов.
|
||
|
||
**Подписчики Amnezia Premium** получают AWG 3.0 как протокол по умолчанию. **Пользователи бесплатного Amnezia Free** — как единственный доступный протокол. И тем и другим нужен клиент AmneziaVPN 5.0.0.5 или новее либо iOS-приложение DefaultVPN 2.0.0 и новее (версия с пунктом «Added AWG 3 support» появилась в App Store около 31 июля 2026 года).
|
||
|
||
**Self-hosted — пока нет, но дело сдвинулось.** FAQ отвечает прямо: «Нет. Сейчас AmneziaWG 3.0 доступен только для Amnezia Premium и Amnezia Free». Поддержка своих серверов — pull request [#2908](https://github.com/amnezia-vpn/amnezia-client/pull/2908) «feat: awg3 support selfhosted», открытый 30 июля 2026 года: он добавляет генерацию `HeaderProtectionKey` в серверный скрипт установки контейнера и выводит в интерфейс поля content padding и таймингов. 6 августа 2026 года PR смержен (9 коммитов, 40 файлов) — но в ветку разработки dev, а не в релиз: последней версией приложения на 20 августа остаётся 5.0.0.5 от 26 июля, так что до пользователей смерженная поддержка ещё не доехала.
|
||
|
||
Документация понемногу догоняет: к 20 августа 2026 года страница docs.amnezia.org об AmneziaWG описывает и версию 3.0 (таблица параметров с допустимыми диапазонами) — с оговоркой, что подробности добавят после выхода self-hosted-поддержки в приложении. Обещанная в анонсе отдельная статья в блоге («расскажем о нем отдельно») по-прежнему не опубликована, механика протокола официально нигде не описана; первоисточниками остаются README репозитория `amneziawg-go` и сам код.
|
||
|
||
Из сторонних клиентов поддержку заявил **Throne 1.2.2** (форк NekoRay) в релизе от 29 июля 2026 года — «Add Amnezia v3 support». В ядре **mihomo** поля третьего поколения (`version: 3`, `header-protection-key`, `content-padding-addition`, тайминги в `amnezia-wg-option`) появились в релизе v1.19.30 от 16 августа 2026 года — более ранние ядра узлы с защитой заголовков не поднимут.
|
||
|
||
Отдельные официальные AWG-клиенты линии 3.x пока не добрались до стабильных выпусков: у `amneziawg-android` версии 3.0.1 и 3.1.20260814 помечены как предрелизы (последний — от 14 августа 2026), а последний стабильный релиз `amneziawg-windows-client` — 2.0.2 от 21 июля 2026, ещё второй линии. Это ещё один довод не включать `HeaderProtectionKey` на сервере, которым пользуются разношёрстные клиенты: часть устройств отвалится без предупреждения.
|
||
|
||
## Экосистема: инструменты и модуль ядра
|
||
|
||
Протокол живёт не только в Go-реализации. Сопутствующие компоненты обновились в конце июля 2026 года:
|
||
|
||
- **amneziawg-tools** `v3.0.20260730` (30 июля) — пользовательские утилиты, включая `awg genkey` для ключа защиты заголовков; далее вышли `v3.0.20260805` (5 августа) и `v3.1.20260812` с параметрами линии 3.1. Это единственный компонент, у которого есть полноценные GitHub Releases.
|
||
- **Модуль ядра Linux** получил третье поколение 30 июля, и первые сутки ушли на исправления: инвертированная логика проверки `RekeyTimeout`, запись значений `I4`/`I5` не в тот слот массива сигнатур, молчаливое игнорирование ключа при слишком коротких `S1`–`S4` и, наконец, сборка на ядрах старше 6.7 (`nla_put_uint` отсутствует в Debian 12 и Ubuntu 22.04). Всё это закрыли ревизиями `v3.0.20260731-02`, `-03` и `-04` в течение 31 июля. Тег `v3.0.20260805` от 5 августа исправил keepalive-дефект с рукопожатиями каждые 15 секунд — разбор в [[amnezia-3-0/internals|заметке о внутреннем устройстве]], — а 12 августа вышел `v3.1.20260812`.
|
||
- **Клиенты платформ** — Apple, Android и Windows — получили синхронные коммиты поддержки 24 июля 2026 года, в течение двух минут друг за другом.
|
||
|
||
Отдельная путаница живёт вокруг сторонних скриптов-установщиков AmneziaWG для self-hosted: репозиториев с почти одинаковыми именами несколько, и их регулярно принимают друг за друга. Родословная по данным GitHub API на 20 августа 2026 года такая. Основой ветви `amneziawg-install` послужил популярный скрипт [wireguard-install](https://github.com/angristan/wireguard-install) от angristan; в июле 2024 года RomikB адаптировал его под AmneziaWG ([RomikB/amneziawg-install](https://github.com/RomikB/amneziawg-install) — в первом коммите первоисточник указан прямо); в августе 2024 появился [Varckin/amneziawg-install](https://github.com/Varckin/amneziawg-install) — перезаливка кода RomikB одним куском, без истории коммитов и упоминания предшественников, заброшенная с сентября 2024; активный сегодня [wiresock/amneziawg-install](https://github.com/wiresock/amneziawg-install) (с января 2026) — технически GitHub-форк репозитория Varckin, но в README честно называет первоисточником RomikB и развил скрипт до поддержки AWG 2.0/3.0. Отдельно стоит [bivlked/amneziawg-installer](https://github.com/bivlked/amneziawg-installer) (с апреля 2025) — независимая разработка, кодом с этой ветвью не связанная; упоминания скрипта wiresock в его README — только сравнительная таблица альтернатив.
|
||
|
||
> [!note] Четвёртое поколение уже в работе
|
||
> В репозитории модуля ядра с 4 ноября 2025 года существует ветка `feature/awg4` с коммитами «feat: awg4» и добавлением тега `<ds>` с base64-кодированием полезной нагрузки. Это не анонс и не обещание сроков — просто признак того, что следующая итерация разрабатывается параллельно.
|
||
|
||
## Помогает ли это против блокировок в России
|
||
|
||
Честный ответ на 4 августа 2026 года: независимых замеров эффективности нет, а доступных полевых отчётов — единицы.
|
||
|
||
Наиболее содержательное подтверждение нашлось на форуме ntc.party: 2 августа 2026 года пользователь Dikoz сообщил, что обфускация третьего поколения сработала там, где предыдущая не срабатывала — «Затестил awg 3.0 с протоном. Действительно работает. Сработал фейк, который до этого не работал. Проверял всё в Throne». Контекст важен для правильного понимания: тестировалась клиентская часть AWG (мусорные и сигнатурные пакеты) поверх обычных WireGuard-конфигураций ProtonVPN через клиент Throne, а не полноценный туннель AWG 3.0 с обеих сторон. Оператор связи в сообщении не назван.
|
||
|
||
> [!warning] Один отчёт — не статистика
|
||
> Сообщение выше — наблюдение одного пользователя на неизвестном операторе, без контрольных замеров. Отчётов формата «работает или нет на МТС, Мегафоне, Билайне» по третьему поколению на начало августа 2026 года найти не удалось. Относитесь к оценкам эффективности как к предварительным.
|
||
|
||
Отдельная иллюстрация того, почему сигнатуры вообще ловятся, — issue [#2857](https://github.com/amnezia-vpn/amnezia-client/issues/2857) от 22 июля 2026 года. В нём показано, что документация и установщики для self-hosted версии 2.0 разносили **одно и то же жёстко заданное значение** `I1` — корректно сформированный 44-байтовый DNS-ответ для домена icloud.com с адресом 77.88.55.55 в записи. Автор issue отмечает и странность самого содержимого: этот адрес принадлежит публичному резолверу Яндекса, для icloud.com такой ответ неестественен. Практический смысл: если тысячи развёртываний шлют перед рукопожатием байт-в-байт одинаковый пакет, он превращается не в маскировку, а в удобный опознавательный знак. В комментарии от 3 августа пользователь bivlked описывает полевое следствие на Tele2 и Мегафоне: туннель не поднимался двое суток со сгенерированным установщиком значением `<r 127>`, а замена на QUIC-подобную сигнатуру или полное удаление строки `I1` восстанавливали связь мгновенно.
|
||
|
||
Вывод, который из этого следует для любой версии протокола: значения обфускации имеет смысл делать уникальными для своей установки, а не копировать примеры из документации. Общий разбор того, как DPI строит и применяет такие признаки, — в [[VLESS/dpi-tls-june-2026|заметке про DPI-почерк TLS]] и [[DPI/ru-network-blocklists|обзоре сетевых блокировок]].
|
||
|
||
## Что делать практически
|
||
|
||
- [ ] Пользуетесь Amnezia Free или Premium — обновите приложение до 5.0.0.5 (или DefaultVPN 2.0.0 на iOS): на старых версиях третье поколение не заработает, а Free остаётся вовсе без протокола.
|
||
- [ ] Держите свой сервер — оставайтесь на [[amnezia-2-0/reference|AWG 2.0]]: поддержка своих серверов смержена в ветку разработки 6 августа 2026 (PR [#2908](https://github.com/amnezia-vpn/amnezia-client/pull/2908)), но ждать нужно релиза приложения новее 5.0.0.5; клиент 5.0.0.5 со старым сервером совместим.
|
||
- [ ] Собираете AWG 3.0 вручную — ставьте `S1`–`S4` не меньше 12 байт, иначе `HeaderProtectionKey` не применится, и обновите `amneziawg-tools` до `v3.0.20260730` или новее.
|
||
- [ ] Собираете модуль ядра — берите ревизию не ниже `v3.0.20260805`: в ней исправлен keepalive-дефект с рукопожатиями каждые 15 секунд, а в ревизиях до `v3.0.20260731-04` на Debian 12 и Ubuntu 22.04 вдобавок падала сборка.
|
||
- [ ] Пробуете `RandomTrailers` из линии 3.1 — включайте его на сервере и клиенте одновременно: сторона без флага отбрасывает удлинённые пакеты рукопожатия, и туннель не поднимется.
|
||
- [ ] Не копируйте значения `I1`–`I5` из документации и чужих инструкций: повторяющаяся сигнатура работает против вас.
|
||
- [ ] Не полагайтесь на один протокол — запасной канал на [[xray/vless|VLESS]] с [[xray/reality|REALITY]] или [[Hysteria/00-overview|Hysteria 2]] стоит держать наготове.
|
||
|
||
## 📚 См. также
|
||
|
||
- [[amnezia-3-0/internals|Внутреннее устройство AmneziaWG 3.0]] — побайтовый разбор по коду: сборка пакета, механика защиты заголовков, content padding, тайминги и анализ того, что протокол всё ещё оставляет видимым.
|
||
- [[amnezia-3-0/client-5-0-0-5|AmneziaVPN 5.0.0.5]] — что изменилось в самом приложении, какие протоколы оттуда убрали и что сломалось при переходе.
|
||
- [[amnezia-2-0/reference|AmneziaWG 2.0: полный справочник параметров]] — детальный разбор `Jc`/`S1`–`S4`/`H1`–`H4`, языка CPS и всех восьми тегов сигнатур; база, поверх которой работает третье поколение.
|
||
- [[protocols/00-overview|Карта протоколов обхода блокировок]] — где AmneziaWG стоит среди VLESS, Hysteria 2 и остальных.
|
||
- [[DPI/vpn-blocking-wave-forecast-summer-2026|Волна блокировок VPN летом 2026]] — обстановка, в которой вышло третье поколение.
|
||
- [[DPI/statistical-morphing-concept|Статистический морфинг трафика]] — почему шифрования мало и приходится править длины, тайминги и заголовки.
|
||
- 🔗 [amneziawg-go](https://github.com/amnezia-vpn/amneziawg-go) — исходники движка и README, единственная актуальная документация по параметрам 3.0.
|
||
- 🔗 [FAQ Amnezia](https://docs.amnezia.org/ru/faq/) — официальные ответы о доступности AWG 3.0 и совместимости с 2.0.
|
||
|
||
---
|
||
|
||
> [!quote] 🤖 Эти статьи открыты — можно обучать на них ИИ
|
||
> При желании вы можете натренировать ИИ на наших статьях. Исходное форматирование и скачивание всего репозитория одним zip-архивом доступны в Forgejo: [исходник этой заметки](https://git.zapret.moe/zapretdiscordyoutube/todo/src/branch/main/amnezia-3-0/reference.md) · [весь репозиторий](https://git.zapret.moe/zapretdiscordyoutube/todo/src/branch/main).
|