Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Sinicyn78/xraycheck

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

9 Commits

Repository files navigation

XRayCheck

Технический анализ конфигураций VLESS, VMess, Trojan, Shadowsocks, Hysteria и MTProto с возможностью эмуляции сетевых ограничений


⚠️ Данные предоставляются исключительно в информационных целях.

⚠️ Любое использование конфигураций возможно только с согласия их владельцев

⚠️ Настоящий инструмент выполняет только техническую валидацию доступности сетевых endpoint

⚠️ Инструмент не создаёт VPN-соединений и не маршрутизирует пользовательский трафик через третьи лица


| Исходный код | | Локальный запуск |

| Техническая информация |

| DMCA Takedown |

Telegram


📊 Статистика репозитория

Показатель Значение
Просмотры (14Д) 6 016
Уникальные посетители (14Д) 1 364
Клоны (14Д) 17 028
Уникальные клоны (14Д) 3 263
Звёзды 52
Форки 4


📮 DMCA Takedown

Если вы являетесь владельцем сервера, чьи конфигурации были обнаружены в данном репозитории, и вы хотите их удалить:

Способ Действие
GitHub Issue Создайте Issue с тегом [Takedown] в заголовке
Telegram Напишите в Telegram-бот для обратной связи

Что нужно указать в запросе

Обязательно:

  • Домен или IP-адрес сервера для удаления
  • Доказательство владения (одно из):
    • Запись WHOIS домена
    • Счёт от хостинг-провайдера (реквизиты и персональные данные можно скрыть)
    • DNS TXT-запись: v=removal-request-xraycheck
    • Письмо с корпоративного email на домене сервера

Опционально:

  • Причина удаления (утечка, устаревшие данные, ошибочное добавление)
  • Предпочтительный способ связи для подтверждения

Сроки обработки

  • Первичный ответ: в течение 48 часов
  • Удаление из репозитория: в течение 72 часов после подтверждения владения
  • Обновление GitHub Pages: до 24 часов после удаления из репозитория


Техническая информация


Поддерживаемые протоколы: VLESS, VMess, Trojan, Shadowsocks, Hysteria, MTProto

Требования

  • Python 3.8+
  • Xray-core - при первом запуске, если xray не найден в PATH и не заданXRAY_PATH, скрипт автоматически скачает нужную сборку с GitHub Releases в папкуxray_dist рядом со скриптом. Ручная установка не обязательна.

Установка

pip install -r requirements.txt

Режимы работы

  • single - Валидация ключей из одной ссылки (аргумент командной строки илиDEFAULT_LIST_URL).
  • merge - Объединение ключей из нескольких ссылок и валидация одной группы. Ссылки задаются в файлеlinks.txt (по одной URL на строку). Имя файла задаётся в.env переменнойLINKS_FILE.

Режимы проверки ключей

  • Обычный (STRONG_STYLE_TEST=false) - несколько тестовых URL (HTTP и/или HTTPS), повторные запросы, проверки стабильности. Настраивается черезTEST_URLS,TEST_URLS_HTTPS,MIN_SUCCESSFUL_URLS,REQUIRE_HTTPS,STABILITY_CHECKS и др.
  • Строгий (STRONG_STYLE_TEST=true) - один тестовый URLhttps://www.gstatic.com/generate_204, один или два запроса подряд, без повторов. Ключ считается рабочим только при ответе 204, пустом теле и времени ответа не болееSTRONG_MAX_RESPONSE_TIME секунд. Результаты ближе к поведению мобильных клиентов.

Полный список переменных - в .env.example.



Локальный запуск

Запуск

Список по умолчанию (режим single):

python vless_checker.py

Свой URL списка (режим single):

python vless_checker.py "https://example.com/my-vless-list.txt"

Режим merge: положите ссылки в links.txt, в .env задайте MODE=merge:

# В links.txt по одной URL на строку, например:
# https://example.com/list1.txt
# https://example.com/list2.txt
python vless_checker.py

Запуск через Docker

Для запуска проверки в изолированном окружении доступен режим через Docker.
Рекомендуемый способ - использовать docker-compose из репозитория (учитывает .env, CIDR whitelist и публикацию результатов в configs/).

Быстрый старт с docker-compose

  1. Скопируйте .env.example в .env и при необходимости скорректируйте настройки (режим, LINKS_FILE, CIDR_WHITELIST_URL и т.д.).
  2. Убедитесь, что установлен Docker и Docker Compose.
  3. Запустите:
docker compose up --build

Результаты проверки (файлы available, available(top100) и отчёты speedtest при включённом SPEED_TEST_ENABLED) будут в каталоге configs/ на хосте согласно настройкам в .env.

Пример запуска одиночного контейнера

При необходимости можно запустить контейнер вручную (например, для одноразовой проверки), используя локально собранный образ:

docker build -t xraycheck:latest .

А затем:

docker run --rm \
 --env-file .env \
 -v "$(pwd)/configs:/app/configs" \
 xraycheck:latest

Где:

  • --env-file .env передаёт все настройки проверки в контейнер;
  • -v "$(pwd)/configs:/app/configs" монтирует локальную папку configs для сохранения результатов.

Передача URL списка конфигов в Docker

В качестве первого аргумента контейнер принимает URL списка конфигов (аналог python vless_checker.py "https://..." при локальном запуске).
Это работает как для docker run, так и для docker compose run:

docker run --rm \
 --env-file .env \
 -v "$(pwd)/configs:/app/configs" \
 xraycheck:latest \
 "https://example.com/my-vless-list.txt"

Или через docker-compose (использует сервис vless-checker из docker-compose.yml):

docker compose run --rm vless-checker "https://example.com/my-vless-list.txt"

В этом случае список ключей загружается по переданному URL, а все остальные параметры берутся из .env.

Запуск через скрипты

Для удобства запуска доступны интерактивные скрипты, которые предлагают выбор между обычной проверкой и проверкой в Docker, а также автоматически проверяют и устанавливают зависимости.

Windows: bat-скрипт

Для Windows доступен нативный bat-скрипт run_check.bat с интерактивным меню:

  1. Дважды кликните наrun_check.bat в проводнике Windows, или
  2. Запустите из командной строки или PowerShell:
    run_check.bat

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

  • Используйте стрелки ↑↓ для навигации по меню
  • Нажмите Enter для выбора пункта
  • Нажмите Escape для выхода

С передачей аргументов (например, URL списка):

run_check.bat "https://example.com/my-list.txt"

Примечание: Скрипт использует встроенный PowerShell для интерактивного меню. Убедитесь, что PowerShell доступен в вашей системе (обычно установлен по умолчанию в Windows 10/11).

Linux/macOS: bash скрипт

Для Linux и macOS используйте bash скрипт run_check.sh с интерактивным меню:

chmod +x run_check.sh
./run_check.sh

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

  • Используйте стрелки ↑↓ для навигации по меню
  • Нажмите Enter для выбора пункта
  • Нажмите Escape или 'q' для выхода

С передачей аргументов (например, URL списка):

./run_check.sh "https://example.com/my-list.txt"

Настройки (файл .env)

Параметры задаются в .env в каталоге проекта (или через переменные окружения). Полный шаблон со значениями по умолчанию - .env.example.

Основные, вывод и комментарии
Переменная Описание
MODE Режим: single (одна ссылка) или merge (объединение списков из файла)
DEFAULT_LIST_URL URL списка по умолчанию при MODE=single
LINKS_FILE Файл со ссылками при MODE=merge (по одной URL на строку)
OUTPUT_FILE Имя файла для рабочих ключей без расширения (напр. available)
OUTPUT_DIR Директория для результатов (configs)
OUTPUT_ADD_DATE Добавлять дату и источник к имени файла (true/false)
AUTO_COMMENT Комментарий, который добавляется к проверенным конфигам (после флага страны)
CIDR_WHITELIST_URL URL CIDR whitelist для Docker-режима (ограничение исходящего доступа по подсетям)
Тестовые URL и валидация
Переменная Описание
TEST_URL, TEST_URLS URL для проверки (HTTP), при нескольких - через запятую
TEST_URLS_HTTPS HTTPS URL (напр. https://www.gstatic.com/generate_204)
REQUIRE_HTTPS Требовать успешный HTTPS для признания ключа рабочим
STRONG_STYLE_TEST Строгий режим как в мобильных клиентах (true/false)
STRONG_STYLE_TIMEOUT Таймаут одного запроса в строгом режиме, сек.
STRONG_MAX_RESPONSE_TIME В строгом режиме макс. время ответа, сек.
STRONG_DOUBLE_CHECK В строгом режиме два запроса подряд, оба должны пройти
STRONG_ATTEMPTS Число подряд успешных запросов к generate_204 (3 = строже)
Запросы и таймауты
Переменная Описание
REQUESTS_PER_URL Число запросов к каждому URL
MIN_SUCCESSFUL_REQUESTS Минимум успешных запросов к одному URL
MIN_SUCCESSFUL_URLS Минимум успешных URL для признания ключа рабочим
REQUEST_DELAY Задержка между запросами к одному URL, сек.
CONNECT_TIMEOUT Таймаут HTTP-запроса через прокси, сек.
CONNECT_TIMEOUT_SLOW Таймаут для медленных соединений, сек.
USE_ADAPTIVE_TIMEOUT Адаптивные таймауты (true/false)
MAX_RETRIES Макс. повторов при ошибке соединения
RETRY_DELAY_BASE, RETRY_DELAY_MULTIPLIER Задержка между повторами (экспоненциальная)
Ответы и фильтры
Переменная Описание
MAX_RESPONSE_TIME Макс. допустимое время ответа, сек. (0 = не ограничивать)
MIN_RESPONSE_SIZE Минимальный размер ответа в байтах (0 = не проверять)
MAX_LATENCY_MS Макс. задержка в мс; ключи выше не попадают в результат
VERIFY_HTTPS_SSL Проверять SSL при HTTPS через прокси (false типично для SOCKS)
Геолокация и стабильность
Переменная Описание
CHECK_GEOLOCATION Проверять геолокацию прокси
GEOLOCATION_SERVICE URL сервиса геолокации
ALLOWED_COUNTRIES Разрешённые страны (пусто = все)
STABILITY_CHECKS Число проверок стабильности
STABILITY_CHECK_DELAY Задержка между валидациями стабильности, сек.
STRICT_MODE, STRICT_MODE_REQUIRE_ALL Строгий режим: требовать все проверки
Производительность и xray
Переменная Описание
MAX_WORKERS Число потоков (параллельных проверок)
BASE_PORT Начальный порт для SOCKS (диапазон BASE_PORT ... BASE_PORT+MAX_WORKERS-1)
XRAY_STARTUP_WAIT Ожидание старта xray, сек.
XRAY_STARTUP_POLL_INTERVAL Интервал опроса процесса xray, сек.
XRAY_PATH Путь к xray (пусто = поиск в PATH и автоустановка в xray_dist)
XRAY_DIR_NAME Папка для скачанного xray
Отладка, логи, метрики, кэш и дополнительные проверки
Переменная Описание
DEBUG_FIRST_FAIL Вывод отладки при первой неудаче
LOG_LEVEL Уровень логирования (DEBUG, INFO, WARNING, ERROR)
LOG_FILE, LOG_MAX_SIZE, LOG_BACKUP_COUNT Файл логов и ротация
LOG_RESPONSE_TIME Писать время ответа в результаты
LOG_METRICS Логировать метрики производительности
METRICS_FILE Файл для метрик
MIN_AVG_RESPONSE_TIME Мин. среднее время ответа, сек. (0 = не ограничивать)
TEST_POST_REQUESTS Проверять POST-запросы
ENABLE_CACHE Кэширование результатов проверки
CACHE_TTL, CACHE_FILE Время жизни кэша и файл кэша
Speedtest (speedtest_checker.py)
Переменная Описание
SPEED_TEST_ENABLED Включить speedtest (true/false)
SPEED_TEST_TIMEOUT Макс. секунд на конфиг для фазы задержки
SPEED_TEST_MODE Режим: latency, quick (250KB), full (1MB)
SPEED_TEST_METRIC Метрика при latency: latency, throughput, hybrid
SPEED_TEST_OUTPUT Куда писать: separate_file (_st, _st(top100))
SPEED_TEST_REQUESTS Число запросов для фазы задержки
SPEED_TEST_URL URL для проверки задержки (generate_204)
SPEED_TEST_WORKERS Число потоков для speedtest
SPEED_TEST_DOWNLOAD_TIMEOUT Макс. секунд на загрузку тестового файла
SPEED_TEST_DOWNLOAD_URL_SMALL, SPEED_TEST_DOWNLOAD_URL_MEDIUM URL для загрузки (quick/full)
MIN_SPEED_THRESHOLD_MBPS Отсев по скорости, Mbps (0 = не фильтровать)
Экспорт
Переменная Описание
EXPORT_FORMAT Формат экспорта: txt, json, csv, html, all
EXPORT_DIR Директория для экспорта

About

Скрипт для технического анализа конфигураций VLESS, VMess, Trojan, Shadowsocks, Hysteria, MTProto с возможностью эмуляции сетевых ограничений

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

Languages

  • Python 77.2%
  • HTML 16.8%
  • Shell 3.7%
  • Batchfile 2.0%
  • Dockerfile 0.3%

AltStyle によって変換されたページ (->オリジナル) /