🆙 AmneziaWG: обновление с 2.0 на 3.1
В версии 3.x у AmneziaWG появилась защита транспорта. Всё, что было раньше, прятало рукопожатие — момент установки соединения. Защита транспорта прячет уже работающий туннель: заголовки шифруются, транспортные пакеты добиваются паддингом, а таймеры перестают быть постоянными.
Обновляться нужно не всем
Если AmneziaWG 2.0 у вас подключается и работает — можно ничего не трогать. Эта страница пригодится, когда провайдер начал резать соединение и хочется поднять устойчивость, не уходя с AWG. Про сами версии и параметры обфускации — AmneziaWG: версии и настройка.
Как перейти на 3.1
Обновления «на месте» здесь нет: протокол удаляется с сервера и ставится заново — приложение разворачивает актуальную версию контейнера. Всё делается в приложении AmneziaVPN, доступ к серверу по SSH не нужен.
Названия пунктов
Ниже подписи даны как в английском интерфейсе и, через дробь, как в русском. Если у вас приложение на другом языке — ориентируйтесь по расположению пунктов.
Шаг 1. Откройте настройки сервера
В списке серверов нажмите шестерёнку ⚙️ справа от нужного сервера. Под названием сервера показан его IP-адрес — убедитесь, что это тот самый сервер.
Шаг 2. Откройте протокол
Откроется страница сервера с вкладками Protocols / Протоколы, Services / Сервисы и Management / Управление. На вкладке Protocols нажмите на строку AmneziaWG — стрелка › справа.
Шаг 3. Удалите протокол
На экране AmneziaWG settings / Настройки AmneziaWG будет четыре пункта:
- AmneziaWG connection settings — настройки подключения
- AmneziaWG server settings — настройки сервера
- Clear profile — очистить профиль
- Remove — удалить (красным)
Нажмите Remove. Это удаляет контейнер AmneziaWG с сервера.
Не перепутайте с «Clear profile»
Clear profile очищает только профиль подключения на устройстве — контейнер на сервере остаётся прежней версии, и обновления не произойдёт. Нужен именно Remove.
Шаг 4. Установите протокол заново
Вернитесь к списку серверов, снова нажмите шестерёнку ⚙️ и на вкладке Protocols / Протоколы выберите AmneziaWG — теперь уже для установки. Приложение развернёт контейнер актуальной версии.
После установки сразу переходите к следующему разделу: параметры по умолчанию менять нужно обязательно.
Старые профили перестанут работать
Переустановка протокола делает ранее выданные конфигурации недействительными. Сгенерируйте и раздайте пользователям новые файлы .conf — старые не заработают ни на одном устройстве.
Сразу смените параметры по умолчанию
Это важнее самого обновления
Настоятельно рекомендуем не оставлять параметры, которые контейнер получает по умолчанию при развёртывании через AmneziaVPN 5.0.1.5 (и, вероятно, более поздние версии). Значения по умолчанию одинаковы у всех, а значит узнаваемы.
Порядок действий:
- Сгенерируйте параметры на сайте architect.vai-rice.space/amneziawg.
- В приложении AmneziaVPN откройте «Настройки сервера» → «AmneziaWG» → «AmneziaWG настройки сервера».
- Вручную перенесите все сгенерированные значения в соответствующие поля.
- Сохраните изменения.
Две настройки, которые стоит выставить осознанно:
- ⚠️ MTU = 1280. Рекомендуемое значение для 3.1. Слишком большой MTU приводит к фрагментации пакетов, и на части маршрутов связь рвётся.
- ⚠️
ContentPaddingAddition= 2–10 — если скорость оказалась низкой. Паддинг добавляет объём к каждому пакету, поэтому его подбирают в минимально достаточном размере.
И снова про профили
Смена серверных параметров — это тоже инвалидация всех выданных конфигураций. После правки настроек перевыпустите файлы пользователям.
Что настраивается в генераторе
Генератор собирает конфигурацию по группам параметров. Понимать их целиком не обязательно — значения переносятся в приложение как есть, — но полезно знать, за что отвечает каждая группа. Подробный разбор каждого параметра и того, какие из них обязаны совпадать с сервером, — в справочнике как устроен AmneziaWG.
| Группа | За что отвечает |
|---|---|
| Протокол (версия) | Определяет, какие параметры вообще существуют. У 1.0 нет S3, S4 и цепочки CPS; диапазоны заголовков появились в 2.0; защита транспорта — в 3.0 |
| Целевой клиент | Задаёт потолки значений: у разных клиентов разные пределы, и генератор считает под ту сборку, куда поедет конфиг |
| Сеть | MTU интерфейса туннеля, адрес сервера host:port |
| Режимы | Режим роутера держит нагрузку низкой для слабого железа; экстремальный снимает ограничения и берёт предельные значения |
| Junk-поезд | Пустые пакеты перед рукопожатием, чтобы оно не было первым, что видит наблюдатель: Jc — сколько, Jmin и Jmax — какого размера |
| Размеры пакетов | S1–S4: случайный паддинг перед каждым типом пакета, меняет длины так, чтобы по ним нельзя было опознать протокол |
| Заголовки | H1–H4: четыре магических числа, по которым принимающая сторона понимает тип пакета |
| Профиль мимикрии | На что похожи мусорные пакеты; выбирается хост с HTTP/3 и регион |
| Браузерный отпечаток | Размеры пакетов берутся у настоящего браузера, чтобы длины совпадали с обычным трафиком устройства |
| Цепочка CPS | I1–I5: поддельные пакеты до рукопожатия, которые получатель не разбирает — они существуют только для наблюдателя |
| Защита транспорта | HeaderProtectionKey, ContentPaddingAddition, рандомизация таймеров, RandomTrailers, DisableCookies |
Диапазоны заголовков не должны пересекаться
H1–H4 должны совпадать с сервером и не пересекаться между собой. Генератор показывает пересечения наглядно — если они есть, конфигурация не заработает.
Ограничения клиентов
Набор доступных тегов зависит от того, на каком движке работает клиент, — генератор учитывает это сам, но знать полезно.
Клиенты для Android, iOS, Windows, macOS и Linux используют amneziawg-go. Его словарь тегов: <b>, <t>, <r>, <rc>, <rd>, <d>, <ds>, <dz>.
- Тега
<c>вamneziawg-goнет вовсе. Если он попадёт в цепочку CPS, клиент отвергнет конфигурацию целиком. - Счётчик пакетов реализован только в модуле ядра Linux.
Поставить 3.1, не потеряв работающий 2.0
Штатный путь удаляет старый контейнер вместе со всеми выданными ключами. Если 2.0 обслуживает живых пользователей и обрывать их нельзя, контейнер можно не удалять, а переименовать — тогда приложение не увидит его, посчитает, что протокола нет, и поставит рядом новый.
Что вы получите и чего не получите
Контейнер AWG 2.0 продолжит работать, и уже выданные конфигурации не сломаются. Но управлять им из приложения вы больше не сможете: выдать нового пользователя из 2.0 без дополнительных переименований не получится. Это способ дожить со старыми клиентами до их переезда, а не постоянная схема.
Подключитесь к серверу по SSH (см. Управление сервером) и переименуйте контейнер:
docker rename amnezia-awg2 amnezia-awg2-oldПроверить, что получилось, можно так — контейнер остался запущенным, изменилось только имя:
docker ps | grep amneziaЗатем из приложения AmneziaVPN 5.0.1.5 установите протокол AmneziaWG обычным способом (шаг 4 выше). Он встанет как AWG 3.1 и займёт освободившееся имя amnezia-awg2.
После этого на сервере окажется три контейнера: новый amnezia-awg2 (3.1), старый amnezia-awg (1.x, если он у вас был) и переименованный amnezia-awg2-old (2.0). Из приложения при этом управляются только 1.x и 3.1 — переименованный 2.0 для него невидим.
Откат с 3.1 на 2.0
Если на сервере уже стоит AmneziaWG 3.1, а нужно вернуться на 2.0:
- Удалите контейнер AmneziaWG с сервера.
- Установите приложение AmneziaVPN версии 4.8.21.0 — именно версия приложения определяет, какую версию протокола оно развернёт.
- Через приложение заново установите AmneziaWG на сервер.
Конфигурации снова придётся перевыпустить
Откат — это тоже переустановка контейнера. Все выданные ранее файлы .conf перестанут работать.
Если что-то пошло не так
- Сначала убедитесь, что дело в протоколе, а не в сервере: пошаговая диагностика.
- Провайдер может резать UDP целиком — тогда никакая обфускация не спасёт, надёжнее перейти на TCP-протокол: AmneziaWG → XRay.
Настройка протокола — не зона хостинга
Мы продаём сервер, а не VPN-сервис. Обновление протокола и подбор параметров лежат на вашей стороне — см. зону ответственности. Этой инструкцией мы делимся тем, что собрали сами и что прислало сообщество, но разбирать чужие конфигурации мы не сможем.
- Вопросы по протоколу и параметрам — в сообщество Amnezia: русский чат, English.
- В поддержку хостинга пишите, если дело в самом сервере: не включается, недоступен, статус Bad State.
Источники
Порядок обновления, откат и схема с переименованием контейнера взяты из инструкций Shidla — «Протокол AmneziaWG» — спасибо за собранный и проверенный материал. Разбор параметров генератора — в справочнике как устроен AmneziaWG.
