ابزار ساخت کانفیگ VLESS و Trojan برای Cloudflare Workers و Cloudflare Pages — بدون نیاز به VPS یا سرور شخصی
Tunnel Config Builder یک ابزار تحت وب است که به شما امکان میدهد بدون هیچ هزینهای و تنها با استفاده از سرویس رایگان Cloudflare Workers یا Cloudflare Pages، کانفیگهای VLESS و Trojan بسازید. تمام مراحل از ساخت Worker/Pages تا تولید کانفیگ در همین صفحه انجام میشود.
- پشتیبانی همزمان از دو پروتکل VLESS و Trojan روی یک Worker یا Pages واحد — با قابلیت انتخاب فقط VLESS، فقط Trojan یا هر دو بهصورت همزمان
- پشتیبانی از استقرار روی Cloudflare Pages در کنار Cloudflare Workers — کد یکسان روی هر دو سرویس اجرا میشود؛ برای Pages کافیست فایل ZIP حاوی
_worker.jsرا در بخش آپلود مستقیم Cloudflare Pages بارگذاری کنید - ساخت و دانلود مستقیم فایل Worker یا فایل ZIP مخصوص Pages، هر دو با Token (VLESS) و Password (Trojan) جاسازیشده
- دامنه پوششی (Fallback Domain): در صورت تنظیم، بازدیدکنندههای غیرمجاز که مستقیم به آدرس Worker/Pages سر میزنند، بهجای یک پاسخ خالی، محتوای یک دامنه واقعی دلخواه را میبینند
- تولید UUID و Password اتوماتیک یا استفاده از مقادیر دلخواه
- پشتیبانی از پورتهای TLS: 443، 8443، 2053، 2083، 2087، 2096
- پشتیبانی از پورتهای WebSocket بدون TLS: 80، 8080، 8880، 2052، 2082، 2086، 2095 (فقط در حالت استقرار Worker؛ Cloudflare Pages بهطور کامل و دائمی از این پورتها پشتیبانی نمیکند)
- پشتیبانی از چند IP و دامنه همزمان
- انتخاب TLS Fingerprint از ۱۰ گزینه برای دور زدن DPI
- انتخاب مسیر WebSocket Path
- تنظیمات Fragment برای مقابله با فیلترینگ عمیق
- تنظیمات پیشرفته JSON: Fake DNS، IPv6، Allow LAN، TCP Fast Open، Local DNS، Remote DNS / DoH
- پشتیبانی از ECH برای رمزنگاری Client Hello و پنهان کردن SNI از دید DPI
- قوانین مسیریابی قابل تنظیم: انتخاب کشورهای ایران، چین و روسیه برای مسیریابی مستقیم (Bypass) و انتخاب دستههای Ads، Porn، QUIC، Malware، Phishing و Cryptominers برای مسدودسازی؛ هر دو گروه همزمان روی هر سه فرمت خروجی (Xray، Sing-box، Clash) اعمال میشوند
- Bypass Sanctions: دور زدن مستقیم سرویسهای تحریمی (OpenAI، Google AIs، Anthropic، xAI، Microsoft، Oracle، Docker، Adobe، Epic Games، Intel، AMD، Nvidia، Asus، HP، Lenovo) با یک DNS ضدتحریم قابل تنظیم (پیشفرض: 178.22.122.100)، حتی اگر IP خروجی شما ایرانی تشخیص داده شود
- قوانین سفارشی مسیریابی: دو کادر متنی برای وارد کردن دامنه/IP/CIDR دلخواه جهت Bypass یا Block کردن مستقیم، مستقل از دستهبندیهای آماده بالا
- تنظیمات Observatory Settings (فاصله زمانی و پارامترهای leastPing/leastLoad) قابل ویرایش توسط کاربر برای هستهی Xray
- Chain Proxy — امکان زنجیر کردن کانفیگهای TCB به یک سرور خارجی (VLESS، Trojan، Shadowsocks، SOCKS5 یا HTTP) برای ثابت نگهداشتن IP خروجی، روی هر سه فرمت خروجی JSON (Xray، Sing-box، Clash)
- کانفیگ JSON مخصوص هسته Xray بر اساس آخرین ساختار و قوانین شناختهشدهی این هسته (شامل Finalmask/Fragment پیشرفته)
- تولید همزمان کانفیگ در چهار فرمت: لینک VLESS/Trojan، JSON برای هسته Xray (با قابلیت least ping)، JSON برای Sing-box و JSON برای Clash / Mihomo
- نامگذاری هوشمند کانفیگها: نام هر کانفیگ بهصورت خودکار بر اساس حالت آن (Normal، Fragment یا ECH) تعیین میشود و بهطور یکسان روی هر سه فرمت خروجی JSON/YAML (Xray، Sing-box، Clash) و همچنین روی نام فایلهای دانلودی اعمال میشود؛ در صورت تمایل میتوانید یک نام دلخواه هم برای کانفیگ خود تعیین کنید
- اکسپورت و ایمپورت تمام تنظیمات صفحه در قالب یک فایل، برای پشتیبانگیری یا انتقال سریع تنظیمات
- نمایش QR Code اختصاصی برای هر کانفیگ با یک کلیک — تولید کاملاً آفلاین و بدون نیاز به هیچ سرویس یا API خارجی
- نامگذاری یکتا برای هر کانفیگ تکی فرمت لینک (شامل پروتکل، شماره IP و پورت) تا هیچ دو کانفیگی نام یکسان نداشته باشند
- دکمه «🔄 پاکسازی کامل و شروع مجدد» برای بازگرداندن آنی پنل به حالت اولیه و پاکسازی کامل و امن تمام اطلاعات وارد شده، مناسب برای استفاده روی سیستمهای عمومی یا مشترک
- راهنمای گامبهگام اتصال دامنه شخصی به Worker (کاملاً از طریق داشبورد رسمی Cloudflare، بدون نیاز به هیچ توکن یا تنظیم اضافی در TCB)
- تماس صوتی/تصویری (UDP): Cloudflare Workers در حال حاضر فقط از اتصالهای خروجی TCP پشتیبانی میکند، نه UDP. به همین دلیل، مثل هر ابزار مشابه دیگری که روی Cloudflare Workers ساخته شده، ترافیک UDP (از جمله تماس صوتی/تصویری تلگرام یا برنامههای مشابه) از طریق کانفیگهای TCB بهدرستی کار نمیکند. این یک محدودیت پایهای خود پلتفرم Cloudflare Workers است، نه چیزی که با تغییر کد Worker/Pages قابل رفع باشد.
- محدودیت تعداد درخواست روزانه: پلن رایگان Cloudflare Workers روزانه ۱۰۰ هزار درخواست را پشتیبانی میکند. برای استفاده شخصی یا چندنفره این مقدار معمولاً کاملاً کافی است.
- حداقل نسخه کلاینت برای ECH: پشتیبانی از ECH در Sing-box و در Clash/Mihomo نسبتاً جدید است؛ اگر با فعال بودن ECH کانفیگهای Sing-box یا Clash متصل نشدند، مطمئن شوید کلاینت شما به آخرین نسخه بهروزرسانی شده باشد.
۱. به dash.cloudflare.com بروید و وارد حساب کاربری خود شوید.
۲. برای Worker: از منو Workers and Pages را انتخاب کنید، روی Create Application کلیک کنید، گزینه Create Worker را بزنید، یک نام دلخواه وارد کنید و Deploy کنید.
برای Pages: از همان صفحهی «Ship something new»، پایین صفحه روی «Looking to deploy Pages? Get started» کلیک کنید، سپس گزینهی «Drag and drop your files» را انتخاب کنید. در این حالت بهجای Edit Code، فایل ZIP مخصوص Pages که در مرحله بعد از ابزار دانلود میکنید را مستقیماً در همین صفحه رها (drag & drop) کرده و Deploy site را بزنید.
۱. در ابزار، یک Token جدید بسازید یا UUID دلخواه خود را مستقیم در کادر وارد کنید. برای استفاده از پروتکل Trojan، یک Password نیز به همین ترتیب بسازید یا مقدار دلخواه خود را وارد کنید.
۲. در بخش ساخت کد، تب Worker یا تب Pages را متناسب با روشی که در مرحله ۱ انتخاب کردید انتخاب کنید.
۳. برای Worker: کد Worker که بهصورت خودکار با Token و Password شما آپدیت شده را با دکمه کپی کد کپی کنید، یا با دکمه دانلود .js فایل worker.js را دانلود کنید؛ در داشبورد Cloudflare روی Edit Code کلیک کنید، کد پیشفرض را پاک کنید، کد کپیشده را Paste کنید و Deploy کنید.
برای Pages: روی دکمه «↓ دانلود ZIP» کلیک کنید تا فایلی حاوی _worker.js (با Token و Password شما جاسازیشده) دانلود شود؛ همین فایل ZIP را در صفحهی «Drag and drop your files» رها کنید و Deploy site را بزنید. توجه داشته باشید که فایل داخل ZIP باید دقیقاً با نام _worker.js در ریشهی آرشیو باشد تا Cloudflare Pages آن را بهعنوان یک Worker کامل اجرا کند، نه یک فایل جاوااسکریپت استاتیک ساده.
۴. آدرسی که Cloudflare بعد از Deploy نمایش میدهد (مثل myworker.username.workers.dev برای Worker یا myproject.pages.dev برای Pages) را کپی کنید.
با دکمه «📤 اکسپورت تنظیمات» میتوانید در هر مرحله یک فایل پشتیبان از تمام تنظیمات وارد شده در صفحه (Token، Password، پروتکلهای انتخابشده، آدرس Worker/Pages، IP ها، پورتها، Fingerprint، WebSocket Path، تنظیمات Fragment، تنظیمات پیشرفته JSON، ECH، DNS، قوانین مسیریابی، Observatory Settings، Chain Proxy و نام کانفیگ) دانلود کنید. با دکمه «📥 ایمپورت تنظیمات» میتوانید همان فایل را دوباره در صفحه بارگذاری کنید تا تمام تنظیمات بهصورت خودکار بازیابی شوند.
این دکمه فقط فایلی را میپذیرد که دقیقاً با همین نسخه از TCB اکسپورت شده باشد. فایلهای تنظیمات مربوط به نسخههای قدیمیتر (حتی اگر ساختار آنها با دست تغییر داده شود) همیشه رد میشوند تا هیچوقت تنظیمات ناقص یا ناسازگار با نسخهی فعلی بهاشتباه در صفحه اعمال نشود. اگر فایل تنظیمات خود را از یک نسخهی قدیمیتر TCB نگه داشتهاید، ابتدا باید تنظیمات را دستی در همین نسخه دوباره وارد کنید و سپس یک فایل خروجی جدید بگیرید تا از این پس قابل ایمپورت باشد.
۱. آدرس Worker یا Pages را در فیلد مربوطه وارد کنید.
۲. پروتکل یا پروتکلهای موردنظر (VLESS، Trojan یا هر دو) را انتخاب کنید.
۳. IP های سالم Cloudflare را در کادر مربوطه وارد کنید. علاوه بر IP، میتوانید از برخی دامنهها نیز استفاده کنید (مثلاً chatgpt.com). برای یافتن IP های سالم میتوانید از ابزار Clean IP Scanner استفاده کنید.
۴. پورتهای TLS و WebSocket مورد نظر را انتخاب کنید.
۵. TLS Fingerprint و مسیر WebSocket Path را انتخاب کنید.
۶. در صورت تمایل، تنظیمات Fragment را فعال کرده و مقادیر دلخواه را وارد کنید.
۷. در صورت تمایل، تنظیمات پیشرفته JSON را بر اساس نیاز خود تغییر دهید.
۸. کشورهای موردنظر برای مسیریابی مستقیم و دستههای موردنظر برای مسدودسازی را انتخاب کنید؛ در صورت تمایل تنظیمات Observatory Settings را نیز تغییر دهید.
۹. در صورت تمایل به داشتن IP خروجی ثابت، کانفیگ سرور خارجی خود را در کادر Chain Proxy وارد کنید.
۱۰. روی ساخت کانفیگ کلیک کنید.
- کانفیگهای تولید شده (لینکهای
vless://وtrojan://) را در v2rayNG یا کلاینتهای مشابه وارد کنید. - کانفیگ JSON خروجی Xray را در کلاینتهای سازگار با Xray مانند v2rayNG وارد کنید تا از حالت least ping بهرهمند شوید.
- کانفیگ JSON خروجی Sing-box را مستقیماً در کلاینتهایی مثل Sing-box، Hiddify یا NekoBox وارد کنید.
- کانفیگ خروجی Clash (با پسوند
.yamlدانلود میشود) را در کلاینتهای Clash Meta / Mihomo مانند Clash Verge وارد کنید.
پس از اتمام کار، بهخصوص اگر از یک سیستم عمومی یا مشترک استفاده میکنید، حتماً روی دکمه «🔄 پاکسازی کامل و شروع مجدد» کلیک کنید تا تمام اطلاعات شما بهطور کامل و امن پاک شوند (توضیحات کامل در بخش پاکسازی کامل و امنیت).
این ابزار روی یک Worker یا Pages واحد از هر دو پروتکل VLESS و Trojan پشتیبانی میکند. Token (UUID) برای احراز هویت VLESS و Password برای احراز هویت Trojan استفاده میشود؛ این دو کاملاً مستقل از هم عمل میکنند و تغییر هرکدام در کد Worker/Pages، فقط همان پروتکل را غیرفعال میکند (دقیقاً مثل رفتار Token در نسخههای قبلی). با چکباکسهای «پروتکلهای خروجی» در مرحله ۳ مشخص میکنید کدام پروتکل یا پروتکلها برای شما کانفیگ (لینک، JSON، Sing-box و Clash) بسازند؛ کد Worker/Pages همیشه از هر دو پروتکل پشتیبانی میکند و تغییر این چکباکسها نیازی به Deploy مجدد Worker/Pages ندارد.
این تنظیم مشخص میکند که کلاینت شما در TLS handshake خود را به عنوان چه مرورگر یا دستگاهی معرفی کند. سیستمهای DPI با بررسی الگوی TLS میتوانند ترافیک پروکسی را تشخیص دهند؛ انتخاب یک Fingerprint معمول مثل chrome یا firefox این تشخیص را دشوارتر میکند. گزینههای موجود:
chrome — firefox — safari — ios — android — edge — 360 — qq — random — randomized
مسیر WebSocket که در کانفیگها استفاده میشود. گزینههای موجود: /vless، /proxy، /v2ray، /ws، /
کانفیگهای بدون TLS (پورتهای WebSocket ساده) فقط زمانی کار میکنند که کد را روی Cloudflare Worker مستقر کرده باشید. اگر روی Cloudflare Pages مستقر کرده باشید، این کانفیگها اصلاً و تحت هیچ شرایطی کار نخواهند کرد.
این یک محدودیت دائمی و رسمی از سمت خود Cloudflare است، نه یک باگ در TCB و نه چیزی که با تغییر کد Worker/Pages قابل رفع باشد: Cloudflare Pages هر درخواست HTTP (غیر-TLS) را همیشه و بهصورت خودکار به HTTPS ریدایرکت میکند — این ریدایرکت در لایه شبکه خود Cloudflare اتفاق میافتد، پیش از آنکه اصلاً درخواست به کد شما برسد. این رفتار طبق تأیید صریح تیم Cloudflare عمدی است و قرار نیست تغییر کند. به همین دلیل، در پنل TCB وقتی تب Pages را انتخاب میکنید، بخش پورتهای بدون TLS بهطور خودکار غیرفعال میشود.
همین محدودیت، طبق مستندات پروژههای مشابه، برای Worker با دامنه اختصاصی (Custom Domain) هم صدق میکند — یعنی حتی اگر روی Worker (نه Pages) یک دامنه اختصاصی متصل کرده باشید، کانفیگهای همان دامنه اختصاصی هرگز نمیتوانند از پورتهای بدون TLS استفاده کنند. به همین دلیل، وقتی از قابلیت دامنه شخصی TCB استفاده میکنید (توضیح کامل در بخش اتصال دامنه شخصی به Worker پایینتر)، کانفیگهای ساختهشده با آن دامنه همیشه و بهطور خودکار فقط با TLS ساخته میشوند — بدون اینکه پورتهای بدون TLS مربوط به آدرس اصلی workers.dev شما محدود شوند، چون آن آدرس همچنان بهطور کامل از پورتهای بدون TLS پشتیبانی میکند.
اگر فقط به کانفیگ بدون TLS نیاز دارید (مثلاً برای شبکههایی که TLS در آنها بلاک است) و قصد استفاده از دامنه شخصی را ندارید، همان روش استقرار Worker با آدرس پیشفرض *.workers.dev کاملاً کافی است.
اگر یک دامنه شخصی دارید (مثلاً یک دامنه .ir یا هر پسوند دیگری) و میخواهید علاوه بر آدرس پیشفرض workers.dev، از دامنه خودتان هم برای دسترسی به Worker استفاده کنید، این کاملاً ممکن است — و این قابلیت رسمی و رایگان خود Cloudflare است، نه چیزی که TCB نیاز به تنظیم اضافی برایش داشته باشد. کد Worker که TCB برایتان میسازد، بدون هیچ تغییری با دامنه شخصی هم کار میکند.
چرا TCB یک دکمه «اتصال خودکار دامنه» مثل بعضی پنلهای مشابه ندارد؟ برخی پنلهای مشابه (که بهصورت یک اپلیکیشن دائمی روی Cloudflare با پایگاهداده KV اجرا میشوند) یک فیلد Custom Domain در تنظیمات خودشان دارند که با یک کلیک، دامنه را برایتان متصل میکند. این قابلیت فقط به این دلیل ممکن است که آن پنلها از قبل یک Cloudflare API Token با دسترسی به حساب شما میگیرند و مستقیماً از طریق API کلادفلر تغییرات را اعمال میکنند. TCB عمداً و از پایه یک ابزار کاملاً استاتیک و آفلاین است که هیچوقت هیچ توکن، رمز عبور API، یا اطلاعات حساب Cloudflare شما را دریافت نمیکند و هیچ تماس شبکهای با هیچ سروری (جز خود شما) برقرار نمیکند؛ گرفتن چنین توکنی از کاربر، دقیقاً همان اصل سادگی و امنیت آفلاین بودن TCB را که در معرفی این پروژه به آن معروف است نقض میکند. خوشبختانه اتصال دامنه شخصی به هیچ توکن یا APIای نیاز ندارد — این کار کاملاً از طریق داشبورد رسمی خود Cloudflare و در چند کلیک ساده انجام میشود.
مراحل اتصال دامنه (روش فعلی داشبورد Cloudflare):
۱. دامنه خودتان را به Cloudflare اضافه کنید: وارد حساب Cloudflare شوید، از صفحه اصلی گزینه افزودن دامنه را بزنید و دامنهتان (مثلاً example.ir) را بدون https:// و بدون www وارد کنید.
۲. Cloudflare دو Nameserver به شما نشان میدهد. وارد پنل همان شرکتی شوید که دامنه را از آن خریدهاید (Registrar) و در تنظیمات دامنه، Nameserverهای فعلی را با همین دو مورد جایگزین کنید.
۳. صبر کنید تا وضعیت دامنه در Cloudflare به Active برسد (معمولاً چند دقیقه تا چند ساعت طول میکشد).
۴. به بخش Workers & Pages بروید و روی Worker خودتان کلیک کنید.
۵. از مسیر Settings ← Domains & Routes ← Add ← Custom Domain، یک زیردامنه دلخواه (مثلاً vpn.example.ir — نه خود example.ir) وارد کرده و اضافه کنید.
Cloudflare بهصورت کاملاً خودکار رکورد DNS لازم و گواهی TLS معتبر را برایتان میسازد — نیازی به تنظیم دستی رکورد DNS یا صدور گواهی جداگانه نیست.
۶. در پنل TCB، در مرحله ۲ و زیر همان کادر آدرس اصلی Worker/Pages، یک چکباکس با عنوان «همچنین یک دامنه شخصی هم به Worker متصل کردهام» وجود دارد. با فعال کردن آن، یک کادر متنی جدید ظاهر میشود؛ همان زیردامنه (مثلاً vpn.example.ir) را در آن وارد کنید.
نکته مهم: این دو آدرس جایگزین هم نیستند، بلکه ترکیب میشوند. کادر بالایی (آدرس اصلی Worker/Pages) دستنخورده باقی میماند و دقیقاً مثل قبل کانفیگ میسازد؛ کادر دوم فقط کانفیگهای اضافهای با دامنه شخصی شما اضافه میکند. کانفیگهای JSON و YAML (Xray، Sing-box، Clash) هر دو مجموعه را در یک فایل ترکیبی میسازند و نام آنها با ایموجی 🌐 مشخص میشود؛ کانفیگهای تکی فرمت لینک هم برای هر دو آدرس، جدا از هم و در کنار هم ساخته میشوند، با پسوند -D روی نسخهی دامنه شخصی. چون دامنه شخصی از پورتهای بدون TLS پشتیبانی نمیکند، کانفیگهای آن همیشه فقط با TLS ساخته میشوند؛ برای همین لازم است حداقل یک پورت TLS در بخش «پورتها و Fingerprint» انتخاب شده باشد، وگرنه پنل هنگام ساخت کانفیگ هشدار میدهد.
در مرحله ۲، زیر کادر آدرس Worker/Pages، یک کادر اختیاری با عنوان «دامنه پوششی» وجود دارد. اگر کسی بدون اپلیکیشن پروکسی، مستقیماً آدرس Worker/Pages شما را باز کند، بهصورت پیشفرض یک پاسخ خالی میبیند که میتواند نشانهای از خاص بودن این آدرس باشد. با پر کردن این کادر با آدرس یک سایت واقعی و بیخطر (مثلاً یک سایت خبری)، آن بازدیدکننده بهجای پاسخ خالی، محتوای همان سایت را میبیند.
با فعال کردن Fragment، دادههای TLS handshake به قطعات کوچکتر تقسیم میشوند که تشخیص آن توسط DPI را دشوارتر میکند. این تنظیم روی کانفیگ JSON مخصوص هسته Xray بهطور کامل و دقیق اعمال میشود؛ روی کانفیگ JSON مخصوص Sing-box هم اعمال میشود ولی فقط بهصورت یک کلید روشن/خاموش ساده (بدون کنترل دقیق روی طول یا فاصلهی قطعات، چون Sing-box چنین کنترلی را ارائه نمیدهد). فرمت Clash/Mihomo و لینکهای تکی فرمت URL (vless://، trojan://) اصلاً قابلیت Fragment را پشتیبانی نمیکنند و این تنظیم روی آنها هیچ تاثیری ندارد. Fragment و ECH را نمیتوان همزمان فعال کرد.
تنظیمات Fragment:
- Fragment Packets: نوع دادهای که Fragment میشود. مقدار
tlshelloبرای تقطیع TLS Client Hello توصیه میشود. - Fragment Interval: فاصله زمانی بین ارسال قطعات (میلیثانیه).
- Fragment Length: اندازه هر قطعه (بایت).
- Fragment Max Split: حداکثر تعداد دفعات تقسیم بسته.
در فیلدهای Fragment Interval و Fragment Length میتوانید بهجای یک رنج ساده (مثل 10-20)، چند مقدار متوالی را با کاما از هم جدا کرده و وارد کنید (مثل 5,94,1) تا هر قطعه اندازه یا فاصله متفاوتی داشته باشد؛ آخرین مقدار وارد شده برای قطعات بعدی هم تکرار میشود.
این بخش زیرمجموعهی تنظیمات Fragment است و برای کاربرانی طراحی شده که با اینترنتهای همراه یا ثابت با محدودیت شدید در آپلود مواجهاند. این تنظیمات فقط روی کانفیگ JSON مخصوص هستهی Xray اعمال میشوند و هیچ تاثیری روی کانفیگهای Sing-box و Clash ندارند.
- فعالسازی مرحله دوم قطعهبندی (دو لایه): با فعال کردن این گزینه، خروجی مرحله اول Fragment یکبار دیگر هم قطعهقطعه میشود (معادل قرار گرفتن یک آبجکت fragment دوم در آرایه
finalmask.tcp). فیلدهای Stage 2 Packets، Stage 2 Interval، Stage 2 Length و Stage 2 Max Split دقیقاً مشابه فیلدهای مرحله اول عمل میکنند و از همان قابلیت وارد کردن چند مقدار متوالی با کاما پشتیبانی میکنند. - استفاده از فینگرپرینت خام بهجای فینگرپرینت انتخابی: در صورت فعال بودن، هستهی Xray بهجای تقلید از فینگرپرینت یک مرورگر خاص (مثل Chrome یا Firefox)، یک بسته ClientHello خام و با طول ثابت و قابل پیشبینی میسازد. این گزینه فقط روی خروجی JSON هستهی Xray اعمال میشود؛ فرمت لینک، Sing-box و Clash همچنان از همان فینگرپرینتی استفاده میکنند که در بخش «پورتها و Fingerprint» انتخاب کردهاید.
- Cipher Suites سفارشی: بهصورت اختیاری میتوانید یک فهرست دلخواه از Cipher Suiteها وارد کنید. این مقدار هم فقط در JSON هستهی Xray قرار میگیرد و اگر کادر خالی بماند، هیچ فیلد اضافهای به خروجی افزوده نمیشود.
هدف اصلی این سه گزینه با هم این است که طول واقعی بستهی ClientHello ثابت و قابل پیشبینی بماند تا نقاط شکستن Fragment (چه در مرحله اول و چه در مرحله دوم) همیشه دقیق و درست بیفتند؛ همین موضوع باعث میشود سرعت آپلود در شبکههای با محدودیت شدید بهبود پیدا کند.
ECH یک لایه رمزنگاری اضافه روی TLS handshake است که نام دامنه مقصد (SNI) را از دید سیستمهای DPI پنهان میکند. با فعال کردن ECH، کلید رمزنگاری دامنه Worker یا Pages شما به صورت خودکار از سرور DNS دریافت میشود و Client Hello را قبل از ارسال رمزنگاری میکند.
فعال کردن چکباکس بهتنهایی کافی است. آدرس پیشفرض در کادر DNS (DoH Cloudflare) برای اکثر کاربران مناسب است. اگر DoH Proxy شخصی دارید، آدرس آن را جایگزین کنید تا پایداری بیشتری داشته باشید. ECH روی هر چهار فرمت خروجی (لینک VLESS/Trojan، JSON برای Xray، JSON برای Sing-box و JSON برای Clash) اعمال میشود، فقط در حالت Normal (بدون Fragment)، چرا که Fragment و ECH را نمیتوان همزمان فعال کرد.
- Fake DNS: DNS جعلی برای بهبود سرعت resolve در کلاینت.
- IPv6: فعال یا غیرفعال کردن پشتیبانی از IPv6.
- Allow LAN: امکان استفاده سایر دستگاههای شبکه محلی از پروکسی.
- TCP Fast Open: بهبود سرعت اتصال با کاهش تأخیر handshake.
- Local DNS: سرور DNS برای resolve دامنههای داخلی کشورهای انتخابشده (پیشفرض: 8.8.8.8).
- Remote DNS / DoH: سرور DNS برای ترافیک خارج از کشورهای انتخابشده (پیشفرض: DoH Cloudflare). میتوانید از ابزار DoH Proxy یک سرور DoH اختصاصی روی Cloudflare بسازید.
این بخش شامل دو گروه چکباکس است که در هر سه فرمت خروجی (Xray، Sing-box، Clash) بهصورت هماهنگ اعمال میشوند:
- Bypass rules — ایران، چین، روسیه: مشخص میکند ترافیک و DNS مربوط به کدام کشور(ها) بهصورت مستقیم و بدون عبور از پروکسی مسیریابی شود. حداقل یک کشور باید فعال باشد؛ بهصورت پیشفرض فقط ایران انتخاب شده است. برای دقت بیشتر و جلوگیری از مسمومیت DNS، تشخیص دامنههای داخلی هر کشور در کانفیگ Xray با یک لایه تایید DNS اضافه (expectIPs) همراه است.
- Block rules — Ads، Porn، QUIC، Malware، Phishing، Cryptominers: مشخص میکند کدام دستهها مسدود شوند. QUIC یعنی مسدود شدن ترافیک UDP (شامل HTTP/3) تا مرورگر بهصورت خودکار روی HTTPS معمولی که از تانل عبور میکند سوییچ کند. بهصورت پیشفرض فقط QUIC فعال است؛ بقیه دستهها (Ads، Porn، Malware، Phishing، Cryptominers) در صورت نیاز باید خودتان فعال کنید.
با فعال کردن هر یک از چکباکسهای Malware، Phishing یا Cryptominers، یک پیام هشدار نمایش داده میشود. این سه دسته برخلاف Ads و Porn، در دیتاست پیشفرض («Official») بسیاری از کلاینتها (مثل v2rayNG) اصلاً وجود ندارند و فقط در دیتاستهای تکمیلی مثل Chocolate4U یا Loyalsoldier تعریف شدهاند؛ اگر Geo Assets کلاینت شما روی این دیتاستهای تکمیلی تنظیم و دانلود نشده باشد، فعال کردن این سه چکباکس میتواند باعث عدم اتصال کامل کانفیگ شود (مخصوصاً در کانفیگ JSON هسته Xray، چون این هسته برخلاف Sing-box و Clash امکان دریافت خودکار این فایلها از یک آدرس مشخص در خود کانفیگ را ندارد). برای رفع این مشکل، در تنظیمات کلاینت خود (مثلاً در v2rayNG از مسیر تنظیمات → Geo Assets Provider) گزینه Chocolate4U/Iran-v2ray-rules یا Loyalsoldier را انتخاب و فایلها را دانلود/آپدیت کنید.
برای هر کشور و هر دسته، از پایگاههای GeoIP/GeoSite مخصوص همان فرمت خروجی استفاده میشود.
این بخش، مستقل از Bypass rules (بخش «قوانین مسیریابی» بالاتر)، اجازه میدهد سرویسهایی که به دلیل تحریم IPهای ایرانی را مسدود میکنند (نه به دلیل فیلترینگ داخلی) بهصورت مستقیم و با یک DNS اختصاصی مسیریابی شوند: OpenAI، Google AIs، Anthropic، xAI، Microsoft، Oracle، Docker، Adobe، Epic Games، Intel، AMD، Nvidia، Asus، HP و Lenovo. کادر DNS ضدتحریم بالای این چکباکسها بهصورت پیشفرض روی 178.22.122.100 (Shecan) تنظیم شده و قابل تغییر به هر DNS دلخواه دیگر است. این قابلیت کاملاً سمت کلاینت است و روی کد Worker/Pages تاثیری ندارد.
دقیقاً زیر همین چکباکسها، یک کادر متنی جداگانه با عنوان «دامنههای سفارشی ضدتحریم» هم وجود دارد — برای دامنهها یا سرویسهای تحریمی خاصی که در ۱۵ دستهی بالا نیستند. دامنههایی که اینجا وارد میکنید، برخلاف کادرهای «Custom Bypass Rules» پایینتر، هم مستقیم مسیریابی میشوند و هم برای Resolve شدن از همان DNS ضدتحریم بالا استفاده میکنند. توجه: این کادر فقط دامنه قبول میکند (نه IP یا CIDR)، چون DNS فقط دامنه Resolve میکند و برای IP خام معنی ندارد؛ برای IP/CIDR از کادرهای پایینتر استفاده کنید.
دو کادر متنی مستقل («Custom Bypass Rules» و «Custom Block Rules») برای وارد کردن دامنه، IP یا CIDR دلخواه — یک مورد در هر خط — که در چکباکسهای آماده بالا وجود ندارند. دامنهی وارد شده و همه زیردامنههایش را هم شامل میشود. توجه: این دو کادر فقط مسیر اتصال (مستقیم/از تونل) را تعیین میکنند و DNS ضدتحریم را برای آنها اعمال نمیکنند — برای آن حالت از کادر «دامنههای سفارشی ضدتحریم» در بخش Bypass Sanctions بالا استفاده کنید. این کادرها کاملاً سمت کلاینت عمل میکنند، بدون هیچ تاثیری بر کد Worker/Pages.
این بخش تنظیمات مربوط به نحوهی تست و انتخاب بهترین سرور توسط هستهی Xray را در اختیار شما قرار میدهد و دقیقاً منطبق بر بخش Observatory Settings کلاینت v2rayNG است:
- leastPing Interval: فاصله زمانی بین تستهای سادهی پینگ برای انتخاب سریعترین سرور. مقدار پیشفرض
3m(۳ دقیقه) است. - leastLoad Interval: فاصله زمانی بین دورهای تست پیشرفتهی leastLoad. مقدار پیشفرض
5m(۵ دقیقه) است. - leastLoad Mode: روش ارسال درخواست تست —
HEADیاGET. مقدار پیشفرضHEADاست. - leastLoad Sampling: تعداد نمونهبرداری در هر دور تست leastLoad. مقدار پیشفرض
2است. - leastLoad Timeout: حداکثر زمان انتظار برای هر درخواست تست. مقدار پیشفرض
30s(۳۰ ثانیه) است.
مقادیر زمانی (leastPing Interval، leastLoad Interval، leastLoad Timeout) باید با پسوند m (دقیقه) یا s (ثانیه) وارد شوند — مثلاً 3m یا 30s — و leastLoad Sampling باید یک عدد صحیح مثبت باشد؛ پنل بهصورت خودکار از ورود مقادیر نامعتبر در این کادرها جلوگیری میکند. این تنظیمات فقط روی کانفیگ JSON مخصوص هستهی Xray اعمال میشوند (بهصورت بخشهای observatory و burstObservatory در کانفیگ) و روی کانفیگهای Sing-box و Clash تأثیری ندارند.
نکته فنی: از آنجا که هستهی Xray گزینهی
allowInsecureرا بهطور کامل از تنظیمات TLS حذف کرده است، این گزینه از تمام کانفیگهای JSON مخصوص Xray (و همچنین کانفیگهای Chain Proxy) در پنل TCB حذف شده تا با آخرین نسخههای هستهی Xray و کلاینتهای مبتنی بر آن (مانند v2rayNG) کاملاً سازگار باشد.
با وارد کردن یک کانفیگ با فرمت URL از یک سرور خارجی (مثلاً یک VPS با IP ثابت) در کادر Chain Proxy، کانفیگهای TCB به آن سرور Chain میشوند: ابتدا از طریق Worker یا Pages شما (برای عبور از فیلترینگ) و سپس از طریق آن سرور به اینترنت متصل میشوید — یعنی IP خروجی همیشه ثابت و برابر با IP همان سرور خواهد بود.
فرمتهای پشتیبانیشده در این کادر: VLESS (شبکههای tcp/ws/grpc با امنیت none/tls/reality)، Trojan (tcp/ws/grpc با tls)، Shadowsocks، SOCKS5 و HTTP.
نکات مهم:
- این قابلیت فقط روی کانفیگهای JSON برای Xray، Sing-box و Clash اعمال میشود، نه روی کانفیگهای تکی فرمت لینک، چون Chain به دو گره هماهنگ نیاز دارد که فقط در یک فایل کانفیگ کامل قابل تعریف است.
- وقتی این قابلیت فعال باشد، ایموجی ⛓️ کنار نام کانفیگهای JSON اضافه میشود تا مشخص باشد کدام کانفیگها Chain شدهاند.
- کانفیگی که در این کادر وارد میکنید نباید مربوط به یک Cloudflare Worker یا Pages دیگر باشد، چون هیچکدام آیپی اختصاصی و ثابت ندارند؛ حتماً از کانفیگ یک سرور واقعی (مثل VPS) با آیپی اختصاصی خودش استفاده کنید.
- کانفیگهای SOCKS5 و HTTP حتماً باید شامل نام کاربری و رمز عبور باشند (مثلاً
socks://user:pass@host:port)؛ هسته Xray این دو مورد را برای این دو پروتکل الزامی میداند و بدون آنها کانفیگ Chain کار نخواهد کرد. پنل TCB این موضوع را در همان لحظه ساخت کانفیگ بررسی و در صورت نبود، خطای واضحی نمایش میدهد. - برای غیرفعال کردن این قابلیت، کادر Chain Proxy را خالی بگذارید.
پس از ساخت کانفیگ، نتیجه بهصورت همزمان در چهار فرمت در دسترس قرار میگیرد:
- لینک VLESS (
vless://) — برای وارد کردن مستقیم در v2rayNG و کلاینتهای مشابه. - JSON برای Xray — کانفیگ کامل با حالت least ping برای انتخاب خودکار سریعترین سرور.
- JSON برای Sing-box — کانفیگ کامل برای Sing-box، Hiddify و NekoBox، شامل پشتیبانی از ECH در صورت فعال بودن.
- JSON برای Clash / Mihomo — کانفیگ کامل برای Clash Meta و کلاینتهای مشابه مانند Clash Verge، شامل پشتیبانی از ECH در صورت فعال بودن. این فایل با ساختار JSON نوشته شده اما با پسوند
.yamlدانلود میشود، چرا که JSON زیرمجموعه معتبری از YAML است. توجه داشته باشید که فرمت Clash/Mihomo قابلیت Fragment را پشتیبانی نمیکند.
هر چهار فرمت بر اساس تنظیمات یکسانی (IP ها، پورتها، Fingerprint، Fragment، تنظیمات پیشرفته JSON) ساخته میشوند.
نام هر سه فرمت JSON/YAML (Xray، Sing-box، Clash) بهصورت خودکار و هماهنگ بر اساس حالت کانفیگ تعیین میشود: Normal برای حالت عادی، Fragment در صورت فعال بودن Fragment، یا ECH در صورت فعال بودن ECH. در فیلد اختیاری «نام کانفیگ» (در انتهای تنظیمات مرحله ۳، بعد از Chain Proxy) میتوانید یک نام دلخواه هم وارد کنید؛ این نام هم روی خود کانفیگ (در هر سه فرمت) و هم روی نام فایلهای دانلودی اعمال میشود. اگر Chain Proxy فعال باشد، ایموجی ⛓️ هم به این نام اضافه میشود.
دکمه «🔄 پاکسازی کامل و شروع مجدد» زیر دکمه ساخت کانفیگ قرار دارد و پس از یک پیام تأیید، پنل را دقیقاً به همان حالتی که در اولین بارگذاری صفحه دارد بازمیگرداند: تمام فیلدها به مقدار پیشفرض خود برمیگردند، Token و Password جدیدی تولید میشود، و بخش کانفیگهای ساختهشده محو میشود.
این دکمه صرفاً یک ریست ظاهری نیست؛ محتوای واقعی کانفیگهای تولیدشده (که در پسزمینه صفحه باقی میماند) را هم کامل از حافظه صفحه پاک میکند، کلیپبورد سیستم را (در صورت پشتیبانی مرورگر) خالی میکند، و فیلدهای حساس (Token، Password، آدرس Worker/Pages، IP ها، Chain Proxy، نام کانفیگ) قابلیت Autofill مرورگر را ندارند. علاوه بر این، حتی اگر فراموش کنید روی این دکمه کلیک کنید، به محض بستن یا ترک صفحه توسط شما، همین پاکسازی کامل بهصورت خودکار و بیصدا انجام میشود.
این قابلیتها مخصوصاً برای استفاده از این ابزار روی سیستمهای عمومی یا مشترک (کافینت، محل کار و مشابه آن) طراحی شدهاند تا کاربر بعدی نتواند اطلاعات شما را از پسزمینه صفحه، کلیپبورد یا حافظه Autofill مرورگر استخراج کند. با این حال، برای امنیت کامل توصیه میشود پس از استفاده روی چنین سیستمهایی، تاریخچه و دادههای سایت را هم از تنظیمات مرورگر پاک کنید.
اگر میخواهید این ابزار را بدون نیاز به اینترنت، مستقیماً روی دستگاه خودتان اجرا کنید، مراحل زیر را دنبال کنید.
برای اجرای محلی این پروژه به دو چیز نیاز دارید:
- Git — برای دانلود فایلهای پروژه از GitHub
- Python — برای راهاندازی یک سرور محلی ساده
اگر Git روی سیستم شما نصب نیست، ابتدا آن را نصب کنید:
لینوکس (Ubuntu/Debian):
sudo apt install gitمک (macOS):
brew install gitویندوز: از git-scm.com نصبکننده را دانلود و اجرا کنید.
Termux روی اندروید:
pkg install gitiSH روی iOS:
apk add gitبا دستور زیر، تمام فایلهای پروژه از GitHub روی دستگاه شما دانلود میشود:
git clone https://github.com/4n0nymou3/tcb.gitتوضیح: دستور
git cloneیعنی «یک کپی کامل از این پروژه برایم بساز». بعد از اجرا، یک پوشه با نامtcbدر مسیر جاری شما ایجاد میشود.
cd tcbتوضیح: دستور
cdیعنی «وارد این پوشه شو». باید حتماً این مرحله را انجام دهید، وگرنه مراحل بعدی کار نمیکنند.
Python معمولاً روی لینوکس و مک از قبل نصب است. اگر نصب نبود:
لینوکس (Ubuntu/Debian):
sudo apt install python3مک (macOS):
brew install python3ویندوز: از python.org نصبکننده را دانلود کنید. در حین نصب گزینه Add Python to PATH را حتماً تیک بزنید.
Termux روی اندروید:
pkg install pythoniSH روی iOS:
apk add python3این ابزار یک صفحه وب است و برای اجرای درست به یک سرور نیاز دارد. Python این سرور ساده را برای شما میسازد.
بسته به نسخه Python نصبشده روی سیستم، یکی از دستورات زیر را اجرا کنید:
Python 3 (لینوکس، مک، ویندوز، Termux):
python -m http.server 8080Python 3 روی iSH:
python3 -m http.server 8080Python 2 (نسخه قدیمی):
python -m SimpleHTTPServer 8080توضیح: عدد
8080شماره پورت است. اگر این پورت اشغال بود میتوانید عدد دیگری مثل8000یا9090را جایگزین کنید.
وقتی سرور با موفقیت اجرا شود، چیزی شبیه به این میبینید:
Serving HTTP on 0.0.0.0 port 8080 ...
http://localhost:8080
وقتی کارتان تمام شد، برای خاموش کردن سرور کافیست در همان پنجره ترمینال کلیدهای زیر را بزنید:
Ctrl + C
گاهی پیش میآید که پنجره ترمینال را میبندید، اما سرور همچنان در پسزمینه در حال اجراست و پورت ۸۰۸۰ را اشغال کرده. در این حالت دفعه بعد که بخواهید سرور را دوباره راهاندازی کنید، با خطا مواجه میشوید.
برای حل این مشکل، دو دستور زیر را به ترتیب اجرا کنید:
اول — پیدا کردن برنامهای که پورت ۸۰۸۰ را اشغال کرده:
lsof -i :8080این دستور یک جدول نمایش میدهد. در ستون PID یک عدد میبینید — آن عدد شناسه (ID) برنامهای است که باید بسته شود.
دوم — بستن آن برنامه با شناسهاش:
kill -9 PIDبه جای PID عدد واقعی را از خروجی دستور قبل وارد کنید. مثلاً اگر عدد 2341 بود:
kill -9 2341- Clean IP Scanner — یافتن IP های سالم Cloudflare با Termux روی اندروید
- DoH Proxy — ساخت سرور DNS over HTTPS اختصاصی روی Cloudflare
این پروژه تحت مجوز MIT منتشر شده است — استفاده آزاد
طراحی و توسعه توسط: Anonymous
ارتباط: Telegram
اگر این ابزار برای شما مفید بود:
- ⭐ یک Star به repository بدهید
- آن را با دوستانتان به اشتراک بگذارید