Sing-box Extended for Padavan with auto-rotation and proxy-parsing scripts
Автоматизированный комплекс для работы с Sing-box (Extended) на роутерах Xiaomi Mi-router 3.
- 📥 Установка в одну команду — скрипт сам проверяет ресурсы, зависимости и настраивает окружение.
- 🔄 Умная ротация прокси — автоматический парсинг подписок, тест на скорость (latency) и выбор лучших узлов.
- Автоматическое переключение в случае "просадки" пинга до текущего узла (проверка раз в 3 минуты).
- 🛡️ Безопасность "из коробки" — автоматическая генерация уникальных паролей и ключей для каждого пользователя.
- 📉 Экономия ресурсов — пакетное сканирование узлов (Batch Mode) для стабильной работы на ограниченном ОЗУ.
- 🕵️ Маскировка трафика — использование актуальных SNI (icloud.com) для обхода глубокого анализа пакетов (DPI).
- 🖇️ Генератор ссылок — встроенная утилита
gen_links.shдля создания клиентских ссылок (SS, Hy2...) прямо из вашего конфига.
- Устройство: Специально адаптировано под Xiaomi Mi-router 3. Протестировано и подтверждена стабильная работа на Padavan Version 3.4.3.9L-105_5d69a44 (На других моделях работа не тестировалась).
- Архитектура: MIPS (ядро 3.4).
- Платформа: Прошивка Padavan с установленным репозиторием Entware.
- Core: Sing-box Extended (от shtorm-7/sing-box-extended). В текущей версии используется бинарник ветки
extended. - Примечание: Предпочтение отдано по причине заявленной поддержки Amnezia 1.5 (добавление будет реализовано позже).
При запуске инсталлятор проходит строгую цепочку проверок и настроек:
-
Инспекция ресурсов: Скрипт проверяет наличие свободного места в
/opt(минимум 128MB) и объем свободной оперативной памяти (минимум 30MB). -
Проверка зависимостей:
-
Lua 5.1: Должен быть в системе (Version 3.4.3.9L-105_5d69a44 содержит при сборке).
-
JQ: Если не найден, скрипт установит его автоматически (
opkg install jq). -
OpenSSL 3.x: Скрипт проверяет версию. Если она ниже 3.0, будет произведена попытка обновления для корректной генерации ключей .
-
** Создаёт файл /etc/init.d/S99singbox (стандарт для Padavan/Asus). Это запускает sing-box в фоне при загрузке роутера.
-
** Скрипт добавляет задание в crontab ежедневный запуск update3.sh в 3:00 ночи (обновление outbounds — прокси нод из списка). На время обновления sing-box отключает клиентские соединения и запускает свою копию на порту 25555 для теста новых серверов.
-
** Не нарушаются существующие маршруты. Создается отдельный сервер для доступа через который необходимо использовать клиентские конфиги, сгенерированные gen_links.sh (генерирует для локальной сети) или прописать свои (для удаленного доступа).
-
** По причине слабой производительности процессора MT7620A нет смысла включать ресурсоемкое шифрование для локальных клиентов (вполне достаточно Shadowsocks).
-
Автоматическая загрузка: Инсталлятор сам скачивает бинарник
sing-boxиз раздела Releases, а также все вспомогательные скрипты из веток репозитория. -
Генерация уникальной среды: Для каждого пользователя генерируются индивидуальные UUID, пароли для Shadowsocks/Hysteria2 .
-
Безопасность (Rollback): Перед заменой старой версии создается бэкап в папку
.bak. Если новый бинарник не сможет выполнить командуversion, скрипт немедленно вернет старую версию на место.
update3.sh(Продвинутый):- Скачивает список, прогоняет через конвертер.
- Ориентирован на фильтрацию и качество.
- Позволяет задать свой список целевых стран (например,
NL, DE, US) и конкретных протоколов. - Гибкость: Проверяет при запуске работоспособность текущих узлов, если не менее 3-х из них рабочие, скрипт не сканирует по-новому весь список. Если у вас настроено: FILTER_COUNTRIES="NL,DE,US" и приоритет Shadowsocks. Скрипт сначала проверит ВСЕ голландские Shadowsocks. Если наберет 10 штук — остановится. У вас будет идеальный пинг и шифрование. Если голландских SS мало, он добьет список голландскими VMess/Vless. Если в Нидерландах всё плохо, он перейдет к Германии (DE), тоже начиная с Shadowsocks. США будут только в самом конце, как резерв.
Important
Страна определяется не по базам а исключительно из описания к ссылки(возможны несовпадения). Если строки конфига с выбором страны и протокола будут закоментированы, скрипт будет собирать сервера подряд, удовлетворяющие уловию скорости загрузки для чего кроме ping выполняет тест на скорость скачивания и сравнивает результат с значеним PERFECT_SPEED_KBPS= .
- Поддерживает множественные источники подписок (список URL). Если у Вас лимитные подключения - хорошо подумайте. Скрипт для проверки стабильности прокси отправляет пакеты по 10Мб поэтому возможен перерасход трафика в лимитных подключениях.
Important
Формат ссылок: Все ссылки на файлы подписок (на GitHub или других ресурсах), которые вы добавляете в скрипты, ОБЯЗАТЕЛЬНО должны быть в формате RAW (прямая ссылка на текст).
- Правильно:
https://raw.githubusercontent.com/.../sub.txt - Неправильно:
https://github.com/.../blob/main/sub.txt(в этом случае скрипт скачает HTML-страницу вместо списка прокси, и конвертер выдаст ошибку).
Хотя скрипт максимально автоматизирован, убедитесь в следующем:
- У вас установлен Entware на внешний накопитель или в раздел памяти.
- У вас есть доступ к SSH консоли роутера.
- Ваш интернет-канал активен (скрипт проверяет пинг до 8.8.8.8 перед началом загрузки).
Для установки выполните команду в консоли роутера:
wget -qO- "https://raw.githubusercontent.com/Sophiedevops/singbox-padavan-easy-crawler/main/install.sh" | sh
update3.sh— запустить парсинг подписок и обновление рабочих узлов.gen_links.sh— сгенерировать ссылки для подключения ваших устройств к роутеру.converter.lua— автономный конвертер подписок (не требует внешних библиотек Lua).
- 🔙 Rollback: Если скачанный бинарник окажется несовместимым, скрипт автоматически вернет систему к предыдущей рабочей версии из бэкапа.
- 🧹 Cleanup: Автоматическое удаление временных файлов после завершения инсталляции.