Автоматически обновляемая коллекция публичных VPN-конфигов (VLESS, VMess, Trojan, Shadowsocks) + скрипт для тестирования конфигов с эмуляцией CIDR-ограничений https://whiteprime.github.io/xraycheck/
  • Python 74.7%
  • HTML 14.4%
  • Shell 5.7%
  • Batchfile 4.5%
  • Dockerfile 0.7%
Find a file
2026-02-21 15:59:43 +00:00
.github/workflows include config counts and update display logic in index.html 2026-02-21 18:52:13 +03:00
configs chore: update configs/white-list_available and top100 [Docker, automated] 2026-02-21 15:59:43 +00:00
lib update output file handling 2026-02-21 09:48:35 +03:00
.dockerignore update output file handling 2026-02-21 09:48:35 +03:00
.env.example update output file handling 2026-02-21 09:48:35 +03:00
.gitignore update output file handling 2026-02-21 09:48:35 +03:00
.nojekyll refactor proxy key checking module to support multiple protocols (VLESS, VMess, Trojan, Shadowsocks) 2026-02-13 13:01:16 +03:00
docker-compose.yml update output file handling 2026-02-21 09:48:35 +03:00
Dockerfile Refactor configuration and output handling 2026-02-19 15:36:02 +03:00
index.html include config counts and update display logic in index.html 2026-02-21 18:52:13 +03:00
LICENSE Update LICENSE 2026-02-21 18:46:59 +03:00
README.md Update README.md 2026-02-21 18:33:45 +03:00
requirements.txt first commit 2026-02-12 13:20:11 +03:00
run_check.bat Refactor configuration and output handling 2026-02-19 15:36:02 +03:00
run_check.sh refactor proxy key checking module to support multiple protocols (VLESS, VMess, Trojan, Shadowsocks) 2026-02-13 13:01:16 +03:00
vless_checker.py update output file handling 2026-02-21 09:48:35 +03:00

XRayCheck

Автоматически обновляемая коллекция публичных VPN-конфигов: (VLESS, VMess, Trojan, Shadowsocks)


⚠️ Для успешного добавления/обновления подписки в условиях CIDR-ограничений необходимо использовать ссылку с использованием зеркала (кнопка копирования рядом с текстом Mirror на сайте)


⚠️ Показатели доступности и перечень рабочих конфигов могут быть разными в зависимости от региона использования

⚠️ Перед началом использования необходимо каждый раз производить проверку доступности средствами VPN-клиента

Пример использования


| Сайт | Конфиги |

| Исходный код |

Telegram-бот для обратной связи


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

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


VPN-клиенты

Ссылки на подписки можно найти на сайте

Добавление подписок в vpn-клиенты осуществляется через нажатие на + и выбор пункта "импорт из буфера обмена"

Android Windows Apple
Exclave v2RayTun v2RayTun
v2rayTun Throne V2Box
Happ Happ Happ

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

Показатель Значение
Просмотры (14Д) 44
Уникальные посетители (14Д) 18
Клоны (14Д) 369
Уникальные клоны (14Д) 176
Звёзды 0
Форки 0

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


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

Скрипт загружает список прокси-ключей по URL и выполняет end-to-end проверку каждого ключа:

  1. Запускает локальный прокси (xray) с этим ключом (SOCKS на 127.0.0.1).
  2. Делает HTTP(S)-запрос к тестовому URL через прокси.
  3. По ответу (статус, время, при необходимости несколько URL и повторные запросы) ключ считается рабочим или мёртвым.

Рабочие ключи сохраняются в директории configs/ без расширения: available, available(top100). При запуске через Docker — configs/white-list_available, configs/white-list_available(top100). Ссылки на скачивание с GitHub Pages: https://whiteprime.github.io/xraycheck/configs/... (то же имя файла без расширения).

Требования

  • 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) - один тестовый URL https://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, а также автоматически проверяют и устанавливают зависимости.

Windows: bat-скрипт (самый простой способ)

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

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

Особенности:

  • Интерактивное меню с выбором стрелками ↑↓ и подтверждением Enter
  • Центрированное отображение меню в консоли
  • Цветная подсветка выбранного пункта
  • Автоматическая проверка и установка зависимостей Python

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

  • Используйте стрелки ↑↓ для навигации по меню
  • Нажмите 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
  • Центрированное отображение меню в терминале
  • Цветная подсветка выбранного пункта
  • Автоматическая проверка и установка зависимостей Python

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

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

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

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

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

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

Переменная Описание
MODE Режим: single или merge
LINKS_FILE Файл со ссылками при MODE=merge (по одной URL на строку)
DEFAULT_LIST_URL URL списка по умолчанию (при MODE=single)
OUTPUT_FILE Базовое имя файла для рабочих ключей (без расширения: available)
OUTPUT_DIR Директория для результатов (configs)
TEST_URL, TEST_URLS URL для проверки (HTTP); при нескольких - через запятую
TEST_URLS_HTTPS HTTPS URL (например https://www.gstatic.com/generate_204)
REQUIRE_HTTPS Требовать успешный HTTPS для признания ключа рабочим
STRONG_STYLE_TEST Строгий режим: один URL, 1-2 запроса, лимит по времени (true/false)
STRONG_STYLE_TIMEOUT Таймаут одного запроса в строгом режиме, сек.
STRONG_MAX_RESPONSE_TIME В строгом режиме макс. время ответа, сек. (медленнее - мёртвый)
STRONG_DOUBLE_CHECK В строгом режиме делать два запроса, оба должны успешно пройти
CONNECT_TIMEOUT Таймаут запроса через прокси, сек.
MAX_RESPONSE_TIME Макс. допустимое время ответа, сек. (0 = не ограничивать)
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_DIR_NAME Папка для скачанного xray
VERIFY_HTTPS_SSL Проверять SSL при HTTPS-запросах через прокси (false типично для SOCKS)
DEBUG_FIRST_FAIL Вывод отладки при первой неудаче (true/false)

Остальные параметры (повторы, стабильность, геолокация, строгий режим проверки всех URL и т.д.) описаны в .env.example.

Docker: эмуляция ограничения по CIDR whitelist

В контейнере исходящий доступ ограничен только подсетями из CIDR whitelist.

  • Сборка и запуск: docker compose up --build (или docker compose run --rm vless-checker)
  • Результат: файл с рабочими ключами создаётся в configs/ на хосте (volume .:/app)
  • Свой URL списка: docker compose run --rm vless-checker "https://example.com/keys.txt"
  • Режим merge: положите links.txt в каталог проекта (volume .:/app), задайте в .env MODE=merge и запустите docker compose run --rm vless-checker
  • Требуется cap_add: NET_ADMIN для iptables внутри контейнера


Github Action

GitHub Actions: ежедневное обновление available

В репозитории настроен workflow Daily VLESS check (.github/workflows/daily-check.yml):

  • Расписание: три раза в день в 7:10 | 14:10 | 19:10 MSK (cron).
  • Действия: запуск vless_checker.py в режиме merge (списки из links.txt), результат пишется в configs/available и configs/available(top100); копии в корень для GitHub Pages; при изменении — коммит и push.
  • Ручной запуск: вкладка Actions → «Daily VLESS check» → Run workflow.

Чтобы не публиковать links.txt в репозитории: файл links.txt уже попадает под маску *.txt в .gitignore. В CI он создаётся из секрета. Добавьте в репозитории Settings → Secrets and variables → Actions секрет с именем LINKS_FILE_CONTENT и значением - содержимое вашего links.txt (по одной URL на строку). Workflow перед запуском проверки запишет этот секрет во временный links.txt. Если секрет не задан, шаг «Create links.txt from secret» завершится с ошибкой. Если links.txt уже был закоммичен ранее, удалите его из истории и добавьте секрет: git rm --cached links.txt и коммит.