Skip to content

Releases: AtomAlex12/gp-horizon

v0.5.0

Choose a tag to compare

@AtomAlex12 AtomAlex12 released this 11 Oct 20:10
dc4f944

Первый стабильный релиз 0.5. В него вошло всё из бет 0.5.0-beta.1 … beta.11, исправления
сбоя 10.10.2026 и 0.4.1, которая отдельно не выпускалась.

Обновиться с 0.4.0. Роутер — «Система» → «Обновления» → «Обновить» или nuxk update.
Pi — один раз командой sh ~/nuxk/nuxk-full.sh update: она спросит пароль sudo, поставит
службу для кнопки «Обновить всё» и команду nuxk-pi; дальше — кнопкой. Ставить заново —
командами из README: ссылка releases/latest теперь ведёт на 0.5.0.

Главное с 0.4.0

  • Защищённый DNS (по желанию, по умолчанию выключен). Роутер спрашивает nuxk, nuxk —
    серверы DoH через туннель: провайдер не подменит ответ. Кэш с учётом TTL и последний
    известный адрес при сбое, проверка подмены, обзор за последний час и журнал запросов,
    вариант со SmartDNS (бета). Если nuxk отвечает плохо, DNS сам возвращается к Keenetic.
  • Всё — кнопками. «Обновить всё» — роутер и контроллер на Pi одним действием, с откатом,
    если новая версия не ответила. «Компоненты»: WARP, VLESS, SmartDNS и nfqws2 ставятся из
    панели, «Переустановить» — для сломанных. Команда nuxk-pi на Pi.
  • Подбор стратегий — со всеми функциями GP (плагин GP v0.4.4): домены из «Списков»,
    категорий v2fly, списков GP или вручную; живой ход и журнал прогона; история с причиной
    завершения; поиск и выгрузка стратегий; списки, категории и бэкапы GP.
  • Логи: роутер и Pi в одной ленте, «Отладка» по таймеру, «Скачать» одним файлом.
  • Проверка часов роутера и предупреждение о служебных адресах в списках — см. ниже.
  • Роутеры на mips и mipsel: xray 26.2.6 (26.3.x на ядре 3.4 не запускается), интерфейсы
    OpkgTun создаются (ndmc с библиотеками прошивки), установка не обрывается из-за VLESS,
    ключ для контроллера создаётся и на KeeneticOS 5.01.
  • Название GP Horizon, репозиторий AtomAlex12/gp-horizon.
    Команды, пути и объекты nuxk-* в Keenetic не изменились.

Исправлено после 0.5.0-beta.11

DNS nuxk больше не оставляет дом без интернета. 10.10.2026 после перезагрузки роутер не
выходил в интернет, пока DNS в Horizon не выключили: проверке интернета Keenetic нужен был DNS,
а DNS nuxk — интернет. Когда интернет появился, SmartDNS оказался привязан к ещё не
подключённому WARP: каждый ответ ждал таймаута (1,8 с), устройства повторяли запросы — до 1900
в минуту. Проверка здоровья этого не видела: она спрашивала одно имя, которое отвечало.

