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 ставится на сервер сейчас?
v1.0.20260725. На ARM порядок другой: установщик сначала пробует наш предсобранный пакет, закреплённый на той же второй линии, и правило по ядру решает исход только тогда, когда совпадения не нашлось. Поэтому на ARM со свежим ядром вторая линия тоже возможна.Как узнать, какая версия AmneziaWG стоит на моём сервере?
cat /sys/module/amneziawg/version - она читает атрибут version у модуля, загруженного в ядро, а не у файла на диске. Версию утилит отдельно покажет awg --version. Не используйте для этого modinfo: он читает файл на диске, и если на хосте оказались два дерева с модулем одного имени, может назвать не тот, что реально работает в ядре.Нужно ли обновлять AmneziaWG на своём сервере?
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 отличается от второй?
Почему возможности третьей линии не попадают в мои конфиги?
Может ли версия AmneziaWG смениться сама после перезагрузки?
amneziawg-dkms, то при появлении заголовков ядра DKMS соберётся, вытеснит файл предсобранного модуля, и после перезагрузки загрузится уже он, то есть другая линия протокола. Туннель при этом не падает, а dpkg продолжает считать установленным предсобранный пакет. Установщик печатает на этот случай предупреждение: точные команды он даёт, чтобы убрать DKMS-пакет и вернуть его под hold, а поставить модуль заново и перезагрузиться просит словами. Если остановиться на удалении, под новым ядром можно остаться без рабочего модуля, так что версию после перезагрузки стоит проверить в любом случае.Почему на Debian 12 ставится вторая линия, а не третья?
Куда смотреть дальше
Разбор параметров
Что меняется на проводе, какие параметры добавились и что обязано совпадать у сервера и клиента - в ADVANCED.md.
Установка с нуля
Пошаговый гайд по развёртыванию на чистом VPS - в INSTALL_VPS.md. Линию модуля установщик выберет сам.
Управление клиентами
Как заводить, удалять и перевыпускать клиентов после установки - на странице управления клиентами.