feat: dynamic sing-box repo links + expanded README
- runtime.uc: add sing_box_repo_url to build_system_info() based on installed variant (extended→shtorm-7, lx→Leadaxe, stable→SagerNet) - main.js: use systemInfo.sing_box_repo_url instead of hardcoded URL - README.md / README.en.md: expanded Watchdog section with all 14 fixes, atomic operations, restart protection, data correctness, Telegram rate limits, firewall improvements, dynamic repo links, commit-level update tracking
This commit is contained in:
@@ -55,9 +55,45 @@
|
||||
* **OOM Watchdog & Оптимизация памяти**: Непрерывный мониторинг использования RAM. При нехватке памяти система автоматически регулирует лимиты (`GOMEMLIMIT`) и отправляет уведомление в Telegram.
|
||||
* **MSS Clamping (MTU Fix)**: Автоматическое решение проблем с "зависанием" TCP-пакетов и веб-страниц на туннельных интерфейсах.
|
||||
|
||||
#### 🛡️ Watchdog — Система защиты и самовосстановления
|
||||
|
||||
Watchdog — это сердце стабильности Tachyon. Он непрерывно контролирует состояние всех ключевых сервисов и автоматически устраняет сбои без перезагрузки роутера. В версии 1.2.57 проведена масштабная переработка системы защиты:
|
||||
|
||||
**Atomic-операции и целостность данных:**
|
||||
* **Атомарное восстановление UCI**: Все изменения конфигурации записываются через промежуточный бэкап — при сбое во время записи система восстанавливает предыдущее рабочее состояние.
|
||||
* **Валидация бэкапов**: Перед восстановлением конфигурации бэкап проверяется на целостность и валидность — повреждённые бэкапы отбрасываются.
|
||||
* **Атомарная запись JSON**: Генератор sing-box, кэш подписок, diagnostics и runtime пишут конфиги через `tmp` + `mv`, исключая повреждение при аварийном завершении.
|
||||
|
||||
**Защита от restart-loop:**
|
||||
* **Cooldown прокси**: Максимум 3 перезапуска прокси за 10 минут (`safe_proxy_restart()`). При превышении лимита перезапуски приостанавливаются и отправляется уведомление.
|
||||
* **Lock перезапуска**: Мьютекс `PROXY_RESTART_LOCK` предотвращает параллельные перезапуски sing-box из разных потоков.
|
||||
* **Cooldown DNS-петли**: При зацикливании DNS-запросов автоматическое переключение приостанавливается на 5 минут для стабилизации.
|
||||
|
||||
**Корректность данных:**
|
||||
* **Валидация пустых секций**: Проверяется наличие реальных данных в секциях `domain`, `domain_suffix`, `ip_cidr` — пустые секции не записываются в конфиг.
|
||||
* **Правильное чтение конфига**: Исправлена ошибка чтения секции `"network"` вместо `CONFIG_NAME`.
|
||||
* **Исправление nslookup**: Совместимость с BusyBox — корректная работа `nslookup -type=A` и `-port=53`.
|
||||
|
||||
**Telegram-бот и уведомления:**
|
||||
* **Rate limit уведомлений**: Максимум 10 Telegram-уведомлений за 5 минут, предотвращение спама при массовых сбоях.
|
||||
* **Атомарное восстановление конфига Telegram**: Конфиг бота восстанавливается через `cp` в tmp, затем `mv` — исключая повреждение при сбое.
|
||||
* **Персистентные пути**: Бэкапы и staging-файлы хранятся в `/etc/.tachyon/` — сохраняются между перезагрузками.
|
||||
|
||||
**Firewall и nftables:**
|
||||
* **Фоновый reload**: Перезагрузка файрвола выполняется в фоновом режиме (`reload_firewall &`), не блокируя основной поток watchdog.
|
||||
* **Проверка таблиц nftables**: Операции с nftables выполняются только после подтверждения существования таблицы.
|
||||
* **Дедупликация reload**: Исключены повторные вызовы `reload_firewall` из разных модулей.
|
||||
|
||||
**Wan-monitor и маршрутизация:**
|
||||
* **Rate limit уведомлений wan-monitor**: cooldown 60 секунд между уведомлениями о проблемах с WAN.
|
||||
* **Объединённое восстановление**: Единая функция для восстановления и WAN, и шлюзовых маршрутов — исключает гонки при параллельном восстановлении.
|
||||
* **Очистка orphan-конфигов**: Автоматическое удаление временных конфигов, оставшихся от прерванных запусков.
|
||||
|
||||
### 🖥️ Современный Web-интерфейс (LuCI)
|
||||
* Полная интеграция в стандартную панель управления OpenWrt.
|
||||
* Наглядный дашборд: мониторинг задержек, управление подписками, списками правил и компонентами в несколько кликов.
|
||||
* **Динамические ссылки на репозитории**: Глобус в карточке компонента ведёт на репозиторий установленного варианта (extended → `shtorm-7/sing-box-extended`, lx → `Leadaxe/sing-box-lx`, стабильный → `SagerNet/sing-box`).
|
||||
* **Commit-level отслеживание обновлений**: Интерфейс обновлений показывает «Доступно обновление текущего релиза» когда в рамках того же тега (например, 1.2.57) доступен более свежий коммит.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user