Repository navigation
Releases: AtomAlex12/gp-horizon
Release list
v0.5.0
Первый стабильный релиз 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
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
Fixed
- Прогон «несколько вместе» падал через 3 секунды с ошибкой «Permission denied»: GP
запускает свой скрипт из временной папки, а в контейнере контроллера/tmpзапрещает
запуск программ. Теперь у каждого плагина своя временная папка на томе данных
(очищается при каждом запуске плагина).
Added
- «Результаты»: почему прогон завершился. В раскрытой строке — причина простыми словами и
что делать, исходная строка ошибки, этап, на котором прогон оборвался, сколько вариантов
проверено и найдено, и сколько занял бы весь план при скорости этого прогона. Ошибки GP
раскрыты сразу, если прогон упал. - «Прогоны»: если последний прогон упал, вверху — плашка с причиной (раньше страница
молча возвращалась к форме). - «Логи» на контроллере подсказывают, где искать журнал подбора: он идёт на Pi, а не на
роутере.
v0.5.0-beta.10
Подбор стратегий — со всеми функциями 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
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
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
Всё — кнопками в панели. Обновить роутер и контроллер на 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
Исправление для роутеров со «свежим» 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
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
Кэш защищённого 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.