6.6 KiB
Совместимость с upstream AmneziaWG
Этот документ — канонический источник сведений о версиях AmneziaWG, с которыми сверяется AWG2 Harness. Остальная документация не должна дублировать плавающий набор upstream-версий: она ссылается сюда.
Статус релиза 0.3.1
AWG2 Harness 0.3.1 проверен по официальной документации и исходникам AmneziaWG 3.1 по состоянию на 28 августа 2026 года. Это означает source-validated against AWG 3.1, но не заменяет live-приёмку на production-сервере.
Основной сценарий:
- self-hosted AmneziaWG 3.1;
- AmneziaVPN 5.0.1.5 или новее;
- чистая установка AWG 3.1 через AmneziaVPN;
- контейнер
amnezia-awg2; - интерфейс
awg0; - чтение состояния через
awg, с fallback наwg.
AWG 3.0 и 2.x остаются regression compatibility. Контейнер amnezia-awg поддерживается как legacy fallback. Название AWG2 Harness является именем продукта и пакета, а не ограничением на версию протокола.
Зафиксированная upstream-база
| Компонент | Версия или ревизия | Назначение |
|---|---|---|
| AmneziaVPN | 5.0.1.5, tag 7d4f3e0f5090b74903609179653d1f669d2ad08a |
Self-hosted deployment AWG 3.1 и container contract |
amneziawg-tools |
v3.1.20260812, commit ee0f0a9aa34ff0a0da4b3433b9512781cfe02843 |
CLI, awg-quick, формат show all dump |
amneziawg-go |
v3.1.20260814, commit 1b86b2ae0e493e7ea93f8c1a0f0cb6735b1551f1 |
userspace fallback и reference container image |
Официальные источники:
- FAQ: установка AWG 3.1 на self-hosted-сервер;
- поддерживаемые серверные ОС и архитектуры;
- отображение
DockerContainer::Awg2вamnezia-awg2; show all dumpв tools v3.1.20260812;- kernel-first и userspace fallback в
awg-quick; - Dockerfile
amneziawg-go v3.1.20260814.
Клиентский Dockerfile AmneziaVPN использует amneziavpn/amneziawg-go:latest. Поэтому перечисленные теги являются воспроизводимой reference/source baseline, но не обещанием, что любой будущий контейнер с тегом latest содержит те же сборки. Фактические версии проверяются во время live-приёмки.
Контракт контейнера и tools
Default discovery имеет такой порядок:
container_names = ["amnezia-awg2", "amnezia-awg"]
wg_binaries = ["awg", "wg"]
Отдельного официального типа или имени amnezia-awg3 в зафиксированной версии клиента нет. Оператор может вручную указать другое корректное имя контейнера в amnezia.container_names.
Reference image содержит /usr/bin/awg, /usr/bin/awg-quick и symlinks /usr/bin/wg -> /usr/bin/awg, /usr/bin/wg-quick -> /usr/bin/awg-quick.
Kernel и userspace
awg-quick сначала выполняет ip link add <interface> type amneziawg. Если kernel implementation недоступна, запускается amneziawg-go.
Harness не выбирает реализацию и не требует конкретную из них. Peer state читается через docker exec официальным awg внутри контейнера. Это единая container-side точка доступа для kernel и userspace вариантов и не создаёт зависимости от версии host-side tools.
Контракт show all dump
Исторические widths являются диагностикой:
| Producer | Interface-row | Peer-row |
|---|---|---|
| WireGuard tools | 5 | 9 |
| AWG 2.x tools | 14 | 9 |
| AWG 3.0 tools | 28 | 9 |
AWG 3.1 tools v3.1.20260812 |
30 | 9 |
В AWG 3.1 поля RandomTrailers и DisableCookies добавлены перед fwmark. Peer representation осталось девятиполевым.
Количество колонок interface-row никогда не используется harness для определения версии протокола или классификации peer. Версия tools определяет ширину interface-row, а новые tools могут печатать широкую строку и для конфигурации со старыми параметрами. Parser классифицирует peer семантически по allowed IPs и числовым handshake/RX/TX полям.
Полный interface-row нельзя публиковать в отчётах: во второй колонке находится приватный ключ устройства. Для диагностики выводятся только номер строки, число полей и имя интерфейса.
Переход с AWG 2.0
Официальная модель перехода на AWG 3.1 — удалить AmneziaWG с сервера, установить заново новый контейнер, повторно создать пользователей и выпустить новые connection keys/configuration files.
Harness не выполняет эту миграцию, не читает и не меняет awg0.conf, не генерирует ключи и не управляет протокольными параметрами. Основной документированный путь для 0.3.1 — clean installation. Live acceptance выполняется после того, как AmneziaVPN завершила установку AWG 3.1.