Skip to content

Border-VPN/host-leak-checker

Repository files navigation

Host Leak Checker

Скрипт check_leaks.py проверяет список хостов (ищет совпадения) целевой подписки на предмет утечек (host:port) в общедоступных списках.

🔧 Что есть в репозитории:

  • check_leaks.py — основной скрипт,
  • scripts/install_and_run.sh — автоматический bash-скрипт,
  • .github/workflows/check-leaks.yml — workflow, который запускается каждый час,
  • requirements.txt — зависимости,
  • list.txt — ваш файл со списком общедоступных подписок/хостов (не перезаписывается).

🚀 Быстрый старт

В репозитории есть скрипт scripts/install_and_run.sh, который автоматически:

  • клонирует или обновляет репозиторий в /opt/host-leak-checker,
  • проверяет наличие python3 и python3-venv (устанавливает в случае необходимости),
  • создает виртуальное окружение .venv и устанавливает зависимости,
  • попросит ввести ссылку на подписку и запустит check_leaks.py.
bash <(curl -Ls https://raw.githubusercontent.com/Border-VPN/host-leak-checker/main/scripts/install_and_run.sh)

Примечания:

  • Требуются bash, sudo, curl (альтернатива с wget: bash <(wget -qO- <URL>)), python.

Использование локально

  1. Перейдите в /opt/, клонируйте репозиторий и перейдите в директорию

    cd /opt &&
    git clone https://github.com/Border-VPN/host-leak-checker.git &&
    cd host-leak-checker
  2. Установите зависимости:

    pip install -r requirements.txt
  3. Локальный запуск (без инсталлятора)

    Локально укажите URL подписки и файл списка как позиционные аргументы:

    python check_leaks.py "<SUB_URL>" list.txt

CI

  • В CI (рекомендуется для приватных репозиториев) задайте секрет SUBSCRIPTION_URL в настройках репозитория (Settings → Secrets). Workflow передаст его как первый позиционный аргумент.
  • Workflow использует secrets.SUBSCRIPTION_URL и запускает python check_leaks.py "$SUBSCRIPTION_URL" list.txt --create-issue

Отчеты

  • leak_report.json — подробный JSON.
  • leak_report.md — Markdown отчет.

Включение создания issues в GitHub Actions

Если Вы хотите, чтобы workflow автоматически создавал issue при обнаружении утечек, то укажите переменную GITHUB_TOKEN (обычно доступен автоматически).

Если нужен отдельный бот-токен с другими правами, добавьте secrets.REPO_TOKEN и передавайте его в переменную GITHUB_TOKEN через настройки Actions.

Примечания

  • list.txt может содержать либо готовые host:port строки, либо список URL-адресов на публичные подписки. В последнем случае скрипт попытается получить и декодировать содержимое.
  • Скрипт возвращает ненулевой код только при неожиданных ошибках (например, сетевой сбой). Наличие утечек само по себе — нормальная ситуация и рассматривается как успешное выполнение.

About

Проверка утечки хостов из подписки.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors