github hoaxisr/awg-manager v2.17.3

latest release: latest
one hour ago

Добавлено

  • Адрес bootstrap-резолвера sing-box настраивается из UI (#770). В 00-base.json жил жёстко зашитый 1.1.1.1, а именно этим резолвером sing-box превращает доменные адреса в IP: endpoint'ы туннелей, серверы подписок, апстримы DNS-серверов. У части мобильных операторов этот адрес нестабилен или заблокирован — и тогда движок не дотягивается ни до одного сервера с доменным именем, а в журнале копятся ошибки DNS.

  • Sing-box можно удалить из UI (#771). Раньше кнопка была только на установку: поставил движок — живи с ним. Теперь в «Настройки → Интеграции» рядом с «Открыть» есть «Удалить»: движок останавливается, а его каталог удаляется целиком — бинарь, конфигурация config.d, кэш FakeIP и журналы процесса.

  • Привязка исходящего интерфейса (egress bind) для подписок и ручных туннелей (#709) — теперь для любой подписки и ручного прокси-туннеля sing-box можно явно указать сетевой интерфейс (bind_interface), через который будут устанавливаться исходящие соединения с серверами (например, eth3, nwg0, ppp0). Это позволяет жёстко зафиксировать uplink для конкретных провайдеров или туннелей. При смене интерфейса в настройках URL-подписки параметры применяются к серверам сразу из локального состояния, без обращения к сети — переключиться на модем можно и при лежащем основном канале.

  • Два новых параметра маскировки AmneziaWG 3.1: случайные хвосты и отключение cookie. Их приносит версия протокола 3.1, и настраиваются они в редакторе туннеля рядом с остальными параметрами обфускации. (проверить версию amnezia-linux-kernel-module необходимо через demsg | grep amnezia - ожидаемая версия 3.1.20260812)

    Обе новые настройки показываются только там, где они действительно работают: в режиме ядра нужен загруженный модуль AmneziaWG версии не ниже 3.1. Обратной совместимости между 3.1 и 3.0 нет, так же как между 3.0 и 2.0.

ВАЖНО: Перезагрузите роутер после установки новой версии AWGM. Модуль ядра загружается только на старте системы и не может быть загружен на действующей системе автоматически.

Для MIPSBE (en7512 и en7516) — это KN-2010, KN-2110, KN-2112, KN-2410, KN-2510 и KN-3610. На них режим ядра не работал в принципе, при любых настройках, теперь исправление пришло из upstream протокола.

Изменено

  • Встроенный sing-box обновлён до 1.14.0-beta.17-awgm.13 — версия понимает оба новых параметра 3.1 для туннелей, работающих через sing-box, и приносит с собой три исправления.

    Туннель с доменным адресом сервера больше не мешает запуску. Если адрес VPN-сервера задан именем, а не IP, sing-box раньше отказывался стартовать, пока это имя не разрешится. После перезагрузки роутера DNS поднимается не мгновенно, поэтому движок падал, пробовал снова, снова падал — и уходил в паузу, которая доходила до пятнадцати минут. Всё это время туннели не работали, хотя интернет уже был. Теперь запуск не ждёт: имя разрешается позже, при первой попытке связаться с сервером, и туннель поднимается сам.

    Подключения по REALITY к серверам со свежим Xray. Xray начиная с версии 26.3.27 по умолчанию отклоняет клиентов, которые представляются версией старее его собственного порога, — под это попадали все сборки sing-box, включая нашу, и подключение просто не устанавливалось без внятной причины. Особенно заметно стало после панели 3x-ui 3.5.0, которая приносит с собой Xray 26.7.11. Версия, которую сообщает наш клиент, обновлена, и такие серверы снова принимают подключение.

    Обновлён mieru — 3.36.0. Сервер быстрее опознаёт пользователя при новых подключениях, а шифрование стало экономнее к памяти: меньше нагрузки на сборщик мусора, что заметнее всего на слабых моделях.

Исправления

  • FakeIP: выбранный «настоящий» DNS-сервер снова участвует в резолве доменов. В режиме FakeIP движок назначает резолвером доменных адресов свой отдельный сервер, но эта запись молча пропадала при склейке конфигурации: одноимённый ключ базового файла перекрывал её, потому что при совпадении скаляров sing-box берёт значение из файла, идущего первым по имени. В итоге домены резолвил bootstrap-резолвер, а адрес, выбранный в настройках FakeIP, не влиял ни на что. Теперь базовый файл уступает ключ, как только его задаёт слот маршрутизации, — и на загрузке, и при включении режима на лету.

  • HydraRoute Neo: правила по подсетям снова работают (#767). Правило с доменами (например, 2ip.io) уезжало в туннель, а правило с подсетями — скажем, пресет Telegram — молча не срабатывало. Причина была не в самом правиле: сохранение настроек HR Neo в AWGM дописывало в конфигурацию демона наши значения по умолчанию, а они не совпадали с теми, что демон подставляет сам, когда ключа в файле нет. В файл уходило CIDR=false, и демон переставал читать список подсетей целиком; заодно писался autoStart=false, запрещавший ему запускаться после перезагрузки. Теперь наши значения совпадают с его собственными по всем параметрам, которыми мы управляем, а конфигурации, уже испорченные прежними версиями, чинятся при запуске — с записью в журнал и перезапуском демона, без ручного вмешательства. Значения, которые вы правили сами, при этом не трогаются.

  • Снятие маршрута по умолчанию больше не выглядит провалом. Роутер отвечает на эту команду критической ошибкой Io::Netlink … file exists, хотя запись при этом реально снимает. С прошлого выпуска, где ответы роутера перестали теряться, эта ложная ошибка стала останавливать выключение режима «Политики + tun»: пользователю показывалась несуществующая неполадка, а внутренние кэши маршрутов не обновлялись.

  • Синхронизация DNS-маршрутов не застревает на удалённом интерфейсе. Список на удаление строится из того, что сейчас на роутере, и мог содержать правило, чей интерфейс уже удалён. Отказ роутера на такой записи прерывал весь цикл синхронизации — вместе с последующими шагами, — и та самая запись не вычищалась уже никогда.

  • Сегмент, удалённый при включённом policy-tun, больше не ломает ни включение, ни выключение. Восстанавливать NAT на исчезнувшем сегменте нечего: теперь он пропускается вместе со своей записью, а не роняет операцию целиком и не оставляет запись в настройках навсегда.

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

  • Режимы FakeIP и «Политики + tun» больше не предлагаются там, где они не работают (#768). Оба построены на интерфейсе OpkgTun, а он появился только в KeeneticOS 5.x. На прошивках 4.x роутер отказывал в создании интерфейса, но отказ был не виден: включение доходило до следующего шага и падало сообщением про список доступа — «no "OpkgTun0" IP interface found», из которого понять причину было невозможно. Теперь на таких прошивках оба режима заблокированы с пояснением, а попытка включить их через API отклоняется до того, как разберётся текущий режим.

  • То же сделано и для остальных команд роутера. Политики доступа и привязка устройств, прокси-интерфейсы, статические маршруты, NAT, DNS-маршруты, FQDN-группы и параметры маскировки AmneziaWG тоже читали только внешнюю оболочку ответа, поэтому, например, попытка добавить в политику устройство, не зарегистрированное на роутере, выглядела успешной и молча не срабатывала. Теперь такие отказы всплывают своим текстом. Повторный снос того, чего уже нет (политика, прокси, маршрут, правило DNS, группа), по-прежнему считается успехом — на этом держатся повторные попытки уборки.

  • Отказ роутера при настройке интерфейса больше не теряется. Команды NDMS отвечают «200 OK» и кладут отказ внутрь ответа; создание интерфейса, назначение адреса, MTU, описания и подъём читали только внешнюю оболочку, поэтому проваленный шаг рапортовал об успехе, а падало через один-два шага и с чужой формулировкой. Теперь такие отказы всплывают сразу и своим текстом. Снос интерфейса, которого уже нет, по-прежнему считается успехом — на нём держатся повторные попытки уборки.

  • Подписки: серверы больше не объявляются сиротами на ровном месте. После обновления подписки почти все её серверы попадали в «сироты» и тут же заводились заново — с тем же адресом, портом, SNI и именем (#745). На работу
    подписки это не влияло, но список сирот приходилось чистить руками после каждого обновления.

  • KeenDNS: все слмано Почему именно так: в прошивках 5.1.3 Preview и 5.2 Alpha адрес, по которому
    роутер обслуживает свои имена, переехал с 78.47.125.180 в диапазон 198.51.100.0/24 (у Keenetic и NetCraze он разный и может меняться). Такой адрес публичный DNS не отдаёт в принципе — попасть на роутер по имени можно только через его собственный резолвер.

Don't miss a new awg-manager release

NewReleases is sending notifications on new releases.