Skip to content

High-performance multi-threaded Xray/V2Ray proxy checker (VLESS/VMess/Trojan/SS/Hy2): ping & speed sort, batch testing, auto-install core, self-update.

License

Notifications You must be signed in to change notification settings

MKultra6969/MK_XRAYchecker

Repository files navigation

🕷️ MK_XRAYchecker 🕷️

Мощный, многопоточный чекер прокси V2Ray/Xray
Быстро. Жестко. Эффективно. - все как я люблю.

Version License Telegram

Main menu Главное меню v1.1.3

⚡ Описание

MK_XRAYchecker — Утилита на Python для массовой проверки доступности и задержки V2Ray/Xray прокси. Скрипт парсит конфиги из файлов или URL (Например GitHub Raw), декодирует Base64 (и другие форматы), создает временные конфиги и проверяет их через реальное ядро Xray или Mihomo.

🔥 Возможности

  • Поддержка протоколов: VMess, VLESS, Trojan, Shadowsocks, Hysteria2.
  • Парсинг: Извлекает прокси из "каши" текста, Base64 строк, ссылок-подписок.
  • Подписки: Поддерживает URL-подписки в формате ссылок и Clash/Mihomo YAML (proxies:), включая Base64-обёртку.
    • (Ну, то есть скрипту практически похуй в каком виде ты скормишь ему ссылки.)
  • Batch Mode: 1 ядро = 1 пачка прокси (для xray внутри пачки проверки идут параллельно). UP TO 1337 BATCHES.
  • Режимы работы: Красивое меню или CLI аргументы.
  • Сортировка: Автоматически сортирует рабочие прокси по пингу или скорости.
  • Отсев по ping: Можно задать порог max_ping_ms (например 500) и автоматически выкидывать медленные прокси.
  • SpeedTest: Проверка скорости скачивания (опционально).
  • Rich UI: Ну всякие загрузочки менюшечки красивые.
  • Конфиг: Гибкий конфиг, с множеством параметров.
  • Debug artifacts: При падении ядра сохраняет batch*.json и лог в ./failed_batches + печатает команду воспроизведения.
  • Self-test URL: Быстрый тест парсинга (чинит кейсы &, &amp%3B, %26amp%3B).
  • Безопаснее SS: фильтрует Shadowsocks-ссылки с неподдерживаемыми шифрами (AEAD-only whitelist), чтобы не ловить Exit: 23.
  • Более строгий REALITY: валидирует pbk (base64url → строго 32 байта) и нормализует sid (shortId hex).
  • Self-Update: умеет обновлять v2rayChecker.py и aggregator.py из GitHub репозитория (staged .new + update.pending + перезапуск).
  • Auto-install core: умеет автоматически ставить xray или mihomo (по preferred_core) в ./bin.
  • Свитч ядра: переключение auto/xray/mihomo через CLI (--engine) или через интерактивное меню.

🔄 Self-Update (автообновление)

Скрипт может проверять обновления на старте и подтягивать свежие python-файлы из GitHub Releases (fallback на raw VERSION).

Как это работает

  • При наличии апдейта скачиваются обновлённые файлы и сохраняются как *.new, создаётся update.pending, затем скрипт перезапускается.
  • На следующем запуске apply_pending_update_if_any() применяет staged обновления (замена файлов + .bak).

Как отключить

  • CLI: --no-update (полностью пропустить проверку).
  • Конфиг: autoupdate:
    • true — обновляется автоматически без вопросов.
    • false — если версия устарела, спросит подтверждение.

⚠️ ВАЖНО: Ядро (Xray / Mihomo)

Для работы скрипта нужно одно из ядер:

  • xray / xray.exe
  • mihomo / mihomo.exe

По умолчанию включена автоустановка: если ядра нет — скрипт попытается скачать архив из релизов и распаковать в ./bin.

🛠️ Ручная установка (если нужно)

  1. Выбери релизы нужного ядра:
    👉 Xray-core releases
    👉 Mihomo releases
  2. Скачай архив под свою ОС/архитектуру.
  3. Распакуй и положи бинарник рядом со скриптом или в ./bin (xray.exe / mihomo.exe).

📂 Рекомендуемая структура:

  • v2rayChecker.py
  • updater.py (для self-update)
  • xray_installer.py (для автоустановки ядра)
  • bin/xray.exe или bin/xray
  • bin/mihomo.exe или bin/mihomo
  • aggregator.py (опционально, для --agg)

