Skip to content

v2.11.0

Choose a tag to compare

@hoaxisr hoaxisr released this 23 May 18:15

Релиз посвящён производительности и стабильности: разговор с роутером ускорился в несколько раз (через объединение запросов и кеши), модуль awg-proxy доведён до идентичности с образцом amnezia-kernel, sing-box получил режим без роутерных прокси связок для тех, кто будет использовать sing-box router, появилось безопасное резервное копирование управляемых серверов.

Производительность

  • NDMS-запросы ускорены — средняя задержка запросов к роутеру снижена до 50%, число «медленных» обращений (>1 с) упало.
  • Параллельные циклы и кеши — для всех туннелей теперь запрашивается параллельно, некоторые подсистемы переведены на кешированные данные вместо повторных запросов.
  • Задержка запросов после сохранения изменний в конфигурации роутера — после save даём роутеру таймаут и сразу инвалидируем кеш.
  • Метрики — периодический итог работы в логе: (сколько запросов схлопнулось в один HTTP-вызов), среднее время ответа на запрос.

NativeWG / awg-proxy (kmod 1.1.7 → 1.1.9)

  • Самостоятельная XChaCha20-Poly1305 реализация (PR #164 автор @AYastrebov) — заменён вызов kernel crypto API на встроенную byte-for-byte реализацию.
  • Прозрачный пересчёт MAC2 на cookie-обмене (PR #155 автор @AYastrebov) — при rate-limit сервер присылает encrypted cookie, дальнейшие handshakes должны нести MAC2 поверх своего MAC1. Без этого fix'а под нагрузкой клиент стабильно ломался после первого cookie reply. Спасибо Андрею.
  • S4 transport prefix — заполняется случайными байтами, как в reference, а не нулями.
  • Жёсткая валидация конфигов — отклоняется неточный hex publickey и пересекающиеся magic headers.
  • HR Neo policies отделены от common — теперь в политики созданные HR Neo нельзя добавить устройства, это не требуется для работы этого инструмента.

Для применения нового модуля перезагрузка роутера обязательна.

Sing-box: переключатель NDMS-прокси

  • Опция «Создавать NDMS Proxy для sing-box» — в настройках появился toggle, позволяющий выключить создание NDMS Proxy-объектов для sing-box туннелей. Зачем: некоторые сценарии маршрутизации не требуют NDMS-проксей, и их создание добавляло лишнюю нагрузку на роутер при каждом save.
    • На странице туннеля бейдж показывает «via sing-box», iperf и другие тесты отключёны.
  • Дедупликация туннелей по fingerprint — повторные вызовы с теми же outbound-параметрами больше не создают дубли в конфиге.

Sing-box router: bypass-порты и фильтрация

  • Bypass пресеты по портам — на странице sing-box роутера в разделе «Дополнительно» теперь можно выбрать порты, трафик по которым пойдёт мимо sing-box маршрутизатора:
    • L2TP / IPsec / IKE / NTP / NetBIOS / SMB — типичные локально-используемые UDP-протоколы, которые иначе подхватывались sing-box'ом и ломались;
    • Дополнительные UDP/TCP порты вводятся вручную, валидируются (порт 0 отклоняется), сортируются и стабильно реконсилируются;
  • Filtering mode — добавлен режим фильтрации в sing-box; правила можно генерировать на лету (generating-srs).
  • Inline наборы правил как .srs файлы — inline-наборы правил больше не интерпретируются на каждый запрос; компилируются в .srs и переиспользуются. На странице правил появилось каскадное удаление: при удалении rule-set'а очищаются все ссылки на него в зависимостях.
  • JRS/inline ruleset парсер — несколько итераций улучшений: корректная обработка инлайнового списка при редактировании rule set'ов, лучше UX модалок, цветовая подсветка JSON-схемы.
  • DNS — улучшения отображения и UX.

Резервное копирование управляемых серверов

  • Полный backup управляемых серверов с приватными ключами — на странице «Серверы» появились кнопки Export/Import:
    • При создании сервера приватный ключ теперь сохраняется в storage; для legacy-серверов автоматически подтягивает ключи при первом старте программы;
    • ASC-обфускация проходит валидацию и верификацию перед записью.
  • Persisted selection — выбранный сервер сохраняется между перезагрузками страницы (localStorage), кнопки Export/Import в одном стиле с туннелями.

NativeWG — стабилизация

  • Issue #136: handshake-fail на replace-config (PR #167) — при замене конфига туннеля приватный ключ и DNS не синхронизировались с интерфейсом, и сервер начинал отказывать в handshake. Теперь sync делается явно. Добавлен regression-тест на replace-config peer-no (PR #163).
  • Убрана петля ExternalRestart для NWG-туннелей (PR #171) — в редких случаях orchestrator уходил в бесконечный цикл рестарта NWG-туннеля. Триггер устранён. Но роутер по своей логике еще может административно выключить туннель если посчитает что он не работает. Работа в этом направлении еще будет продолжена.

Единое логирование

  • Полная унификация на ScopedLogger (PR #170) — все модули пишут в один поток через с подгруппами (orchestrator, kmod, storage, http и т. д.).

Изменения работы

  • Программа больше не пытается запустить hrneo , если HR Neo не установлен (PR #175).
  • Geodata: запрет правки внешних файлов — геофайлы, привязанные к внешним источникам (vernette/v2ray-rules-dat и др.), больше не редактируются вручную. Под капотом — переработана работа со списками (geofile adoption для HR Neo, routed geo downloads, защита от записи пустых конфигов).
  • Frontend в Go-бинарнике — статические файлы теперь упакованы прямо в исполняемый файл, отдельная директория не нужна.
  • OPKG storage: исправлено отображение свободного места при установке OPKG во внутренюю память.

Frontend / UI

  • Иконки — на карточки можно поставить иконки из новой галереи.
  • Sync favicon с акцентным цветом — favicon в браузере подстраивается под выбранную тему.
  • Тёмная тема: автоопределение системы — отдельный режим «по настройке системы» в выборе темы.
  • Компактный «старый» режим — в настройках появился toggle на возврат к классической компактной плотности списков (по запросам пользователей).
  • Sing-box: dense mode — более плотный вид списка туннелей sing-box.
  • Унифицированная типографика и кнопки в карточках туннелей — singbox и AWG-карточки приведены к одному виду.
  • Список туннелей sing-box — переработан UX, лучшие отступы, единые apply-кнопки.
  • Селекторы интерфейсов — улучшены панели выбора (sing-box, NWG, маршруты).
  • AWG конфиг-анализатор в редакторе туннеля — подсветка проблем прямо в форме редактирования.
  • Матрица мониторинга — у туннелей в матрице теперь видны бейджи типа (AWG/NWG/Sing-box) и метка «маршрут по умолчанию».
  • Таблицы соединений - теперь корректно подхватывают тему (раньше на тёмной теме оставались светлые элементы).
  • Welcome banner больше не мигает при первой загрузке.
  • GitHub-ссылка в настройках — быстрый переход в репозиторий.
  • Объединённые иконки тестов туннелей — раньше каждый тест имел свою иконку, теперь они визуально согласованы (жаль не поступила рекламный контракт от крупного банка и пришлось отказаться от их логотипа).
  • Кнопка «Sing-box Proxy» перенесена в более логичное место.

Диагностика

  • Обогащённые и санитизированные отчёты — отчёты диагностики собирают больше системного контекста, при этом чувствительные данные (приватные ключи, токены) фильтруются.
  • Чувствительные хосты в логах sing-box скрываются — IP-адреса и доменные имена в журнале sing-box обезличиваются (порт сохраняется). Можно безопасно скидывать кусок лога в чат поддержки.
  • Мульти-фильтры в журнале — фильтрация записей сразу по нескольким уровням и источникам; добавлен переключатель показа таймстампов.
  • Логи в отчёте — только warn/error — раньше отчёт распухал от info-уровня.
  • Журнал: точная пауза при прокрутке вверх + экспорт — лог не «убегает», когда листаешь историю.
  • About-tab TXT export — экспортируется с локальным временем.
  • Кнопка скачивания отчёта убрана из лога — отчёт качается со страницы Диагностика.

Благодарности

  • @AYastrebov — серия фундаментальных правок в awg-proxy.ko: самостоятельная XChaCha20-Poly1305, MAC2 cookie pipeline.
  • @miuirussia — filtering mode и generating-srs для sing-box, CI/CD, серию правко и вклад в singbox интеграцию.
  • @Dude_47, всем тестировщикам из telegram-чата и тем, кто открывал issues — за репорты, дебаг-логи и терпение.
  • @iquibik - за самоотдачу и огромный вклад в правку и устранения техдолга.
  • @WareandSoft aka @TorTik59 aka @DevRedOWL - за UI/frontend полировки, исправления и ворох идей, за тесты. За новые функции (поддержка Amnezia Premium конфигов и многое другое)
  • Всех кого забыл - простите великодушно, если не указал вас персонально или не указал ваш вклад в проект, я обязательно исправлюсь, ваших заслуг это нисколько не умоляет и ваш вклад очень ценен.
  • Всем - за поддержку финансовую и моральную. К следущей версии ваши ники будут перечислены в секции благодарности.