Repository navigation
1.7.12
1.7.12
Нововведения и улучшения
- Мультивыбор целей и игровые UDP-профили в подборе стратегий (Strategy Fuzzer):
- Одиночный выпадающий список цели в окне подбора стратегий заменён на сетку чекбоксов с быстрыми комбинациями (
YouTube + Discord + CS2,CS2 / Faceit + Discord,YouTube Only), позволяющую выбрать сразу несколько сервисов для поиска единой рабочей стратегии. - Добавлены наборы целей
CS2 / Faceit / Cybershoke(cs2_faceit_suite) иGaming & Voice UDP(gaming_udp_suite) с проверкой прохождения UDP-пакетов по протоколу RFC 5389 STUN (udp_stun), включая тестирование через локальныйdirectUDP-входtachyon-coreдля движкаdesync. - В каталог
desyncиzapret2добавлены UDP-стратегии для игрового и голосового трафика (udp_fake,udp_repeats,udp_fake_ttl,udplen,syndata, профиль портовcs2_faceitс охватом3478-3481, 5000-5020, 19294-19344, 27015-27050, 50000-65535) и сохранение параметровdesync_seqovl,desync_syndata,desync_wsize,desync_ipfrag,desync_udplen,desync_tlsrec_firstпри применении выбранной стратегии.
- Одиночный выпадающий список цели в окне подбора стратегий заменён на сетку чекбоксов с быстрыми комбинациями (
- Рандомизация (jitter) интервалов проверки URLTest и обновления подписок (#322 — @johnickgrigorov):
- Для групп балансировки и секций с автовыбором узла добавлена настройка разброса интервала проверки
urltest_check_interval_jitter(Выкл,±15%,±25%,±40%). - Для фонового обновления подписок добавлена настройка
subscription_update_jitter(Выкл,±15%,±25%,±40%) со случайным смещением времени запроса и шагом планировщика cron 5 минут.
- Для групп балансировки и секций с автовыбором узла добавлена настройка разброса интервала проверки
- Сохранение пользовательских настроек вида интерфейса на роутере:
- Настройки раскладки карточек Дашборда, выбранного режима отображения раздела «Маршруты» (
Карточки/Конвейер), режима навигации (Простой/Расширенный) и состояния боковой панели теперь дублируются на роутере (/etc/tachyon/ui-prefs.jsonиuci.tachyon.settings.ui_prefs_json) через командыget_ui_prefs/set_ui_prefs. - При очистке кэша браузера, открытии веб-интерфейса с другого устройства или обновлении пакета Tachyon сохранённый вид восстанавливается автоматически.
- Настройки раскладки карточек Дашборда, выбранного режима отображения раздела «Маршруты» (
- Диагностика пересечений и затенения правил маршрутизации и DNS (#331 — @mrAntonD):
- В предварительную проверку конфигурации (
service/config_plan.uc) добавлен анализатор конфликтов правил (analyze_rule_conflicts()), выявляющий пересечение доменов (включая захват поддоменов родительским доменом в более приоритетной секции) и внешних списков между секциями с разными действиями. - Добавлены предупреждения о правилах с действием
block, перекрытых более ранними разрешающими секциями, о полностью затенённых секциях и о рассогласовании маршрутизации L3/L4 с правилами DNS.
- В предварительную проверку конфигурации (
- Отображение клиентских устройств для серверных подключений в Мониторинге (#330 — @mrAntonD, #333 — @Kalarono):
- На вкладке «Мониторинг» для входящих серверных подключений (
inbound) вместо локального адреса прокси127.0.0.1теперь отображается имя клиентского устройства и его реальный IP-адрес.
- На вкладке «Мониторинг» для входящих серверных подключений (
- Распознавание региональных ограничений HTTP 403/451 в Smart Detect Plus и права администраторов в Telegram-боте (#334 — @lQwestl):
- В пробники
Smart Detect Plusдобавлено следование HTTP-редиректам (-L) и учёт ответовHTTP 403/451при прямом подключении как признака фильтрации по IP-адресу, если через прокси ресурс возвращаетHTTP 200. - В Telegram-боте добавлена проверка прав администратора группового чата через
getChatMemberс кэшированием результата на 300 секунд.
- В пробники
- Удаление устаревшего движка
steer:- Удалены модули генератора и рантайма
steer, а также связанные элементы управления в веб-интерфейсе и Telegram-боте. - В
config/migration.ucдобавлена автоматическая миграцияsettings.engineсо значенийsteerиsteer-extendedнаtachyon-coreс очисткой/etc/steerи/etc/init.d/steerпри обновлении.
- Удалены модули генератора и рантайма
Исправления
- Автовосстановление
tachyon-coreиwatchdogпосле длительной недоступности внешнего VPS:- В
procd_set_param respawnснято ограничениеrespawn_retry=5(установлено0— неограниченное число попыток перезапуска с интервалом 5 секунд), из-за которого после 5 неудачных стартов подрядprocdпрекращал поднимать ядро. - В
service/lifecycle.uc(cleanup_failed_runtime()) гарантирован запускwatchdog, если служба включена в автозагрузку (/etc/rc.d/S99tachyon), чтобы сбойrestartилиreloadво время аварии внешнего канала не оставлял роутер без мониторинга. - В
service/initd.uc(retry_start_on_wan_up()) добавлено повторное планирование отложенного старта с шагом 60 секунд до успешного запуска службы. - В
service/watchdog.ucразрешён запуск остановленного ядра (reason == "core_stopped") сверх лимитаproxy_restart_count >= 3, добавлено восстановление таблицыTachyonTableприESCALATION_LIGHT, вызовfailover_checkпри событииEV.PROXY_DOWNперед перезапуском ядра и переводcheck_mixed_proxy_port()наsafe_proxy_restart("mixed_port", ESCALATION_LIGHT).
- В
- Маршрутизация FakeIP и трафика клиентов Tailscale Exit Node, разрешение DNS пиров (#318, #328 — @Kalarono, #338 — @lQwestl):
- В
nft/apply.ucпакеты к диапазону FakeIP изtailscale0маркируются до фильтра входных интерфейсов, а собственные сокетыtailscaledс меткой0x00080000защищены в цепочкеmangle_outputот повторного перехвата IP-списками (#328). - Если
tailscale0включён во входящие интерфейсы (source_network_interfaces), в цепочкахmangleиmangle_forwardотключается безусловный возврат не-FakeIP трафика, чтобы подключения клиентов Tailscale Exit Node проходили через правила маршрутизации и списки Tachyon (#338). - В
providers/tailscale/runtime.ucпри настройке MagicDNS устанавливаетсяdhcp.@dnsmasq[0].localservice = '0', чтобыdnsmasqотвечал на DNS-запросы пиров из подсети100.64.0.0/10(#338).
- В
- Установка пакетов
apkиopkgчерез HTTP-прокси (#332 — @lQwestl):- Добавлена обёртка
/usr/lib/tachyon/bin/wget, прозрачно делегирующая загрузку вcurlдля поддержки туннелированияHTTP CONNECTпри заданныхhttps_proxy/http_proxy(штатный/bin/uclient-fetchв OpenWrt отправлял открытыйGET https://...на порт прокси и получалHTTP 400 Bad Request). - В
components/installer.ucдобавлена подстановкаPATHи резервный прямой вызов дляpkg_install_name_commandиpkg_list_update_command, а таймаут установки пакета Tailscale вcomponents/action.ucувеличен с 60 до 180 секунд (PKG_TX_INSTALL_TIMEOUT).
- Добавлена обёртка
- Декодирование крупных подписок Happ
crypt4(#327 — @Kalarono):- В
subscription/crypt4.ucснято ограничение размера буфера при чтении и расшифровке объёмных ответовcrypt4.
- В
- Корректный формат wildcard-записей DNS
predefinedдляsing-box(#329 — @Neoniq, #335 — @Kalarono):- В генераторе маршрутов (
tachyon_core/generator_routes.uc) владелец записи вpredefined-ответах DNS (0.0.0.0/::) изменён с*на*.для корректной подстановки запрашиваемого домена и поддоменов.
- В генераторе маршрутов (
- Ограничение высоты выпадающих списков в LuCI (#336 — @lQwestl):
- Для открытых списков
.cbi-dropdown[open] > ulвfe-app-tachyon/src/styles.tsзадано ограничениеmax-height: min(320px, 45vh)с вертикальной прокруткой, предотвращающее выход длинных списков за пределы экрана.
- Для открытых списков
- Корректная обрезка UTF-8 и отклик кнопок в Telegram-боте (#337 — @Sasha174ru):
- В
service/telegram/rendering.uc,transport.uc,commands.ucиruntime.ucпобайтовая обрезкаsubstr(..., 0, N)заменена наutf8_prefix(), исключающий разрыв многобайтовых символов кириллицы и эмодзи при формировании меню обновлений и уведомлений. - Подтверждение нажатия кнопки (
answerCallbackQuery) перенесено перед вызовомdispatch_command, чтобы интерфейс Telegram не зависал в ожидании завершения длительных команд.
- В
- Ускорение первичной загрузки интерфейса LuCI и устранение двойных перезапусков ядра:
- Запрос
get_ui_capabilities()переведён в фоновый неблокирующий вызов после первичной отрисовки экрана, а синхронный запускsing-box versionвservice/ui.ucзаменён на чтение/etc/tachyon/tachyon-core-versionи/etc/tachyon/tachyon-core-variant. - Устранён повторный вызов
restartпослеreloadпри установке и обновлении варианта ядра (install_sing_box_variant), а при самообновлении только фронтенд-пакетов (luci-app-tachyon,luci-i18n-tachyon-ru) выполняетсяreloadвместо полного перезапуска службы. - Исправлена ошибка
Target container is not a DOM elementпри быстрой смене вкладок LuCI до завершения инициализации дерева компонентов.
- Запрос
- Устранение зависания проверки скорости DNS на 33% (
dns/speed_test.uc):- Перед пакетным измерением DoH/DoT через
curl --nextдобавлен быстрый предварительный запрос (--connect-timeout 2 --max-time 3), сразу отбраковывающий недоступный сервер вместо ожидания таймаута на каждой попытке в цепочке. - Для UDP DNS добавлен досрочный выход после 2 таймаутов подряд и убран дублирующий повтор
nslookupпри проверке домена.
- Перед пакетным измерением DoH/DoT через
Закрытые задачи и влитые PR
- #322 — Стабильность длительных соединений и рандомизация интервалов проверок и обновлений (@johnickgrigorov)
- #327 —
fix(subscription): preserve large Happ crypt4 bodies(@Kalarono) - #328 —
fix(nft): сохранить перехват FakeIP при работе Tailscale(@Kalarono) - #329 / #335 —
fix(dns): исправить DNS Block для sing-box(@Neoniq, @Kalarono) - #330 / #333 —
fix(monitoring): показывать реальный источник клиентов inbound(@mrAntonD, @Kalarono) - #331 — Диагностика пересечений и логических конфликтов правил маршрутизации и DNS (@mrAntonD)
- #332 —
fix(components): support apk and opkg package installations via HTTP proxy(@lQwestl) - #334 —
feat(smart_detect): add HTTP 403/451 geo-block detection, follow redirects, and authorize group chat admins in Telegram(@lQwestl) - #336 —
fix(ui): constrain dropdown list height to prevent viewport overflow(@lQwestl) - #337 —
Telegram: меню обновлений ломается на UTF-8, отклик и проверка результатов(@Sasha174ru) - #338 —
fix(tailscale): allow exit-node traffic routing and fix peer dns resolution(@lQwestl)
Full Changelog: 1.7.11...1.7.12