Skip to content

🆙 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 (и, вероятно, более поздние версии). Значения по умолчанию одинаковы у всех, а значит узнаваемы.

Порядок действий:

  1. Сгенерируйте параметры на сайте architect.vai-rice.space/amneziawg.
  2. В приложении AmneziaVPN откройте «Настройки сервера» → «AmneziaWG» → «AmneziaWG настройки сервера».
  3. Вручную перенесите все сгенерированные значения в соответствующие поля.
  4. Сохраните изменения.

Две настройки, которые стоит выставить осознанно:

  • ⚠️ 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 и регион
Браузерный отпечатокРазмеры пакетов берутся у настоящего браузера, чтобы длины совпадали с обычным трафиком устройства
Цепочка CPSI1–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 (см. Управление сервером) и переименуйте контейнер:

bash
docker rename amnezia-awg2 amnezia-awg2-old

Проверить, что получилось, можно так — контейнер остался запущенным, изменилось только имя:

bash
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:

  1. Удалите контейнер AmneziaWG с сервера.
  2. Установите приложение AmneziaVPN версии 4.8.21.0 — именно версия приложения определяет, какую версию протокола оно развернёт.
  3. Через приложение заново установите AmneziaWG на сервер.

Конфигурации снова придётся перевыпустить

Откат — это тоже переустановка контейнера. Все выданные ранее файлы .conf перестанут работать.

Если что-то пошло не так ​

  • Сначала убедитесь, что дело в протоколе, а не в сервере: пошаговая диагностика.
  • Провайдер может резать UDP целиком — тогда никакая обфускация не спасёт, надёжнее перейти на TCP-протокол: AmneziaWG → XRay.

Настройка протокола — не зона хостинга

Мы продаём сервер, а не VPN-сервис. Обновление протокола и подбор параметров лежат на вашей стороне — см. зону ответственности. Этой инструкцией мы делимся тем, что собрали сами и что прислало сообщество, но разбирать чужие конфигурации мы не сможем.

Источники ​

Порядок обновления, откат и схема с переименованием контейнера взяты из инструкций Shidla — «Протокол AmneziaWG» — спасибо за собранный и проверенный материал. Разбор параметров генератора — в справочнике как устроен AmneziaWG.