Новые возможности
-
AmneziaWG 3.0 в режиме kernel — протокол получил семь параметров устройства:
HeaderProtectionKey(шифрование заголовка WireGuard, ChaCha20 в обе стороны),ContentPaddingAdditionи пять таймингов (RekeyAfterTime,RekeyTimeout,RejectAfterTime,KeepaliveTimeout,MaxHandshakeAttempts). Тайминги и паддинг задаются одиночным значением или диапазономmin-max, из которого устройство берёт случайное число на каждый взвод таймера. Параметры редактируются в обфускации туннеля, попадают в.conf, распознаются классификатором версий (бейджawg3) и анализатором конфигов, где header protection оценивается как самая сильная защита от DPI. NativeWG их не получает: прошивка их не понимает, поэтому режим остаётся на AWG 2.0.Секция awg3 в редакторе открывается только тогда, когда в ядре загружен модуль версии 3.x. Причина не косметическая: модуль 1.x не отвергает новые атрибуты netlink, а молча их игнорирует, и настройки выглядели бы применёнными при работающем AWG 2.0. Поэтому проверяется версия реально загруженного модуля, а не маркер поставки: после обновления пакета они расходятся до перезагрузки роутера.
При заданном
HeaderProtectionKeyтребуются значенияS1-S4не меньше 12. Модуль берёт из начала Sx-паддинга 12-байтный nonce, и при более коротком паддинге стороны используют разный nonce, отчего отбрасывается весь трафик. Само ядро проверяет только те S, что пришли в том же запросе, поэтому конфиг вообще без S-ключей оно принимает, оставляя туннель мёртвым: теперь такая связка отклоняется на входе. -
Модули AmneziaWG 3.0 и обновлённый
awgв поставке — модули собраны из тегаv3.0.20260731-02для 28 актуальных моделей, инструментawgизamneziawg-tools v3.0.20260730, статической сборкой на все три архитектуры. Пакет при этом похудел: одинаковые по содержимому модули больше не дублируются под каждую модель, в поставке 10 файлов вместо 46, и mipsel-пакет потерял около четырёх мегабайт. -
Диапазоны в
PersistentKeepalive— в AWG 3.0 keepalive тоже стал диапазоном. Значение вида22-30теперь принимается для kernel-туннелей и для endpoint-ов на вкладке AWG3, где уходит в sing-box как есть. NativeWG диапазон отклоняет с подсказкой перейти на kernel-режим: в NDMS keepalive передаётся числом. -
Резервное копирование настроек AWG Manager — в «Настройках» появились создание и восстановление полной копии каталога данных: туннели, правила маршрутизации, конфигурация sing-box, FreeTurn и WDTT одним архивом
tar.gz. Перед снятием копии состояние замирает, после восстановления пересчитываются порты связанных прокси-клиентов и демон перезапускается сам. Прежняя копия каталога сохраняется рядом на случай отката — теперь только последняя, а не по одной на каждое восстановление. -
WDTT-сервер работает как обычный туннель роутера — сервер регистрируется в NDMS собственным интерфейсом
OpkgTunи получает NAT и доступ из локальной сети тем же способом, что и managed WireGuard-серверы: клиенты видны из LAN, а трафик наружу ходит без ручных правил. Там, где NDMS-путь недоступен, работает независимый режим на iptables с периодической сверкой правил — sing-box, перестраивая свои цепочки, их больше не роняет. -
FreeTurn: режим DNS и список DNS-серверов в UI клиента — флаги
-dns-mode/-dns-serversбэкенд пробрасывал и раньше, теперь они редактируются в мастере и в рабочем режиме рядом с платформой. Для роутера рекомендуетсяplain(UDP/53). -
QR-код увеличивается по клику — в FreeTurn и WDTT.
-
Переименование клиента переносится на связанный туннель — имя AWG-туннеля, созданного из клиента FreeTurn или WDTT, синхронизируется с новым именем клиента; сохранение по карандашу перестало требовать лишних нажатий.
Исправления
-
Импорт AWG 3.0 конфига больше не падает на диапазоне keepalive — конфиг с
PersistentKeepalive = 22-30отвергался с ошибкой разбора, потому что поле ожидало целое число. Тот же конфиг, импортированный как kernel-туннель, вёл себя хуже: значение молча не присваивалось, и туннель поднимался вообще без keepalive. -
Нули из
awg showconfбольше не превращают AWG 2.0 в awg3 — инструмент печатаетContentPaddingAddition = 0и остальные незаданные параметры нулями, и при импорте такого вывода обычный туннель выглядел как awg3. Одиночный ноль теперь читается как «не задано», диапазон вида0-80сохраняется. -
Политики доступа снова работают на KeeneticOS 4.x — в 2.16.3 вкладка перестала прятаться, но ручки
/api/access-policies*регистрировались только на 5.x: вкладка была пустой, а любое действие давало «Некорректный ответ сервера (200)» — запрос уходил в незарегистрированный путь и попадал в обработчик SPA, отдающийindex.htmlс кодом 200. Гейт снят: командаip policyесть с прошивки 2.12, устройства и глобальные интерфейсы на 4.x читаются. Заодно условная регистрация была ловушкой сама по себе — определение версии отдаёт 4.x, пока не заполнены данные NDMS, а маршруты ставятся один раз при старте, поэтому медленный NDMS на загрузке выключил бы вкладку и на 5.x. Отдельно: незарегистрированный путь под/api/теперь отвечает JSON-ошибкой 404, а не страницей, — «загадочная ошибка 200» на стороне клиента больше не появится. -
Панель эксперта sb-router в компактном режиме (#655) — компактный режим держит колонку контента в 960 пикселей при любой ширине окна, поэтому вёрстка панели, разложенная по ширине окна, не перестраивалась: заголовок наезжал на кнопки, а бейджи DNS-правил вылезали за свою колонку. Сетка теперь считается по контейнеру.
-
Порт связанного туннеля не расходится с портом прокси-клиента — при импорте конфига и в UI подставлялся порт из шаблона ссылки вместо реального
listenклиента FreeTurn/WDTT; связка сверяется на загрузке роутера и после автостарта. -
Автостарт FreeTurn и WDTT дожидается сети — подъём клиентов перенесён с ранней фазы старта на холодную загрузку с паузой на настройку DNS, перезапуск демона и событие поднятия WAN. WDTT в режиме vkcalls больше не бьётся о мёртвый
127.0.0.1:53после перезагрузки роутера. -
WDTT-сервер больше не оставляет
OpkgTunс адресом, но без интерфейса — адрес выставлялся до того, как сервер поднимет интерфейс, иndmуходил в цикл перегенерации конфигурации nginx (около одного reload в секунду, четверть процессора и подвисания запросов к роутеру на секунды) — та же поломка, что разбиралась для FakeIP в 2.15. Адрес теперь появляется после интерфейса, снятие идёт в безопасном порядке, а осиротевшие интерфейсы (падение сервера,SIGKILLдемона, перезагрузка, восстановление из копии) убираются фоновой сверкой. -
Периодическая сверка правил NAT для WDTT работала вхолостую — наличие правила проверялось по ненормализованной сети, совпадения не было никогда, и каждые 15 секунд правила пересобирались заново.
-
Длинные кириллические имена клиентов не рвутся — имя туннеля обрезалось по 60 байтам, то есть посреди символа; теперь по символам.
-
Резервное копирование не съедает память роутера — экспорт собирал весь архив в памяти, а импорт целиком оседал в куче: на mipsel/mips со 128-256 МБ и каталогом данных в десятки мегабайт это заканчивалось предсказуемо. Теперь экспорт пишется потоком, у импорта есть предел размера и файл на диске. Отдельно: маркер восстановления снимался только при перезапуске демона, и если после восстановления роутер перезагружался, FreeTurn и WDTT не поднимались уже никогда.
-
wdtt-serverдоставляется с зеркала, а не пакетом — бинарь на 12 МБ убран из репозитория и из aarch64-пакета, установка идёт закреплённой версией0.1.6-awgmс проверкой контрольной суммы (та же модель, что у sing-box и FreeTurn). Раньше уже установленный файл считался достаточным без проверки версии и хеша, из-за чего обновление сервера не доехало бы ни до одного роутера. -
Причина отсутствия модуля ядра видна в журнале — если для модели роутера нет модуля в поставке, обновление молча ничего не делало; теперь пишет об этом строку.
-
Ошибки
iptablesв журнале показывают текст, а неexit status 1— по прежней строке причину сбоя установить было нельзя.
Изменения работы
-
Древние модели больше не получают модуль ядра — из поставки убраны KN-1110, KN-1111, KN-1112, KN-1121, KN-1210, KN-1211, KN-1213, KN-1221, KN-1310, KN-1311, KN-1510, KN-1511, KN-1610, KN-1611, KN-1613, KN-1621 и экспериментальный KN-1810-ndm4. На роутерах, где модуль уже установлен, он остаётся на месте и продолжает работать на AWG 2.0: обновление не находит файла под модель, ничего не копирует и не трогает маркер версии. Чистая установка на такой модели окажется без kernel-режима, доступным останется NativeWG.
-
sing-box обновлён до 1.14.0-beta.4-awgm.5 — сборка форка с поддержкой диапазона в
persistent_keepalive_interval, перенесённая на upstreamv1.14.0-beta.4(в апстриме сbeta.1— JSON Schema для конфигурации плюс исправления).