🚀 Установка и Запуск

1. Клонирование репозитория

git clone https://github.com/MKultra6969/MK_XRAYchecker
cd MK_XRAYchecker

2. Установка зависимостей

pip install -r requirements.txt

3. Запуск

Интерактивный режим (Меню):

python v2rayChecker.py

CLI (примеры):

# Проверка из файла
python v2rayChecker.py -f "proxies.txt"

# Проверка по ссылке-подписке
python v2rayChecker.py -u "https://example.com/sub"

# Указать количество потоков и таймаут
python v2rayChecker.py -f "list.txt" -T 50 -t 2

# Запустить без проверки обновлений
python v2rayChecker.py --no-update

⚙️ config.json (важные ключи)

Ключи добавляются автоматически при первом запуске (или при появлении новых полей).

  • autoupdate: true/false — автообновление скрипта.
  • repo_owner, repo_name, repo_branch — откуда подтягивать апдейты (GitHub).
  • autoinstall_xray: true|false — автоустановка ядра при отсутствии.
  • xray_version: "latest" или конкретный тег (например "v1.8.10").
  • autoinstall_mihomo: true|false — автоустановка mihomo при отсутствии.
  • mihomo_version: "latest" или конкретный тег.
  • preferred_core: "auto" / "xray" / "mihomo" — режим выбора ядра.
  • max_ping_ms: порог ping в миллисекундах для отсева (0 = отключено).
  • core_path: путь к ядру (например xray, bin/xray, bin/mihomo).

🧪 Self-test (v1.0.3)

Проверка, что URL-парсер корректно обрабатывает HTML/URL-экранирование в параметрах (security/pbk/sid/flow/...).

python v2rayChecker.py --self-test

🐛 Debug Mode (v1.0.3)

Режим для отладки: 1 прокси на batch и 1 поток, чтобы быстро находить “плохие” ссылки/конфиги.

python v2rayChecker.py -f "proxies.txt" --debug

🧯 Отладка падений ядра

Если ядро не запустилось, скрипт сохранит файлы в ./failed_batches и покажет команду воспроизведения для текущего ядра.


⚙️ Аргументы cli

Аргумент Описание
-m, --menu Принудительный запуск интерактивного меню
-f, --file Путь к .txt с прокси или со списком URL-подписок
-u, --url URL ссылка на подписку или список
--agg Запустить встроенный агрегатор (граббер) прокси
--agg-cats Категории источников для агрегатора (например: 1 2)
--agg-filter Фильтр агрегатора по ключевым словам (например: vless reality)
-o, --output Файл для сохранения рабочих проксей (по дефолту: sortedProxy.txt)
-T, --threads Лимит одновременно запущенных ядер (пачек).
-t, --timeout Таймаут ожидания ответа в секундах (по дефолту: 3)
-l, --lport Стартовый локальный порт для ядер (по дефолту: 1080)
-c, --core Путь к исполняемому файлу ядра (xray/v2ray/mihomo)
--engine Режим выбора ядра: auto / xray / mihomo
-d, --domain Тестовый домен для проверки подключения (по дефолту: Google/CF generate_204)
--max-ping Отсев по ping (мс), 0 = отключить
-n, --number Ограничить количество проверяемых прокси (взять первые N)
--reuse Перепроверить файл результатов (sortedProxy.txt)
-s, --shuffle Перемешать список перед проверкой
--t2exec Время ожидания запуска ядра в секундах
--t2kill Задержка после убийства процесса ядра
--speed Включить тест скорости скачивания (вместо только пинга)
--sort Метод сортировки результатов: ping или speed
--speed-url Ссылка на файл для теста скорости
--self-test Запустить самопроверку URL парсинга (v1.0.3)
--debug Debug режим (1 proxy/batch, 1 thread) (v1.0.3)
--no-update Пропустить проверку самообновления на старте (v1.1.0)

🔮 В будущем

В планах допилить следующий функционал:

  1. ВОЗМОЖНО телеграм бот.

💀 Credits & License

Ваш покорный: MKultra69
Веб: mk69.su

FELIX: Оригинал aggregator.py + хороший фидбек

📜 License

Проект КАК ВСЕГДА распространяется под лицензией WTFPL (Do What The Fuck You Want To Public License).

About

High-performance multi-threaded Xray/V2Ray proxy checker (VLESS/VMess/Trojan/SS/Hy2): ping & speed sort, batch testing, auto-install core, self-update.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages