Skip to content

Test V2Ray/Xray subscription links and nodes. Keeps only working configs — save clean links and base64 subscription. GUI + CLI, Windows exe with bundled Xray.

License

Notifications You must be signed in to change notification settings

Hamed-Gharghi/V2Ray-Checker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

56e1813 · Feb 12, 2026

History

4 Commits
Feb 12, 2026
Feb 12, 2026
Feb 12, 2026
Feb 12, 2026
Feb 12, 2026

Repository files navigation

V2Ray Checker

Test V2Ray/Xray subscription and config links. Finds working nodes and saves only them — a clean list with no dead or slow configs.

Jump to: English · فارسی


Keywords (for search) / کلمات کلیدی (برای جستجو)

English: v2ray, xray, v2ray checker, xray checker, vmess, vless, trojan, subscription checker, config checker, proxy tester, node tester, v2ray subscription, xray subscription, base64 subscription, working nodes, dead node filter, clean config, config filter, vpn node checker, v2ray test, xray test, REALITY, TLS, WebSocket, gRPC, v2ray GUI, xray GUI, Windows exe, v2ray tool, xray tool, subscription validator, link checker, vmess checker, vless checker, trojan checker, Iran, bypass, proxy list, node list.

فارسی: وی۲ری، اکسری، چکر وی۲ری، چکر اکسری، وی‌مس، وی‌لس، تروجان، چکر اشتراک، تست نود، تست پروکسی، تست ساب، اشتراک وی۲ری، نود سالم، فیلتر نود مرده، کانفیگ تمیز، چکر وی‌پی‌ان، تست وی۲ری، رئالیتی، وی۲ری ویندوز، ابزار وی۲ری، اعتبارسنجی اشتراک، چکر لینک، فیلترشکن، پروکسی، لیست نود، ساب تمیز، نود کارکرده.


English

What is this program?

V2Ray Checker is a tool that:

  1. Takes your V2Ray/Xray subscription (a URL or a block of base64/text) or a single config link.
  2. Tests each node by actually running Xray and sending a request through that node. So you see which ones really work on your network.
  3. Saves only the working nodes into simple files: a list of links and a base64 subscription. You can paste that into your VPN app and use only good nodes.

You don’t have to manually try each server. Paste once, run the checker, and use the clean output.


What you need

  • Python 3.9 or newer (to run the scripts).
  • Xray — the core that runs the proxy.
    • Download: XTLS/Xray-core (releases).
    • On Windows: put xray.exe in the same folder as the script, or add Xray’s folder to your system PATH.
    • On Linux/macOS: install Xray (e.g. from your package manager) or place the xray binary in a directory that is on your PATH.

Install Python dependencies:

pip install -r requirements.txt

How to use — Quick start

Option A: Graphical interface (recommended)

  1. Open a terminal in the project folder and run:
    python v2ray_checker_gui.py
  2. In the Subscription or link box, paste one of:
    • A subscription URL (e.g. https://example.com/sub?token=xxx)
    • A base64 subscription string (the long encoded text some providers give you)
    • A single config link (starts with vmess://, vless://, or trojan://)
    • Or select a default list from the dropdown and click Load to load a preset URL.
  3. (Optional) Set Timeout (e.g. 10 s for slow networks), Parallel (e.g. 4), and Max ping (e.g. 2000 ms to drop slow nodes).
  4. Click Check configs. The log will show each node as OK or FAIL and a ping time.
  5. When it finishes, use Open output folder to see the result files, or Copy clean subscription (base64) to paste into your VPN app. You can also use QR code for mobile if you have qrcode and Pillow installed.

Option B: Command line

Run the checker with a single argument: subscription URL, base64 string, or one link.

Subscription URL:

python v2ray_checker.py "https://example.com/sub?token=xxx"

Raw base64 subscription:

python v2ray_checker.py "dm1lc3M6Ly8..."

Single config link:

python v2ray_checker.py "vless://uuid@host:443?security=tls#MyServer"
python v2ray_checker.py "vmess://eyJhZGQiOi..."
python v2ray_checker.py "trojan://password@host:443?sni=example.com#Trojan"

The script prints progress and a summary. Output files are created in the current directory.


What the program does (step by step)

  1. Decode input

    • If you gave a URL, it fetches the page and then decodes base64 or reads plain text (one link per line).
    • If you gave base64, it decodes and splits into links.
    • If you gave a single link, it uses that as the only node.
    • If the content is JSON (array of Xray configs), it uses that and will also produce clean_configs.json.
  2. Parse links
    Each vmess/vless/trojan link is converted into an Xray outbound config. Nodes with the same server address and port are treated as duplicates and skipped.

  3. Test each node
    For each node the program:

    • Writes a small Xray config: local SOCKS proxy + this node as outbound.
    • Runs Xray with that config.
    • Sends a test request (e.g. to https://www.google.com/generate_204) through the SOCKS proxy.
    • Marks the node as OK (with response time in ms) or FAIL (timeout, connection error, etc.).
      You can run several nodes in parallel (GUI: Parallel 1–5; default 4).
  4. Save only working nodes
    Only nodes that passed the test (and, if you set Max ping, are under that limit) are written to the output files. For large lists, the program saves progress every 10 nodes so you don’t lose results.


Supported input and protocols

Input formats:

  • Subscription URL (http/https) — the page can be base64-encoded or plain text (one link per line).
  • Raw base64 — one or more links after decoding, separated by newlines.
  • Single link — one vmess://, vless://, or trojan:// link.
  • JSON subscription — a JSON array of full Xray configs (each with a vless/vmess/trojan outbound). In this case the program also writes clean_configs.json (full configs of working nodes only).

Protocols: VMess, VLESS, Trojan. (Shadowsocks links are skipped.)

Transports: TCP, WebSocket, gRPC, HTTP/2.

Security: TLS, REALITY (when the link has pbk, sid, etc.).


GUI options explained

Option Meaning
Timeout Max seconds to wait for each node (5 / 10 / 15 / 20). Use 10–20 on slow or unstable networks.
Parallel How many nodes to test at the same time (1–5). Higher = faster, but more CPU/network load.
Max ping If you set e.g. 2000 ms, nodes with ping above this are considered failed and are not included in the clean list.
Default lists Preset subscription URLs (e.g. Epodonios, Barry-far). Choose one, click Load, then Check configs.
Open output folder Opens the folder where clean_links.txt and clean_subscription_base64.txt were saved.
Copy clean subscription (base64) Copies the base64 content so you can paste it as a subscription in your VPN client.
QR code for mobile Shows a QR code of the clean subscription (or one per node if too long) so you can scan and add it on your phone. Needs qrcode and Pillow (in requirements).

Output files

All are created in the same folder as the script (or next to the exe if you use the Windows build).

File Description
clean_links.txt Working nodes as share links, one per line (vless://, vmess://, trojan://). Use in clients that accept multiple links.
clean_subscription_base64.txt The same links as a single base64 line. Paste this as the subscription content in VPN apps that accept base64 subscription.
clean_configs.json Only when the input was a JSON subscription. Full Xray configs of working nodes only; for apps that accept full config.

Windows: use without Python (standalone exe)

A pre-built V2Ray-Checker.exe is available in Releases. It includes Xray inside, so you don’t need to install Python or Xray. Download, run it, and the output files are created in the same folder as the exe.


Example output (command line)

============================================================
  V2Ray/Xray Config Checker
============================================================
  Xray: C:\...\xray.exe

  Found 5 node(s). Testing each (timeout 5s, parallel: 4)...

  [OK]  result: 204  |  ping: 312 ms  |  US-01
  [FAIL]  result: timeout  |  ping: -1  |  DE-02
  [OK]  result: 204  |  ping: 289 ms  |  NL-03
  ...

============================================================
  Working: 2  |  Failed: 2  |  Skipped: 1
============================================================

  Clean configs saved (2 working only):
    - clean_links.txt
    - clean_subscription_base64.txt  (paste as subscription in your client)

  Working nodes:
    - US-01
    - NL-03

Ping is the response time in milliseconds; -1 means no connection (timeout or error).


Notes

  • Xray must be found: either on PATH or xray.exe in the script folder (or bundled in the exe). If not found, the program will show a message and the Xray download link.
  • REALITY works when the link contains the usual parameters (pbk, sid, etc.).
  • Output files are written to the current directory when you run the Python scripts, and next to the exe when you use the Windows release.


فارسی

این برنامه چیست؟

V2Ray Checker ابزاری است که:

  1. ورودی می‌گیرد: لینک اشتراک (ساب) V2Ray/Xray (یک آدرس اینترنتی یا یک بلوک base64/متن) یا یک لینک تک‌نود.
  2. هر نود را تست می‌کند با اجرای واقعی Xray و فرستادن درخواست از طریق آن نود؛ پس مشخص می‌شود کدام نودها روی شبکه شما واقعاً کار می‌کنند.
  3. فقط نودهای سالم را در فایل‌های ساده ذخیره می‌کند: لیست لینک‌ها و یک ساب base64. می‌توانید همین را در اپ VPN خود بچسبانید و فقط نودهای خوب را استفاده کنید.

نیازی نیست دستی هر سرور را امتحان کنید. یک بار لینک/ساب را بچسبانید، چکر را اجرا کنید و از خروجی تمیز استفاده کنید.


چه چیزهایی لازم دارید؟

  • پایتون ۳.۹ یا بالاتر (برای اجرای اسکریپت‌ها).
  • Xray — هسته‌ای که پروکسی را اجرا می‌کند.
    • دانلود: XTLS/Xray-core (releases).
    • در ویندوز: فایل xray.exe را در همان پوشهٔ اسکریپت قرار دهید، یا پوشه Xray را به PATH سیستم اضافه کنید.
    • در لینوکس/مک: Xray را نصب کنید (مثلاً از package manager) یا باینری xray را در مسیری که در PATH است بگذارید.

وابستگی‌های پایتون را نصب کنید:

pip install -r requirements.txt

نحوه استفاده — شروع سریع

روش الف: رابط گرافیکی (پیشنهادی)

  1. ترمینال را در پوشهٔ پروژه باز کنید و اجرا کنید:
    python v2ray_checker_gui.py
  2. در کادر Subscription or link یکی از این‌ها را بچسبانید:
    • آدرس اشتراک (URL) مثلاً https://example.com/sub?token=xxx
    • رشته base64 اشتراک (همان متن طولانی رمزشده‌ای که بعضی ارائه‌دهنده‌ها می‌دهند)
    • یک لینک تک‌نود (که با vmess:// یا vless:// یا trojan:// شروع شود)
    • یا از منوی Default lists یک لیست از پیش‌تعریف‌شده انتخاب کنید و Load بزنید تا آدرس لود شود.
  3. (اختیاری) Timeout (مثلاً ۱۰ ثانیه برای شبکه‌های کند)، Parallel (مثلاً ۴)، و Max ping (مثلاً ۲۰۰۰ ms برای حذف نودهای کند) را تنظیم کنید.
  4. Check configs را بزنید. در لاگ هر نود به صورت OK یا FAIL و زمان پینگ نمایش داده می‌شود.
  5. بعد از اتمام، Open output folder را بزنید تا پوشهٔ خروجی باز شود، یا Copy clean subscription (base64) تا محتوای base64 در کلیپبورد کپی شود و در اپ VPN بچسبانید. در صورت نصب qrcode و Pillow می‌توانید QR code for mobile را هم برای اسکن با موبایل استفاده کنید.

روش ب: خط فرمان (Command line)

چکر را با یک آرگومان اجرا کنید: آدرس اشتراک، رشته base64، یا یک لینک.

آدرس اشتراک:

python v2ray_checker.py "https://example.com/sub?token=xxx"

رشته base64 اشتراک:

python v2ray_checker.py "dm1lc3M6Ly8..."

یک لینک تک‌نود:

python v2ray_checker.py "vless://uuid@host:443?security=tls#MyServer"
python v2ray_checker.py "vmess://eyJhZGQiOi..."
python v2ray_checker.py "trojan://password@host:443?sni=example.com#Trojan"

اسکریپت پیشرفت و خلاصه را چاپ می‌کند. فایل‌های خروجی در همان دایرکتوری جاری ساخته می‌شوند.


برنامه چه کار می‌کند (گام به گام)

  1. رمزگشایی ورودی

    • اگر URL دادید، صفحه را دریافت می‌کند و سپس base64 را رمزگشایی یا متن ساده (یک لینک در هر خط) را می‌خواند.
    • اگر base64 دادید، رمزگشایی می‌کند و به لینک‌ها تقسیم می‌کند.
    • اگر یک لینک دادید، فقط همان یک نود استفاده می‌شود.
    • اگر محتوا JSON (آرایهٔ کانفیگ‌های کامل Xray) باشد، از آن استفاده می‌کند و علاوه بر بقیه، clean_configs.json هم تولید می‌شود.
  2. تفسیر لینک‌ها
    هر لینک vmess/vless/trojan به کانفیگ outbound اکسری تبدیل می‌شود. نودهایی با همان آدرس و پورت سرور تکراری محسوب شده و رد می‌شوند.

  3. تست هر نود
    برای هر نود برنامه:

    • یک کانفیگ کوچک اکسری می‌نویسد: پروکسی SOCKS محلی + این نود به عنوان outbound.
    • اکسری را با آن کانفیگ اجرا می‌کند.
    • یک درخواست تست (مثلاً به https://www.google.com/generate_204) از طریق پروکسی SOCKS می‌فرستد.
    • نود را OK (با زمان پاسخ به ms) یا FAIL (تایم‌اوت، خطای اتصال و غیره) علامت می‌زند.
      می‌توانید چند نود را به صورت موازی اجرا کنید (در GUI: Parallel ۱ تا ۵؛ پیش‌فرض ۴).
  4. ذخیره فقط نودهای سالم
    فقط نودهایی که تست را passed کرده‌اند (و در صورت تنظیم Max ping زیر آن حد هستند) در فایل‌های خروجی نوشته می‌شوند. برای لیست‌های بزرگ، هر ۱۰ نود یک بار ذخیره می‌شود تا نتیجه از دست نرود.


فرمت‌های ورودی و پروتکل‌های پشتیبانی‌شده

فرمت‌های ورودی:

  • آدرس اشتراک (http/https) — محتوای صفحه می‌تواند base64 یا متن ساده (یک لینک در هر خط) باشد.
  • base64 خام — یک یا چند لینک بعد از رمزگشایی، با خط جدید جدا شده.
  • یک لینک — یک لینک vmess:// یا vless:// یا trojan://.
  • اشتراک JSON — آرایهٔ JSON از کانفیگ‌های کامل اکسری (هر کدام با یک outbound از نوع vless/vmess/trojan). در این حالت clean_configs.json هم نوشته می‌شود (فقط کانفیگ‌های کامل نودهای سالم).

پروتکل‌ها: VMess، VLESS، Trojan. (لینک‌های Shadowsocks نادیده گرفته می‌شوند.)

ترانسپورت‌ها: TCP، WebSocket، gRPC، HTTP/2.

امنیت: TLS، REALITY (وقتی لینک شامل pbk، sid و غیره باشد).


توضیح گزینه‌های رابط گرافیکی

گزینه معنی
Timeout حداکثر ثانیه انتظار برای هر نود (۵ / ۱۰ / ۱۵ / ۲۰). در شبکه‌های کند یا ناپایدار ۱۰–۲۰ بگذارید.
Parallel چند نود هم‌زمان تست شوند (۱–۵). بیشتر = سریع‌تر، ولی بار بیشتر روی CPU/شبکه.
Max ping اگر مثلاً ۲۰۰۰ ms بگذارید، نودهایی با پینگ بالاتر از این شکست خورده حساب شده و در لیست تمیز نمی‌آیند.
Default lists آدرس‌های اشتراک از پیش‌تعریف‌شده (مثلاً Epodonios، Barry-far). یکی را انتخاب کنید، Load و بعد Check configs بزنید.
Open output folder پوشه‌ای که clean_links.txt و clean_subscription_base64.txt در آن ساخته شده‌اند را باز می‌کند.
Copy clean subscription (base64) محتوای base64 را کپی می‌کند تا در کلاینت VPN به عنوان اشتراک بچسبانید.
QR code for mobile QR کد اشتراک تمیز (یا در صورت طولانی بودن، یکی به ازای هر نود) را نشان می‌دهد تا با موبایل اسکن کنید. نیاز به qrcode و Pillow دارد (در requirements).

فایل‌های خروجی

همه در همان پوشهٔ اسکریپت (یا کنار exe در صورت استفاده از نسخه ویندوز) ساخته می‌شوند.

فایل توضیح
clean_links.txt نودهای سالم به صورت لینک اشتراک، هر خط یک لینک (vless://، vmess://، trojan://). برای کلاینت‌هایی که چند لینک می‌پذیرند.
clean_subscription_base64.txt همان لینک‌ها در یک خط base64. این را به عنوان محتوای اشتراک در اپ‌های VPN که base64 می‌پذیرند بچسبانید.
clean_configs.json فقط وقتی ورودی اشتراک JSON بوده. کانفیگ‌های کامل اکسری فقط نودهای سالم؛ برای اپ‌هایی که کانفیگ کامل می‌پذیرند.

ویندوز: استفاده بدون نصب پایتون (exe آماده)

یک V2Ray-Checker.exe از قبل ساخته‌شده در Releases موجود است. Xray داخل آن است؛ نیازی به نصب پایتون یا Xray نیست. دانلود کنید، اجرا کنید؛ فایل‌های خروجی در همان پوشهٔ exe ساخته می‌شوند.


نمونه خروجی (خط فرمان)

============================================================
  V2Ray/Xray Config Checker
============================================================
  Xray: C:\...\xray.exe

  Found 5 node(s). Testing each (timeout 5s, parallel: 4)...

  [OK]  result: 204  |  ping: 312 ms  |  US-01
  [FAIL]  result: timeout  |  ping: -1  |  DE-02
  [OK]  result: 204  |  ping: 289 ms  |  NL-03
  ...

============================================================
  Working: 2  |  Failed: 2  |  Skipped: 1
============================================================

  Clean configs saved (2 working only):
    - clean_links.txt
    - clean_subscription_base64.txt  (paste as subscription in your client)

  Working nodes:
    - US-01
    - NL-03

Ping زمان پاسخ به میلی‌ثانیه است؛ -1 یعنی اتصال برقرار نشد (تایم‌اوت یا خطا).


نکات

  • Xray باید پیدا شود: یا در PATH یا xray.exe در پوشهٔ اسکریپت (یا داخل exe در نسخهٔ ویندوز). اگر پیدا نشود، برنامه پیام و لینک دانلود Xray را نشان می‌دهد.
  • REALITY وقتی کار می‌کند که لینک پارامترهای معمول (pbk, sid و غیره) را داشته باشد.
  • فایل‌های خروجی وقتی اسکریپت پایتون را اجرا می‌کنید در دایرکتوری جاری، و وقتی از نسخهٔ ویندوز استفاده می‌کنید کنار exe نوشته می‌شوند.

About

Test V2Ray/Xray subscription links and nodes. Keeps only working configs — save clean links and base64 subscription. GUI + CLI, Windows exe with bundled Xray.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages