AmneziaWG 3.0 на своём сервере: что ставится и надо ли обновляться

Короткий ответ: установщик сам выбирает линию протокола под ваше ядро и архитектуру, а вы ничего не включаете руками. На x86 со свежим ядром уже приезжает третья линия, на Debian 12 и на части ARM остаётся проверенная вторая. Конфиги клиентов при этом работают в обоих случаях, перевыпускать их не нужно.

Посмотреть, что стоит именно у вас

Две команды по SSH, обе безопасные и ничего не меняют.

Что стоит на сервере:

cat /sys/module/amneziawg/version   # версия загруженного модуля
awg --version                      # версия утилит

Первая команда читает атрибут version модуля, который прямо сейчас работает в ядре, а не файла на диске. Этот атрибут объявлен в обеих линиях. Если модуль не загружен, вывода не будет - тогда посмотреть файл на диске поможет modinfo amneziawg | grep ^version.

Почему не modinfo по умолчанию: он читает метаданные того файла, который выбран на диске. Если на хосте оказались два дерева с модулем одного имени, а на ARM так бывает, он назовёт не тот модуль, что реально работает. Команды manage check и manage diagnose, начиная с v5.25.0, спрашивают именно загруженный модуль.

⚠️ Версия apt-пакета на этот вопрос не отвечает, и тут легко обмануться. dpkg -l amneziawg-dkms покажет строку, которая начинается с 1.0.0 - это версия упаковки, а не протокола, и человек, увидевший её, обычно решает, что у него первая версия. Линию выдаёт только хеш коммита в конце строки. Проще не гадать по apt, а спросить сам модуль командой выше.

Какая линия достаётся вашему серверу

Правило одно и применяется автоматически при установке.

Ваш серверОткуда берётся модульЛиния
x86_64, ядро 6.7 или новееPPA команды Amneziaтретья
Ядро старее 6.7 (Debian 12 с 6.1), и на ARM готовый пакет не подошёлзакреплённый модуль из исходников, тег v1.0.20260725вторая
ARM64 или armhf, есть готовый пакет под ваше ядронаш предсобранный пакетвторая
ARM64 или armhf, готового пакета нет, ядро 6.7 или новееPPA команды Amneziaтретья

Порядок на ARM важен и часто удивляет: предсобранный пакет пробуется до установки модуля из PPA, и если он подошёл, модуль из PPA не ставится вовсе - установщик держит его в apt-mark hold. Сам репозиторий PPA к этому моменту уже подключён, из него берутся утилиты. Поэтому на ARM со свежим ядром вы можете получить вторую линию: не по ошибке, а потому что нашлось совпадение. Готовые пакеты собираются для Raspberry Pi 3, 4 и 5, Ubuntu 24.04 и 25.10 ARM64, Debian 12 и 13 ARM64, и все они закреплены на том же теге v1.0.20260725, что и сборка из исходников. Это наш выбор, а не ограничение: третья линия на старых ядрах собирается с конца июля. Пин держится ради предсказуемости - владелец ARM получает тот же проверенный модуль, что и все, а не случайную линию из движущейся ветки.

На ядрах старее 6.7 вторая линия выбирается сознательно. Сборка третьей там действительно падала первые сутки после выхода, upstream починил это 31 июля 2026 года, и сейчас она собирается. Порог держим потому, что именно на старых ядрах третья линия обкатана меньше всего, а закреплённая вторая сверяется по неизменяемому коммиту. Снимем его после отдельной проверки, а не по факту «сборка снова проходит».

Надо ли обновляться

Три случая. Само появление третьей линии ручного переключателя не требует ни в одном из них.

x86 со свежим ядром

Если установщик уже выбрал путь через PPA, следующие выпуски этого пакета приходят обычным apt upgrade: включать отдельно нечего, конфиги клиентов не трогаются. Обратное неверно: сам по себе apt upgrade не переводит на третью линию сервер, где выбран закреплённый путь - там пакет под hold, и выбор пересматривается только при повторном запуске установки.

Debian 12 или ARM с готовым пакетом

Модуль закреплён на неизменяемом теге v1.0.20260725, и новый код в него автоматически не приезжает. Установщик держит в apt-mark hold именно PPA-пакет amneziawg-dkms, чтобы он не встал рядом с закреплённым или предсобранным модулем: иначе в системе оказались бы два дерева с одним именем. Туннель продолжает работать, обновления просто не приходят. Учтите одно: после смены ядра модуль должен появиться под новое ядро. На пути DKMS это происходит само, пересборку запускают apt-хук и служба при загрузке, а manage repair-module нужен только тогда, когда автоматика не справилась. На ARM с предсобранным пакетом пересобирать нечего: там надо запустить установку заново с --force, и она подберёт пакет под новое ядро или уйдёт на DKMS.

Хочу третью линию на таком хосте

Поддерживаемый путь один: получить ядро 6.7 или новее (на Debian 12 это ядро из backports) и переустановить. На ARM учтите порядок: если под новое ядро найдётся готовый пакет, вы снова получите закреплённую вторую линию.

Отдельной команды «обновить протокол» в текущем наборе команд нет: линия модуля выбирается при установке или переустановке, а не переключается на лету.

🔴 Одно исключение, о котором стоит знать владельцам ARM: линия может смениться сама после перезагрузки. Если рядом с предсобранным модулем в системе окажется пакет amneziawg-dkms, то при появлении заголовков ядра DKMS соберётся, вытеснит файл пребилда, и после перезагрузки загрузится уже он - другая линия протокола. Туннель при этом не падает, а dpkg продолжает считать установленным предсобранный пакет. Установщик на этот случай печатает предупреждение: точные команды он даёт, чтобы убрать DKMS-пакет и вернуть его под hold, а поставить модуль заново и перезагрузиться просит словами - остановившись на удалении, под новым ядром можно остаться без рабочего модуля. И проверить версию после перезагрузки всё равно полезно: ответ на вопрос «что у меня стоит» не вечен.

Что происходит с конфигами клиентов

Ничего. Конфиги, которые вы уже раздали, продолжают работать без единой правки, и перевыпускать их не нужно. Установщик генерирует их в формате второй линии: мусорные пакеты Jc, Jmin, Jmax, паддинг S1-S4, диапазонные заголовки H1-H4 и сигнатурные пакеты I1-I5, если они заданы. Модуль третьей линии такие конфиги обслуживает.

Чтобы не было разночтений: установщик выбирает линию модуля ядра, а конфиги и vpn://-ссылки остаются в формате протокола 2 - в самой ссылке так и записано, protocol_version равен 2. Возможностей третьей линии проект не включает и не настраивает.

Возможности третьей линии в генерируемые конфиги пока не попадают, и это не недоделка. Для них нужны клиентские приложения, которые их понимают. Отдельные сторонние клиенты третью линию уже заявили, но приложения, которыми пользуется большинство, до неё пока не дошли: на 17 августа 2026 года последний выпуск флагманского приложения Amnezia вышел раньше, чем появилась 3.1. Включить такие параметры только на сервере нельзя: часть из них обязана совпадать на обеих сторонах, и одностороннее включение оборвёт связь со всеми существующими клиентами разом.

Что нового в третьей линии

Коротко, без разбора байтов. Подробности - в расширенной документации.

Что добавилосьЗачем
Шифрование заголовковПоля, которые во второй линии оставались открытыми, перестают быть готовой структурой для наблюдателя. Криптографию самого WireGuard при этом не трогали.
Добавочный паддинг внутри шифрованной частиСдвигает предсказуемое выравнивание длин пакетов, само по себе бывшее признаком. Совпадения сторон не требует.
Настраиваемые таймингиИнтервалы перезаключения ключей, рукопожатий и keepalive стали параметрами конфигурации вместо жёстких констант протокола. Совпадения сторон они не требуют.

Все эти параметры опциональны и задаются по отдельности. Пока не задан ни один из них, движок третьей линии выдаёт в сеть ровно тот же формат, что и вторая, - именно поэтому ваши текущие конфиги и продолжают работать. Наш установщик ни одного из них не задаёт.

Внутри третьей линии выпуски продолжаются. На 17 августа 2026 года PPA раздавал версию 3.1, добавившую ещё два параметра; отставание репозитория от свежего выпуска в принципе возможно, поэтому постоянного номера мы здесь не пишем. Команда проверки выше отвечает точно и на любой день.

Частые вопросы

Какая версия AmneziaWG ставится на сервер сейчас?
Зависит от ядра и архитектуры, и установщик решает это сам. На x86_64 с ядром 6.7 или новее модуль берётся из PPA команды Amnezia, а там сейчас третья линия протокола (проверено 17 августа 2026). На ядрах старее 6.7, например на Debian 12 с ядром 6.1, ставится закреплённая вторая линия из исходников, тег v1.0.20260725. На ARM порядок другой: установщик сначала пробует наш предсобранный пакет, закреплённый на той же второй линии, и правило по ядру решает исход только тогда, когда совпадения не нашлось. Поэтому на ARM со свежим ядром вторая линия тоже возможна.
Как узнать, какая версия AmneziaWG стоит на моём сервере?
Командой cat /sys/module/amneziawg/version - она читает атрибут version у модуля, загруженного в ядро, а не у файла на диске. Версию утилит отдельно покажет awg --version. Не используйте для этого modinfo: он читает файл на диске, и если на хосте оказались два дерева с модулем одного имени, может назвать не тот, что реально работает в ядре.
Нужно ли обновлять AmneziaWG на своём сервере?
Само появление третьей линии ручного переключателя не требует. Если установщик уже выбрал путь через PPA, следующие выпуски приходят обычным apt upgrade. Если у вас Debian 12 или ARM с предсобранным пакетом, модуль закреплён сознательно на неизменяемом теге, и обычный apt upgrade на третью линию его не переведёт: пакет из PPA держится в hold, а выбор пересматривается только при повторном запуске установки. После смены ядра модуль должен появиться под новое ядро: на пути DKMS это делают apt-хук и служба при загрузке, а manage repair-module остаётся ручным восстановлением, если автоматика не справилась. На ARM с предсобранным пакетом пересобирать нечего, там надо запустить установку заново с флагом --force.
Старые конфиги клиентов перестанут работать?
Нет. Конфиги, которые вы уже раздали, продолжают работать без единой правки. Установщик генерирует их в формате второй линии, и модуль третьей линии такие конфиги обслуживает. Это видно и в самой vpn://-ссылке: поле protocol_version там равно 2. Перевыпускать клиентов не нужно. Это про смену линии модуля. Перевыпуск требуется в другом случае: если запустить переустановку с флагами обфускации, то есть с --preset, --jc, --jmin, --jmax или --no-cps, установщик перегенерирует весь набор Jc, S, H и I1 и сам предупредит, что выданные конфиги придётся заменить.
Чем третья линия AmneziaWG отличается от второй?
Главное отличие - шифрование заголовков пакетов, тех полей, которые во второй линии оставались открытыми. Добавились также добавочный паддинг внутри шифрованной части и настраиваемые тайминги вместо жёстких констант протокола. Все эти возможности задаются по отдельности, и пока не задан ни один из них, движок третьей линии выдаёт в сеть тот же формат, что и вторая. Наш установщик их не задаёт.
Почему возможности третьей линии не попадают в мои конфиги?
Потому что для них нужны клиентские приложения, которые их понимают. Отдельные сторонние клиенты третью линию уже заявили, но приложения, которыми пользуется большинство, до неё пока не дошли: последний выпуск флагманского приложения Amnezia вышел раньше, чем появилась 3.1. Включить такие параметры только на сервере нельзя: часть из них обязана совпадать на обеих сторонах, и включение такого параметра на одном сервере просто оборвёт связь со всеми существующими клиентами.
Может ли версия AmneziaWG смениться сама после перезагрузки?
На ARM это возможно. Если рядом с предсобранным модулем в системе окажется пакет amneziawg-dkms, то при появлении заголовков ядра DKMS соберётся, вытеснит файл предсобранного модуля, и после перезагрузки загрузится уже он, то есть другая линия протокола. Туннель при этом не падает, а dpkg продолжает считать установленным предсобранный пакет. Установщик печатает на этот случай предупреждение: точные команды он даёт, чтобы убрать DKMS-пакет и вернуть его под hold, а поставить модуль заново и перезагрузиться просит словами. Если остановиться на удалении, под новым ядром можно остаться без рабочего модуля, так что версию после перезагрузки стоит проверить в любом случае.
Почему на Debian 12 ставится вторая линия, а не третья?
Это осознанное решение, а не техническое ограничение. Сборка третьей линии на ядре 6.1 действительно падала первые сутки после выхода, upstream починил это 31 июля 2026 года, и сейчас она собирается. Порог оставлен потому, что именно на старых ядрах третья линия обкатана меньше всего, а закреплённая вторая сверяется по неизменяемому коммиту.

Куда смотреть дальше

Разбор параметров

Что меняется на проводе, какие параметры добавились и что обязано совпадать у сервера и клиента - в ADVANCED.md.

Установка с нуля

Пошаговый гайд по развёртыванию на чистом VPS - в INSTALL_VPS.md. Линию модуля установщик выберет сам.

Управление клиентами

Как заводить, удалять и перевыпускать клиентов после установки - на странице управления клиентами.