- Shell 100%
| .gitignore | ||
| README.md | ||
| update.sh | ||
Podkop Auto Config Script
Это вспомогательный инструмент для OpenWrt, который добавляет недостающую функциональность работы с подписками в плагин Podkop (sing-box).
По умолчанию Podkop не имеет встроенной системы для автоматической загрузки и обновления ключей из внешних ссылок-подписок. Данный скрипт устраняет это ограничение, превращая статическую конфигурацию в динамическую систему с автоматическим перебором серверов.
🚀 Возможности
- 📥 Поддержка RAW ссылок (GitHub и др.)
- 🌐 Парсинг HTML/текстовых страниц с ключами
- 🔗 Поддержка прямых ссылок (vless://, ss://, trojan:// и др.)
- ⭐ Приоритизация прямых ключей (всегда попадают в конфиг)
- 🎲 Случайная выборка серверов до установленного лимита
- 🧹 Очистка и нормализация конфигов
- ❌ Фильтрация невалидных параметров (xhttp, пустой security и т.д.)
- 🛡 Защита от поломки конфига (fallback)
- ⚡ Автоматическая интеграция с Podkop (URLTest, Cron)
- 📦 Автоматическая установка Podkop, если он отсутствует
- 🔄 Автообновление
podkop-updateи попытка обновленияPodkop
⚙️ Инструкция по установке
✦ Шаг 1: Установка
Подключитесь по SSH к роутеру и выполните команду:
wget -O /usr/bin/podkop-update https://raw.githubusercontent.com/AlanWakeKing/podkop-urltest-subscription_ai/main/update.sh
chmod +x /usr/bin/podkop-update
✦ Шаг 2: Первичная настройка
Редактировать update.sh не нужно. Запустите встроенный мастер:
/usr/bin/podkop-update --setup
Скрипт задаст вопросы:
- сколько подписок использовать: от 1 до 3
- ссылки на подписки
- агент подписки:
Happ/2.7.0,v2rayNG/1.8.5илиINCY/2.0.9 - операционная система: можно пропустить
- версия ОС: можно пропустить
- модель устройства: можно пропустить
- интервал автообновления: от 1 до 12 часов
Ответы сохраняются в:
/etc/podkop-update.conf
Если поля ОС/версии/модели пропустить, скрипт сам попробует определить их на OpenWrt.
Если провайдер подписки требует device id в HTTP-заголовке, скрипт сам создаст постоянный HWID и сохранит его в /etc/podkop-hwid.
IP адрес, Последний доступ и Количество обращений формируются уже на стороне вашего сервиса по самому факту HTTP-запроса.
Если Podkop ещё не установлен, podkop-update сначала попробует установить его через официальный install.sh, а затем продолжит обычную работу.
Вопросы официального установщика Podkop подтверждаются автоматически ответом yes.
Проверка вручную
После настройки запустите скрипт вручную:
/usr/bin/podkop-update
Если всё прошло без ошибок, Podkop будет обновлён.
Проверить версию скрипта:
/usr/bin/podkop-update --version
Проверить, доступно ли обновление скрипта:
/usr/bin/podkop-update --check-self-update
Important
В админке могут быть ошибки, но Podkop с ними запустится.
✦ Шаг 3: Автообновление (Cron)
По умолчанию скрипт сам добавляет и поддерживает две cron-задачи:
Если в мастере выбрано 3, записи будут такими:
0 */3 * * * /usr/bin/podkop-update >> /var/log/podkop-update.log 2>&1
0 5 * * 1 /usr/bin/podkop-update --updates-only >> /var/log/podkop-update.log 2>&1
Что это значит:
- первая задача обновляет подписки по выбранному интервалу;
- вторая задача один раз в неделю, в понедельник в
05:00, проверяет обновленияpodkop-updateиPodkopи устанавливает их, если они есть.
Чтобы изменить настройки позже, просто снова запустите:
/usr/bin/podkop-update --setup
Лог выполнения будет сохраняться в:
/var/log/podkop-update.log
🧹 Скрипт удаления
Удалить скрипт и задание cron можно одной командой:
rm -f /usr/bin/podkop-update && \
sed -i '/podkop-update/d' /etc/crontabs/root && \
/etc/init.d/cron restart
🧠 Как это работает
- В режиме
--updates-onlyпроверяет обновление самогоpodkop-updateиз GitHub - Если
Podkopне установлен, пытается сначала установить его через официальныйinstall.sh - В режиме
--updates-onlyпытается обновитьPodkopчерез официальныйinstall.shиз репозиторияitdoginfo/podkop - Если официальный способ недоступен, использует fallback через
apkилиopkg - Загружает конфиги из источников
- Извлекает ключи (vless, ss, trojan и др.)
- Нормализует параметры
- Удаляет невалидные (например xhttp)
- Добавляет прямые ключи в приоритет
- Случайно добирает до лимита
- Применяет конфиг в Podkop
- Перезапускает Podkop и проверяет, что сервис успешно поднялся
- Доступность серверов затем проверяется встроенным
URLTestсамого Podkop
⚠️ Требования
- Доступ к интернету
- Podkop установлен
Note
Могут быть ошибки из-за различий названий полей, скрипт для версии 0.7.14
📌 Примечания
- Проверка доступности серверов выполняется самим Podkop (URLTest)
- Если ключей нет или после фильтрации не осталось рабочих вариантов, текущий конфиг не меняется