Fixed

  • Роутер выходит в интернет после перезагрузки. Keenetic сохраняет адрес DNS nuxk в
    стартовую конфигурацию при любом изменении настроек в своём веб-интерфейсе, а его проверка
    интернета (ping-check) пингует имена — dzen.ru, vk.com, ya.ru. После перезагрузки получался
    замкнутый круг: проверке нужен DNS, DNS nuxk нужен интернет, а интернет для самого роутера
    Keenetic не включает, пока проверка не пройдёт. Теперь агент при старте исходит из того, что
    роутер уже спрашивает его, и если первая же проверка не прошла — сразу отдаёт DNS самому
    Keenetic, а возвращается, когда начнёт отвечать.
  • DNS идёт через туннель, только пока туннель подключён. WARP или VLESS, который ещё
    подключается или упал, больше не считается путём: SmartDNS и встроенный DNS nuxk идут напрямую
    по DoH и возвращаются в туннель, как только он подключится.
  • SmartDNS после перезапуска агента (загрузка роутера, обновление) получает свою конфигурацию
    заново. Раньше он работал с той, с которой его поднял init-скрипт при загрузке, — привязанной к
    WARP.
  • Проверка здоровья DNS по качеству ответа. Раз в 30 с nuxk спрашивает имя, которого нет в
    кэше; ответ с ошибкой (SERVFAIL) и ответ дольше 1,5 с считаются отказом. Две неудачи подряд —
    SmartDNS перезапускается (не чаще раза в 5 мин), три — DNS отдаётся самому Keenetic, пока nuxk
    снова не начнёт отвечать быстро. Раньше отказом считалось только полное молчание.
  • «Прогоны»: ход идущего прогона берётся и из данных самого GP — проверки «из скольких»,
    набор стратегий, удачные проверки, этап по-русски. Раньше при GP v0.4.4 панель писала
    «Готовлю проверку…» на всё время прогона.
  • «Логи»: при открытии лента стоит на последних записях и следует за новыми, пока её не
    прокрутить вверх. Ссылки в подсказках выглядят как ссылки, а не как кнопки.
  • «Результаты»: «удачных проверок» вместо «найдено» — это число проверок, а не стратегий.
  • Документация и панель больше не утверждают, что объекты nuxk пропадают при
    перезагрузке.
    Агент конфигурацию роутера не сохраняет, но Keenetic сохраняет её целиком
    при любом изменении настроек в своём веб-интерфейсе — вместе с объектами nuxk-* и DNS
    nuxk. Исправлены README, docs/, текст подтверждения в «DNS» и описание API; nuxk uninstall подсказывает, как убрать объекты и из сохранённой конфигурации.
  • Подсказки панели о старом агенте или контроллере называют версию 0.5.0, а не номера бет.

Added

  • Проверка часов роутера. Раз в 30 мин агент сверяет своё время с заголовком Date
    ответа http://1.1.1.1 (без DNS и TLS). Расхождение больше 2 мин — предупреждение в журнале и
    в «Требует внимания» на дашборде: при неверном времени не работают DoH, подписки, VLESS
    Reality и WireGuard. 10.10.2026 часы роутера после перезагрузки отставали на 5 суток.
  • Предупреждение о служебных адресах в списках. Если домен из списка WARP или VLESS
    накрывает серверы времени (time.cloudflare.com, time.google.com, pool.ntp.org…), DoH-серверы или
    регистрацию WARP, на дашборде и в «Списках» появляется предупреждение: пока туннель лежит,
    через него не синхронизируется время и не работает DNS.
  • События DNS в журнале: включение и выключение, смена движка и пути, подключение к
    DNS-прокси Keenetic и отключение от него, перезапуск SmartDNS, плохие ответы.
  • «Отладка» в «Логах». Переключатель включает подробный журнал на 15 минут – 4 часа и сам
    выключается, когда время выйдет. Через Pi одна кнопка включает его везде: на роутере, в
    контроллере и в хосте плагинов.
  • Что видно в отладке на роутере: каждый вызов скриптов движков (команда, время, ошибка),
    каждый запрос к Keenetic (RCI) и команды ip6tables/ipset, план маршрутизации за проход, итог
    каждой проверки движка, сбои DNS-серверов, обновление подписки VLESS, изменяющие запросы к
    API. Ключи, конфиги и ссылки подписок в журнал не попадают.
  • На Pi: запросы панели, которые что-то меняют или падают, запуск и проверка плагинов, вход в
    GP и всё, что печатает сам GP (его ошибки, трассировки Python).
  • Одна лента: записи роутера и Pi вместе, по времени, с пометкой источника и фильтром
    «всё / роутер / Pi». «Скачать» сохраняет всё собранное одним текстовым файлом.
  • Документация. Новый README: возможности, архитектура, требования, установка, скриншоты.
    Справочники в docs/: команды, конфигурация, API, модель безопасности и оглавление.

Changed

  • Контроллер пишет «роутер недоступен» один раз, напоминает раз в 10 мин и сообщает, сколько
    длился простой. Раньше — на каждый опрос: 715 строк за 3 часа.
  • В памяти теперь 2000 записей вместо 500. Отладочные записи хранятся только в памяти: файл на
    флеше роутера по-прежнему получает info и выше.
  • Журнал в панели больше не теряет записи, когда агент перезапускается (например, при
    обновлении): после переподключения он дочитывает всё, что пропустил.

v0.5.0-beta.12

v0.5.0-beta.12 Pre-release
Pre-release

Choose a tag to compare

@AtomAlex12 AtomAlex12 released this 10 Oct 22:25
c341565

DNS nuxk больше не оставляет дом без интернета. 10.10.2026 после перезагрузки роутер не
выходил в интернет, пока DNS в Horizon не выключили: проверке интернета Keenetic нужен был DNS,
а DNS nuxk — интернет. Когда интернет появился, SmartDNS оказался привязан к ещё не
подключённому WARP: каждый ответ ждал таймаута (1,8 с), устройства повторяли запросы — до 1900
в минуту. Проверка здоровья этого не видела: она спрашивала одно имя, которое отвечало.
Плюс логи с отладкой — с роутера и с Pi в одной ленте.

Fixed

  • Роутер выходит в интернет после перезагрузки. Keenetic сохраняет адрес DNS nuxk в
    стартовую конфигурацию при любом изменении настроек в своём веб-интерфейсе, а его проверка
    интернета (ping-check) пингует имена — dzen.ru, vk.com, ya.ru. После перезагрузки получался
    замкнутый круг: проверке нужен DNS, DNS nuxk нужен интернет, а интернет для самого роутера
    Keenetic не включает, пока проверка не пройдёт. Теперь агент при старте исходит из того, что
    роутер уже спрашивает его, и если первая же проверка не прошла — сразу отдаёт DNS самому
    Keenetic, а возвращается, когда начнёт отвечать.
  • DNS идёт через туннель, только пока туннель подключён. WARP или VLESS, который ещё
    подключается или упал, больше не считается путём: SmartDNS и встроенный DNS nuxk идут напрямую
    по DoH и возвращаются в туннель, как только он подключится.
  • SmartDNS после перезапуска агента (загрузка роутера, обновление) получает свою конфигурацию
    заново. Раньше он работал с той, с которой его поднял init-скрипт при загрузке, — привязанной к
    WARP.
  • Проверка здоровья DNS по качеству ответа. Раз в 30 с nuxk спрашивает имя, которого нет в
    кэше; ответ с ошибкой (SERVFAIL) и ответ дольше 1,5 с считаются отказом. Две неудачи подряд —
    SmartDNS перезапускается (не чаще раза в 5 мин), три — DNS отдаётся самому Keenetic, пока nuxk
    снова не начнёт отвечать быстро. Раньше отказом считалось только полное молчание.
  • «Прогоны»: ход идущего прогона берётся и из данных самого GP — проверки «из скольких»,
    набор стратегий, удачные проверки, этап по-русски. Раньше при GP v0.4.4 панель писала
    «Готовлю проверку…» на всё время прогона.
  • «Логи»: при открытии лента стоит на последних записях и следует за новыми, пока её не
    прокрутить вверх. Ссылки в подсказках выглядят как ссылки, а не как кнопки.
  • «Результаты»: «удачных проверок» вместо «найдено» — это число проверок, а не стратегий.

Added

  • Проверка часов роутера. Раз в 30 мин агент сверяет своё время с заголовком Date
    ответа http://1.1.1.1 (без DNS и TLS). Расхождение больше 2 мин — предупреждение в журнале и
    в «Требует внимания» на дашборде: при неверном времени не работают DoH, подписки, VLESS
    Reality и WireGuard. 10.10.2026 часы роутера после перезагрузки отставали на 5 суток.
  • Предупреждение о служебных адресах в списках. Если домен из списка WARP или VLESS
    накрывает серверы времени (time.cloudflare.com, time.google.com, pool.ntp.org…), DoH-серверы или
    регистрацию WARP, на дашборде и в «Списках» появляется предупреждение: пока туннель лежит,
    через него не синхронизируется время и не работает DNS.
  • События DNS в журнале: включение и выключение, смена движка и пути, подключение к
    DNS-прокси Keenetic и отключение от него, перезапуск SmartDNS, плохие ответы.
  • «Отладка» в «Логах». Переключатель включает подробный журнал на 15 минут – 4 часа и сам
    выключается, когда время выйдет. Через Pi одна кнопка включает его везде: на роутере, в
    контроллере и в хосте плагинов.
  • Что видно в отладке на роутере: каждый вызов скриптов движков (команда, время, ошибка),
    каждый запрос к Keenetic (RCI) и команды ip6tables/ipset, план маршрутизации за проход, итог
    каждой проверки движка, сбои DNS-серверов, обновление подписки VLESS, изменяющие запросы к
    API. Ключи, конфиги и ссылки подписок в журнал не попадают.
  • На Pi: запросы панели, которые что-то меняют или падают, запуск и проверка плагинов, вход в
    GP и всё, что печатает сам GP (его ошибки, трассировки Python).
  • Одна лента: записи роутера и Pi вместе, по времени, с пометкой источника и фильтром
    «всё / роутер / Pi». «Скачать» сохраняет всё собранное одним текстовым файлом.
  • Документация. Новый README: возможности, архитектура, требования, установка, скриншоты.
    Справочники в docs/: команды, конфигурация, API, модель безопасности и оглавление.

