Repository navigation
2.26.0
Исправления по аудиту от 5 октября
Большой набор исправлений по аудиту версии 2.25.2: уведомления, TorrServer, перехват DNS, трафик по устройствам, запуск и sing-box, подписки, автоподбор, обновления. Обновление ставится поверх, настройки переносятся сами.
Что нужно знать при обновлении
- Перехват DNS клиентов теперь выключен по умолчанию, в том числе на уже установленных роутерах. Опция перехватывала любой трафик на порт 53, а не только DNS: ломались VPN-клиенты в LAN, подключённые к серверу на 53-м порту, и собственные резолверы в сети (Pi-hole, unbound). После обновления опция выключается один раз, в «Истории» появляется запись об этом. Если перехват нужен, включите его снова: «Настройки → Сеть». Для включённого перехвата появился список «Не перехватывать» (адреса и подсети, например VPN-сервер или резолвер в LAN). Делегированные IPv6-префиксы теперь тоже считаются локальными. Если dnsmasq не обслуживает интерфейс или его DNS выключен, перехват для него не включается.
- TorrServer больше не работает от root. Он запускается от отдельного пользователя
torrserver, база переезжает в/opt/torrserver/dataавтоматически при первом запуске. Если вы включали в TorrServer кэш на диск (UseDisk) в каталог, куда может писать только root, дайте пользователюtorrserverправо записи в этот каталог.
Что изменилось
Уведомления
- Сообщения о падении sing-box или узла правила, через которое идёт Telegram, теперь доходят. Запасной путь «напрямую» узнаёт адрес сервера у bootstrap DNS из настроек, мимо DNS и FakeIP Prokop. Результат теста называет маршрут: «через правило», «обычным маршрутом роутера» или «напрямую, мимо Prokop». Если адрес не удалось узнать, причина пишется как ошибка DNS.
- Сообщение «Prokop не запустился» повторяется до 30 минут, даже если при загрузке ещё не было интернета.
- Фоновая задача уведомлений запускается раз в 5 минут, а раз в минуту только пока есть неотправленные сообщения. Если уведомления выключены, запуск, перезапуск и остановка Prokop их процесс не трогают.
- Выключение уведомлений больше не стирает chat ID, категории, маршрут и срок предупреждения.
- Длинное русское имя правила больше не ломает сообщение в Telegram. Скобки
[ ]и{ }в адресе webhook больше не превращаются в несколько запросов. - Предупреждения о подписках не повторяются после каждой перезагрузки. После продления подписки предупреждение о трафике снова придёт, когда трафик кончится.
- Без сети отправка ограничена 60 секундами за проход и не задерживает проверки узлов.
- Для webhook по
http://в интернет показывается предупреждение: токен в адресе уйдёт открытым текстом. - Пользователь с правом только на чтение видит кнопку «Отправить тест» неактивной с объяснением.
TorrServer
- Рекомендуемые настройки применяются только при первой установке или по кнопке. Обновление Prokop, «Запустить» и «Обновить» больше не перезаписывают ваши настройки и не сбрасывают торренты. Если значения уже совпадают, настройки не отправляются вовсе.
- Рекомендуемые настройки выключают UPnP, а окно подтверждения показывает реальный размер кэша в МБ.
- Состояние TorrServer в карточке обновляется сразу, а не через час, поэтому кнопка «Запустить» появляется, как только TorrServer остановился.
- Если на роутере стоит чужой TorrServer, Prokop не запускает его и не меняет его настройки, а карточка об этом говорит.
- Обновление TorrServer требует примерно вдвое меньше места и качается сразу на флеш. Прерванное обновление чинится автоматически.
- «TorrServer напрямую» больше не ломает трекеры из проксируемых списков (адреса FakeIP уходят в sing-box).
- База TorrServer сохраняется при sysupgrade. Все ошибки TorrServer переведены. Если рекомендуемые настройки не применились, карточка предупреждает.
Сеть и трафик по устройствам
- Kill-switch защищает интерфейсы с любыми допустимыми именами (раньше имена с
+и:молча оставались без защиты) и быстрее замечает молчащий sing-box (5 секунд вместо 10). - Для исключённых устройств со своим DNS kill-switch снова сохраняет исключение.
- Правила Discord больше не забирают UDP 443 общих диапазонов Cloudflare (QUIC чужих сайтов).
- Поле EDNS Client Subnet проверяет значение так же, как роутер.
- Трафик по устройствам: поддельные адреса источника больше не забивают таблицы, IPv6-адреса сводятся к устройству по MAC, широковещательные адреса не считаются устройствами. Список ограничен 200 самыми активными устройствами и предупреждает, когда он неполный. В панели сказано, что именно считается. Сброс счётчика замечается.
Запуск, sing-box и подписки
- Если запуск прервался во время загрузки списков, Prokop больше не остаётся заблокированным до перезагрузки: оставшийся временный sing-box останавливается при следующем запуске или остановке.
- Расширенные параметры xHTTP, которые установленный sing-box-extended не понимает, отбрасываются с предупреждением, и запуск больше не падает на них.
- Ручная ссылка, которую sing-box не может собрать (kcp, quic), пропускается с предупреждением, а не ломает всю конфигурацию.
- Подписки Clash с кавычками и экранированием читаются как YAML, поддерживаются
h2-optsи vmess httpupgrade. - Проверка новой конфигурации при перезапуске больше не меняет то, что показывает панель, и не удаляет файлы правил, нужные работающему sing-box.
- Выбор серверов в группах сохраняется при перезагрузке роутера. Группы Priority не сохраняются.
- Пока Prokop стартует при загрузке, LAN всегда получает DNS от dnsmasq.
- При холодном старте подписка, которая качается через другое правило, ждёт это правило, а не качается напрямую. Если временный прокси для списков не поднялся, запуск сразу останавливается с понятной причиной.
- Имя сервера из подписки, похожее на параметр команды, больше не передаётся в
dig. - Ускорены проверка DNS на вкладке «Диагностика» и проверки при каждом запуске.
Автоподбор
- Неудачная проверка после применения сначала откатывается, а уже потом выясняется, была ли это потеря интернета. Плохая стратегия не держится в работе лишние минуты.
- «Нет интернета» требует подтверждения вторым независимым адресом. Контрольная проверка только устанавливает TCP-соединение.
- Наблюдение судит по доле неудачных проверок: «мигающая» стратегия откатывается, а одна случайная ошибка сразу после применения больше не ставит паузу на сутки.
- Правка настроек, не касающаяся применённой стратегии, больше не снимает наблюдение. Откат в этом случае возвращает только строку стратегии и сохраняет вашу правку.
- Наблюдение, закончившееся без результата, записывается в «Историю» и приходит уведомлением.
- Счётчик ответов считает только пробные соединения самого роутера, занятые порты и умерший nfqws больше не записываются в вину стратегии. Интерфейс различает «проверка без результата» и «проверка не прошла».
Обновления
- Если обновление через
install.shне удалось, прежний Prokop возвращается со своей конфигурацией. Прерывание обновления (Ctrl-C, SIGTERM) тоже откатывает его, а разрыв SSH больше не обрывает обновление посередине. Пакеты для отката берутся из каталога релизов, без лимита GitHub API. - Установка stable и tiny sing-box больше не скачивает пакет второй раз, пока Prokop остановлен.
- Зависшая загрузка действительно останавливается, коррекция часов после загрузки роутера её не обрывает, а файл больше опубликованного размера не докачивается.
- В карточке обновления появился этап «Восстановление после ошибки», ошибка показывается у того этапа, где она случилась. Итог «Готово / Ошибка» больше не пропадает и не превращается обратно в «Обновляется…». Время считается по часам роутера, в том числе у пользователя с правом только на чтение. Панель не перерисовывает всю страницу каждую секунду.
- Ошибки компонентов, предупреждения kill-switch и ошибки загрузки списков показываются по-русски. Незнакомый текст заменяется русской строкой со ссылкой на системный журнал.
Что проверено
- PASS: полный прогон автоматических тестов бэкенда от root и от непривилегированного пользователя без
uci(как в CI); фронтенд (prettier, eslint, tsc, vitest, сборка). На каждое исправление добавлен или расширен тест, который не проходит на 2.25.3 и проходит теперь. Перехват DNS, kill-switch, TorrServer напрямую и счётчик автоподбора проверены на настоящемnft. - PASS: русский интерфейс панели «Устройства», окна TorrServer и панели прогресса обновлений отрисован в Chromium на 1440/1024/768 без горизонтальной прокрутки и обрезанных кнопок (без темы LuCI).
- NOT TESTED: на роутере. В первую очередь стоит проверить: уведомление при убитом sing-box (
prokop notify_status), запуск TorrServer от пользователяtorrserverи перенос базы, перехват DNS с исключениями, перезагрузку с сохранением выбора серверов, холодный старт с подпиской через правило, откат обновления черезinstall.sh.