No description
Find a file
2026-04-29 22:08:43 +03:00
.gitignore Добавлено временное хранение для ссылок и улучшена проверка изменений в конфигурации Podkop; 2026-04-29 21:29:01 +03:00
README.md Добавлены команды для проверки версии и наличия обновлений скрипта podkop-update 2026-04-29 22:08:43 +03:00
update.sh Добавлены команды для проверки версии и наличия обновлений скрипта podkop-update 2026-04-29 22:08:43 +03:00

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)
  • Если ключей нет или после фильтрации не осталось рабочих вариантов, текущий конфиг не меняется

❤️ Большое спасибо