Changed

  • Контроллер пишет «роутер недоступен» один раз, напоминает раз в 10 мин и сообщает, сколько
    длился простой. Раньше — на каждый опрос: 715 строк за 3 часа.
  • В памяти теперь 2000 записей вместо 500. Отладочные записи хранятся только в памяти: файл на
    флеше роутера по-прежнему получает info и выше.
  • Журнал в панели больше не теряет записи, когда агент перезапускается (например, при
    обновлении): после переподключения он дочитывает всё, что пропустил.

v0.5.0-beta.11

v0.5.0-beta.11 Pre-release
Pre-release

Choose a tag to compare

@AtomAlex12 AtomAlex12 released this 08 Oct 08:15
c418781

Fixed

  • Прогон «несколько вместе» падал через 3 секунды с ошибкой «Permission denied»: GP
    запускает свой скрипт из временной папки, а в контейнере контроллера /tmp запрещает
    запуск программ. Теперь у каждого плагина своя временная папка на томе данных
    (очищается при каждом запуске плагина).

Added

  • «Результаты»: почему прогон завершился. В раскрытой строке — причина простыми словами и
    что делать, исходная строка ошибки, этап, на котором прогон оборвался, сколько вариантов
    проверено и найдено, и сколько занял бы весь план при скорости этого прогона. Ошибки GP
    раскрыты сразу, если прогон упал.
  • «Прогоны»: если последний прогон упал, вверху — плашка с причиной (раньше страница
    молча возвращалась к форме).
  • «Логи» на контроллере подсказывают, где искать журнал подбора: он идёт на Pi, а не на
    роутере.

v0.5.0-beta.10

v0.5.0-beta.10 Pre-release
Pre-release

Choose a tag to compare

@AtomAlex12 AtomAlex12 released this 07 Oct 20:41
f218974

Подбор стратегий — со всеми функциями GP. Раздел «Подбор» в полной версии теперь умеет
всё, что ядро GP: домены из любых источников, живой ход прогона, история с журналами, фильтры
стратегий, списки GP, категории v2fly и бэкапы. Плагин GP — v0.4.4.

Added

  • «Прогоны»: откуда брать домены и сколько их выйдет. Четыре источника: свои «Списки» (с
    кнопкой «показать» — видно, что список DPI наполнен из nfqws2 при установке), категории v2fly
    (сервис со всеми его доменами и CDN, с поиском), списки GP и поле «вручную». Справа итог до
    запуска: сколько доменов, какие именно, откуда, а при 30+ доменах — предупреждение, что
    прогон затянется на часы. Время оценивается только по прошлым прогонам этого GP.
  • Все настройки прогона: три режима, TLS 1.2 / 1.3 / HTTP / QUIC, глубина перебора, повторы,
    IPv6, без проверки DNS. Готовность GP — списком проверок.
  • Идёт прогон: полосы хода, этап, прошло и осталось (по оценке GP), журнал blockcheck2
    вживую с «следить».
  • «Результаты»: строка прогона раскрывается — домены, настройки, журнал; «Повторить с теми
    же доменами».
  • «Стратегии»: поиск по домену и тексту стратегии, «без фрагментов», выгрузка всех
    найденных в файл (NDJSON).
  • «Данные GP»: списки GP (создать, изменить, удалить), категории v2fly (скачать, проверить
    обновления), бэкапы GP (создать, скачать, загрузить, восстановить, удалить), версия ядра и
    общие настройки прогонов (параллельность и таймауты curl).

Changed

  • Плагин GP — v0.4.4 (был v0.4.2). Типы GP в панели — из его собственного контракта
    (openapi.json, MIT), а не написаны вручную.
  • Контроллер пропускает к GP больше вызовов — списки, категории v2fly, бэкапы, настройки,
    события, статус службы, — но по-прежнему ни авторизации GP, ни его установочных хранилищ.
    Бэкап GP загружается до 32 МБ.

v0.5.0-beta.8

v0.5.0-beta.8 Pre-release
Pre-release

Choose a tag to compare

@AtomAlex12 AtomAlex12 released this 06 Oct 11:38
9f867ce

WARP и VLESS на роутерах, где ndmc из Entware не запускался. Интерфейсы OpkgTun
теперь создаются; установка не обрывается из-за VLESS.

Бета: ставить по ссылке с номером —
curl -fsSLo /opt/tmp/nuxk-lite.sh https://github.com/AtomAlex12/nuxk-horizon/releases/download/v0.5.0-beta.8/nuxk-lite.sh.
WARP, поставленный раньше без интерфейса, установщик предложит поставить заново.

Fixed

  • WARP и VLESS не создавали интерфейс OpkgTun на части роутеров («Cannot create NDM
    interface OpkgTun0», «интерфейс OpkgTun1 в Keenetic не создался»). Прошивочный ndmc,
    запущенный из Entware, подхватывал библиотеки Entware из LD_LIBRARY_PATH=/opt/lib… и
    падал («Cli::Main: failed to initialize»); замечено на mipsel-роутере. Теперь установщик,
    адаптер xray и usque (пакет 0.4.1) запускают ndmc с библиотеками прошивки.
  • Установщик больше не пишет «✓ WARP · интерфейс OpkgTun0», если интерфейса в Keenetic нет;
    такой WARP предлагается поставить заново (nuxk warp или повторный запуск установщика),
    а не считается установленным.
  • Установщик обрывался, если Keenetic не создал интерфейс OpkgTun для VLESS («интерфейс
    OpkgTun1 в Keenetic не создался»): агент оставался остановленным, панель не открывалась.
    Теперь VLESS пропускается с ответом прошивки в сообщении, а агент, конфиг и запуск ставятся
    дальше; при следующем запуске установщик снова предложит VLESS. nuxk vless по-прежнему
    сообщает об ошибке.

v0.5.0-beta.7

v0.5.0-beta.7 Pre-release
Pre-release

Choose a tag to compare

@AtomAlex12 AtomAlex12 released this 06 Oct 10:45
d31e0b6

VLESS на MIPS-роутерах. Исправление для Keenetic на mips/mipsel (ядро 3.4): xray теперь
запускается, а установка не обрывается, если с xray что-то не так.

Бета: ставить по ссылке с номером —
curl -fsSLo /opt/tmp/nuxk-lite.sh https://github.com/AtomAlex12/nuxk-horizon/releases/download/v0.5.0-beta.7/nuxk-lite.sh,
или на роутере с nuxk — кнопкой «Обновить роутер» / nuxk update.

Fixed

  • VLESS на MIPS-роутерах: xray не запускается на этом роутере. xray с 26.3.23 собирается
    на Go 1.26, а его среда выполнения падает на ядре 3.4 MIPS-роутеров Keenetic
    (futexwakeup … returned -89). На mips и mipsel теперь ставится xray 26.2.6 (Go 1.25) —
    проверено на живом mipsel-роутере; на aarch64 — по-прежнему 26.3.27. nuxk update заменит
    неподходящий xray, если он стоит.
  • Установщик обрывался целиком, если xray не запустился. При установке и обновлении VLESS
    теперь пропускается с понятным сообщением, а агент, конфиг и запуск ставятся дальше;
    прежний xray, если был, запускается снова. nuxk vless по-прежнему сообщает об ошибке.

v0.5.0-beta.6

v0.5.0-beta.6 Pre-release
Pre-release

Choose a tag to compare

@AtomAlex12 AtomAlex12 released this 04 Oct 20:02
7226537

Всё — кнопками в панели. Обновить роутер и контроллер на Pi одной кнопкой, поставить
WARP, VLESS, SmartDNS и nfqws2 без командной строки.

Переход — один раз командой, с номером версии. Скрипт на Pi от прежних версий без номера
взял бы последний стабильный релиз (0.4.0), поэтому в последний раз:
NUXK_VERSION=0.5.0-beta.6 sh ~/nuxk/nuxk-full.sh update — он спросит пароль sudo и поставит
службу для кнопки и команду nuxk-pi. Роутер — кнопкой «Обновить роутер» или
NUXK_VERSION=0.5.0-beta.6 nuxk update. Дальше — «Обновить всё».

Added

  • «Обновить всё» («Система» → «Обновления», в полной версии): сначала роутер, затем
    контроллер на Pi. Панель показывает оба шага и вывод обновления на Pi; после обновления
    контроллера страница загружается заново, вход сохраняется. Есть и «Только роутер».
  • Обновление контроллера без доступа к Docker из панели. Контейнер не может заменить сам
    себя, поэтому панель оставляет запрос в ~/nuxk/update, а служба на Pi
    (nuxk-update.path, ставится один раз с sudo) запускает nuxk-full.sh panel-update.
    Скрипт ставит только версию новее текущей, проверяет подпись релиза и, если новый
    контроллер не ответил за минуту, возвращает прежний.
  • Команда nuxk-pi на Pi: nuxk-pi update, router, status, uninstall.
  • «Компоненты» («Система»): nfqws2, WARP (usque), VLESS (xray), SmartDNS — что стоит на
    роутере и кнопка «Установить» для остального. Под кнопкой — те же nuxk nfqws2, nuxk warp,
    nuxk vless, nuxk dns, что по SSH; перед установкой панель говорит, что изменится на
    роутере, и показывает ход установки.
  • nuxk nfqws2 — поставить nfqws2-keenetic, если его пропустили при установке.
  • API: GET /api/v1/components, POST /api/v1/components/{id}/install; у контроллера —
    GET /ctl/v1/update, POST /ctl/v1/update, POST /ctl/v1/update/all.

Changed

  • nuxk-pi update (и sh ~/nuxk/nuxk-full.sh update) без номера версии берёт самый новый
    релиз того же канала, что стоит: стоит бета — возьмёт новейшую бету. Более старую версию
    не ставит — раньше без NUXK_VERSION контроллер откатывался на последний стабильный релиз.
  • Новый контроллер, который не ответил после обновления, заменяется прежним (и при
    обновлении командой).
  • Обновление и установка компонентов на роутере идут по одному: пока идёт одно, второе не
    начнётся.

v0.5.0-beta.5

v0.5.0-beta.5 Pre-release
Pre-release

Choose a tag to compare

@AtomAlex12 AtomAlex12 released this 04 Oct 17:00
6a7014e

Исправление для роутеров со «свежим» Entware.

Fixed

  • VLESS не запускался: nohup: not found. В BusyBox из Entware нет команды nohup, и
    адаптер xray падал при сохранении сервера VLESS в панели («S52xray-nuxk set-config: exit
    status 1»). Теперь xray запускается без nohup и так же переживает закрытие SSH-сессии.

Changed

  • Скрипты для роутера (установщик, адаптеры nfqws2, xray, SmartDNS) теперь проверяются и на
    наборе команд «свежего» Entware — его собственном BusyBox без nohup, setsid, timeout и
    с урезанным od: install/router_test.sh, в CI.

v0.5.0-beta.4

v0.5.0-beta.4 Pre-release
Pre-release

Choose a tag to compare

@AtomAlex12 AtomAlex12 released this 04 Oct 16:36
b1927bd

SmartDNS вместо встроенного DNS (бета) и графики DNS. На экране «DNS» теперь видно, как
работает DNS роутера за последний час, а отвечать роутеру можно поручить SmartDNS.

Added

  • SmartDNS (бета). Ставится на роутер командой nuxk dns: официальная сборка
    pymumu/smartdns Release48.4 (aarch64, mips, mipsel),
    каждая сверяется с закреплённым хешем. В «DNS» → «Настройки» → «Чем отвечать» выбирается
    вместо встроенного DNS nuxk: отвечает на том же адресе (<адрес роутера>:53053), поэтому
    настройки Keenetic не меняются. Вопросы уходят по DoH через WARP, а если WARP не ответил —
    напрямую к тем же серверам; VLESS для DNS не используется (слишком далеко). Кэш, заранее
    обновляемые частые имена и последний известный адрес при сбое — силами SmartDNS.
    Конфигурацию пишет nuxk; если новый не ответил после переключения, возвращается прежний.
    Пока SmartDNS не выбран в панели, он не запускается, даже после перезагрузки роутера.
  • Обзор DNS за последний час: вопросы в минуту (из кэша / от сервера / устаревшие при
    сбое), время ответа серверов (среднее и 95 %), частые домены и типы вопросов. Работает и со
    встроенным DNS, и со SmartDNS (его данные — из журнала запросов SmartDNS; что он не
    различает, подписано на экране).
  • Журнал запросов: последние 200 вопросов роутера — домен, тип, ответ, откуда он
    (кэш / сервер / устаревший / нет ответа), время; поиск по домену.
  • Экран «DNS» разделён на «Обзор», «Журнал запросов», «Настройки» и «Проверка подмены».
  • GET /api/v1/dns/stats, GET /api/v1/dns/log; в настройках DNS — engine
    (nuxk | smartdns), в состоянии — smartdns. В nuxk.conf — SMARTDNS_INIT
    (по умолчанию /opt/etc/init.d/S53smartdns-nuxk, off — не предлагать) и SMARTDNS_DIR.

Changed

  • nuxk update обновляет и адаптер SmartDNS вместе с агентом, а сам SmartDNS — только когда
    меняется закреплённая версия; nuxk rollback возвращает и адаптер. nuxk uninstall убирает
    SmartDNS вместе с nuxk.

Fixed

  • Установщик сам отвечал «нет» на первый вопрос (обычно «Поставить WARP?»). Пустая строка,
    вставленная вместе с командой (или перевод строки Windows, ставший двумя), ждала в терминале
    и принималась за ответ по умолчанию. Теперь перед каждым вопросом установщик сбрасывает то,
    что набрано заранее, и ждёт ответа. Кто так пропустил WARP — nuxk warp на роутере.
  • KeeneticOS 5.01: od: invalid option -- 'A' и пустой API_TOKEN. В BusyBox прошивки у
    od нет нужных ключей, поэтому токен для контроллера не создавался: вход в панель работал,
    но контроллер на Pi не мог подключиться к роутеру. Теперь токен берётся из случайного UUID
    ядра, а nuxk update и nuxk warp создают его, если он пустой. Определение MIPS
    little-endian (MT7621) тоже больше не зависит от od.

v0.5.0-beta.3

v0.5.0-beta.3 Pre-release
Pre-release

Choose a tag to compare

@AtomAlex12 AtomAlex12 released this 04 Oct 08:10
7e593d0

Кэш защищённого DNS. nuxk запоминает ответы и выручает, когда туннели и серверы DoH
недоступны.

Added

  • Кэш ответов DNS. nuxk хранит ответ столько, сколько разрешил сервер (не дольше
    суток; «сайта нет» — не дольше 5 минут, ошибки не хранятся), и отдаёт его с оставшимся
    временем жизни. Часто нужные адреса обновляет заранее, до истечения срока.
  • Ответ при сбое. Если туннели и серверы DoH не ответили за 1,8 секунды, nuxk отдаёт
    последний известный адрес (не старше суток) с коротким временем жизни — 30 секунд, —
    и открытые раньше сайты продолжают открываться, пока туннель переподключается.
  • Одинаковые вопросы, пришедшие одновременно, уходят к серверам DoH один раз.
  • На экране «DNS» — блок «Кэш ответов»: сколько ответов в кэше и памяти, доля ответов из
    кэша, сколько обновлено заранее и сколько раз кэш выручил при сбое; кнопка «Очистить» и
    переключатель «запоминать». Память ограничена: до 5000 ответов и 2 МБ.
  • POST /api/v1/dns/cache/flush — очистить кэш.

Fixed

  • Смена пути или серверов DoH выключала защищённый DNS. Панель отправляла только
    изменённое поле, и агент считал, что защиту выключили. Теперь поля, которых нет в
    запросе, остаются как были.

Changed

  • Проверка подмены и проверка путей (раз в 30 секунд) кэш не используют — они всегда
    спрашивают серверы DoH.