ساخت لینک ساب با قابلیت افزودن خودکار آیپی تمیز کلادفلر و پارامترهای ثابت و متغیر برای کانفیگهای VLESS در جهت بهبود وضعیت دسترسی به اینترنت آزاد
متن ارائه شده به عنوان دستورالعمل پیکربندی
CloudFlare Workers—Pagesارائه میشود.
فرض بر این است که مخاطب از دانش فنی لازم برخوردار است.
از هر کد وورکر که تمایل دارید برای ساخت یک کانفیگ Vless استفاده کنید. برای ما دو عنصر کلیدی در این پروسه فقط UUID و hostname کانفیگ هستند.
من برای مثال از کد وورکر zizifn نسخه بهینه و ارتقاء یافتهی REvil برای ساخت کانفیگ VLESS استفاده کردم:
کد فشردهی وورکر. کد نرمال وورکر
Note
اگر کانفیگ ندارید و تاکنون وورکر نساختهاید، توضیحات پیرامون ساخت کانفیگ را بخوانید. در غیر این صورت، این قسمت را نادیده گرفته و آموزش را ادامه دهید.
توضیحات پیرامون ساخت کانفیگ
افرادی که کانفیگ ندارند و تاکنون وورکری نساختهاند، میتوانند به دو روش این کار را انجام دهند:
کپی و پست مستقیم (سریعترین روش)
این روش برای تست سریع و بدون نیاز به گیتهاب مناسب است.
-
ورود به کلادفلر: وارد داشبورد Cloudflare شوید.
-
ساخت ورکر: در نوار ابزار بالای سایت روی "Add" یا در موبایل روی آیکون "+" کلیک کرده سپس "workers" را انتخاب کنید.
-
روی دکمه Get Start مقابل "Start with Hello World!" کلیک کرده و سپس یک نام دلخواه برای ورکر خود انتخاب کنید. سپس Deploy را بزنید.
-
کپی کد: پس از اتمام مرحله ساخت وورکر روی گزینه Edit code کلیک کرده و سپس محتویات یکی از فایلهای زیر را کپی کنید. (هیو تفاوتی ندارن)
- پس از عمل کپی؛ قطعه کد پیشفرض در صفحه ویرایشگر را حذف و کد خود را بهطور کامل در آن جایگذاری کنید و سپس برای اعمال تغییرات انجام شده، از گوشه سمت راست روی گزینه آبی رنگ
Deployکلیک کنید.
این روش موقتا توصیه نمیشود به دلیل فیلتر شدن دامنههای
pages.devدر کشور ایران، ترجیحا از روش worker پیش برید هنوز دامنهیworkers.devعالی کار میکنه.
به هر حال
این روش به شما اجازه میدهد از فایل کد پروژه را برای دپلوی در Cloudflare Pages (بدون اتصال به اکانت گیتهاب) استفاده کنید.
-
فایل _worker.js— را از همین مخزن دانلود کنید.
-
در کلادفلر، به بخش Pages بروید.
-
در تب Pages روی دکمه Get Start مقابلDrag and drop your files کلیک کنید.
-
برای پروژه خود یک نام انتخاب کرده و سپس فایل _worker.js را آپلود کنید تا پروسه دپلوی آغاز شود.
ساخت worker یا pages از طریق فورک و کلون کردن این مخزن و اتصال آن به کلادفلر
این سادهترین روش برای مدیریت و بروزرسانیهای آینده است.
-
کپی کردن پروژه: ابتدا این مخزن (Repository) را در اکانت گیتهاب خود Fork کنید.
-
ورود به کلادفلر: وارد داشبورد Cloudflare خود شوید.
-
ساخت پروژه: در نوار ابزار بالای سایت روی "Add" یا در موبایل روی آیکون "+" کلیک کرده سپس "Pages" را انتخاب کنید. همچنین میتوان از منوی سمت چپ از بخش Build و سپس سپس Compute & Ai به بخش worker & Pages دست یافت.
-
در صفحه جدید گزینه "Import an existing Git repository" را انتخاب کنید.
-
اول اگر به اکانت خود متصل نبودید "Connect to Git" را بزنید.
-
انتخاب مخزن: مخزن فورک شده خود را انتخاب کنید و Begin setup را بزنید.
میتونید دقیقا عین همین روش رو برای وورکر پیاده کنید، چون الان دامین pages.dev فیلتر شده پس ساختن pages بدون داشتن دامنهی شخصی بیفایدهاست، توصیه میکنم فورک بزنید مخزن رو، از داخل کلادفلر ساخت وورکر رو انتخاب کنید و سپس گزینه اتصال به اکانت گیتهاب رو انتخاب کرده و روی اسم مخزن فورک شده داخل لیست کلیک کنید و ...
Project name: یک نام دلخواه برای پروژهتان انتخاب کنید.
Production branch: شاخه main را انتخاب کنید.
Framework preset: گزینه None را انتخاب کنید.
ذخیره و دپلوی: روی Save and Deploy کلیک کنید. پروژه شما در چند ثانیه دپلوی خواهد شد!
همچنین میتوان از دکمه زیر برای دپلوی مستقیم pages استفاده کرد. (فقط اسم انتخاب میکنید)
بعد از راهاندازی، باید متغیرهای محیطی (Environment Variables) را برای شخصیسازی کانفیگهای خود تنظیم کنید. این متغیرها را در داشبورد پروژه خود در کلادفلر، در مسیر زیر اضافه کنید:
worker & Pages > Settings > Variables and Secrets > Add variable.
| متغیر | توضیحات | الزامی - اختیاری | مقدار پیشفرض* |
|---|---|---|---|
| UUID | شناسه کاربری منحصر به فرد شما. این متغیر برای امنیت ضروری است. | الزامی | برای ساخت، به UUID Generator مراجعه کنید. |
| PROXYIP | یک IP یا دامنه برای fronting. این آدرس به عنوان آیپی جایگزین موقع بازدید از وبسایت و سرویسهای پشت کلادفلر مانند speedtest و whoer استفاده میشود. از مخزن پروکسی آیپی ما پیشنهادی یک مورد را انتخاب کنید. | اختیاری | مقدار پیشفرض: nima.nscl.ir هفتاد پروکسی آمریکا از بهترین ارائه دهندهها |
| SCAMALYTICS_USERNAME | نام کاربری سرویس Scamalytics برای تحلیل IP. | اختیاری | برای مصرف شخصی نیاز نیست. در صورت استفاده عمومی و فورکهای زیاد، از سایت Scamalytics درخواست API شخصی بدهید. در عرض ۲۴ ساعت اطلاعات سرویس ایمیل میشود. |
| SCAMALYTICS_API_KEY | کلید API سرویس Scamalytics. | اختیاری | همراه با نام کاربری از سایت Scamalytics دریافت میشود. |
| SCAMALYTICS_BASEURL | اندپوینت سرویس Scamalytics. | اختیاری | همراه با نام کاربری و api برای شما ایمیل میشود. |
دسترسی به پنل مدیریت
پس اتمام پروسه دپلوی؛ کافیست UUID خود را به انتهای آدرس ورکر یا پیج خود اضافه کنید:
https://<Your-Worker-URL>/<Your-UUID>
برای مثال:
https://index.forexample.workers.dev/2210f3f0-513d-4d17-9ce2-c094d2f54580
ابتدا اسکریپت هارمونی را کپی یا دانلود کنید. 1
Harmony.js
این اسکریپت را میتوان توسط 2 Notepad++ در ویندوز یا ابزارهای مدیریت فایل مانند 3 MT Manager در اندروید و یا در داخل ویرایشگر گیتهاب و ... ویرایش کرد. در صورت دسترسی نداشتن به هیچکدام، ابتدا وورکر جدید کلادفلر ایجاد کرده و این کد را داخل آن جایگذاری و سپس اقدام به ویرایش آن کنید.
در ابتدای کد، UUID پیشفرض در لاین 32 را با UUID خود (از داخل یکی از کانفیگهایی که از قبل یا تازه ساختید) جایگزین کنید.
در این مرحله از ویرایش کد، باید ادرس هایت کانفیگ خود را با hostname پیشفرض را کد در سه بخش مختلف جایگزین کنید.
-
دستهی اول کانفیگهای TLS
- Host: line 55
- SNI: line 56
-
دسته دوم کانفیگهای TCP
- Host: line 69
- SNI: line 70
-
دسته سوم کانفیگهای اضطراری
- Host: line 83
- SNI: line 84
نکته
در کانفیگهایی که با وورکر یا پیج به میزبانی کلادفلر ساخته میشوند پارامتر SNI همان Hostname میباشد.
در نهایت کد ویرایش شده را ذخیره کنید.
-
وارد داشبورد حساب Cloudflare شوید.
-
در نوار ابزار بالای سایت روی آیکون "Add" (در موبایل آیکون "+") کلیک کرده سپس "Workers" را انتخاب کنید.
-
روی گزینه Get Start در مقابل "Start with Hello World!" کلیک کرده و سپس یک نام دلخواه برای ورکر خود انتخاب کنید. سپس Deploy را بزنید.
-
پس از اتمام ساخت وورکر روی Edit code کلیک کنید.
-
قطعه کد پیشفرض در صفحه ویرایشگر را حذف و کد خود را بهطور کامل در آن جایگذاری کنید و سپس برای اعمال تغییرات انجام شده، از گوشه سمت راست روی گزینه آبی رنگ
Deployکلیک کنید.
Tip
برای جلوگیری از بهم ریختگی ساختار کد یا جایگزاری ناقص؛ لطفاً از کلیدهای ترکیبی ctrl+c برای کپی و ctrl+v برای جایگذاری در دسکتاپ استفاده کنید. در موبایل میتوان فایل js را درون وورکر آپلود کرد. و یا از Hackers keyboard کمک گرفت.
پس از deploy شدن worker، در همان محیط ویرایشگر با کلیک بر روی گزینه Visit یک تب جدید باز شده چ کانفیگهای خود را در فرمت base64 مشاهده کنید.
از بخش آدرس بار مرورگر لینک آدرس را کپی کرده و از آن به عنوان لینک ساب در کلاینت دلخواه خود استفاده کنید. در تمام کلاینتهای با هسته سینگباکس و Xray میتوان آنرا وارد کرد.
این URL به عنوان لینک اشتراک شما عمل خواهد کرد.
بر روی دکمه بهروزرسانی اشتراک - Update Subscriptions داخل کلاینت کلیک کنید.
با هربار انجام این عمل، 30 عدد کانفیگ جدید با IP های تمیز به کلاینت شما اضافه خواهد شد.
Caution
برای شخصیسازی بیشتر، لطفاً توضیحات زیر را بخوانید.
قبلتر گفتم واسهی اینکه بتونیم شخصا از این اسکریپت استفاده کنیم، باید UUID و Hostname خودمونرو در لاینهای ذکر شده در ابتدای کد جایگذاری کنیم. حالا میخوام یکم بیشتر شخصیسازی کنیم بر حسب نیاز.
ما سه تا مخزن آیپی داریم که از هر کدوم ده تا آیپی fetch میکنه و برامون داخل کانفیگها قرار میده، جمعاً سی تا کانفیگ در خروجی داریم.
که داخل کد در لاین 932 با اسم dinamic1 نوشته شده درواقع آیپیتمیزهای کلادفلری هستن که اسکنر آیپی داخل گیتهاب خودمون هر سه چهارساعت یکبار اسکن و لیست میکنه، هارمونیهم میاد از همونجا یه مشت IPv4/IPv6 برمیداره داخل کانفیگها قرار میده هروقت که شما توی کلاینت روی گزینه آپدیت کلیک میکنید.
مخزن دوم زیر مخزن اول یعنی در لاین 933 نوشته شده با اسم dinamic2 که اینهم باز دوباره واسه خودمونه، یه Api ساده برای فچ کردن آیپی کلادفلر از چندجای مختلف هستش.
در واقع آیپیهایی هستن که داخل کد hardcode شدن، با اسم staticIPs و نقش fallback رو دارن واسه مواقعی که اینترنتمون اونقدرا خوب نیست که بتونه از مخزن اول و دوم آیپی بگیره، از لاین 102 شروع میشن تا لاین 718 آیپی ورژن 6 هستن.
از ابتدای لاین 720 یه سری دامنههای پشت کلادفلر رو قرار دادم اونایی که عموما واسه همه خوب کار میکردن و پشت سر اوناهم یه چندتا آیپی ورژن 4 عادی نوشتم تااااا لاین 926.
تمام آیپی و دامنههای این مخزن و دوتای قبلی رو میتونید به دلخواه خودتون عوض کنید ولی پیشنهاد نمیکنم که مخزن یک و دو رو تغییر بدید، چون قطعا بهتر از اینا پیدا نمیکنید هیچکجا.
کانفیگها ده تا ده تا نامگذاری میشن، از لاین 54 میتونید نام کانفیگهایی که با آیپیهای dinamic1 ساخته شدن رو تعیین کنید، پیشفرض هارمونی-1 هستن، و از لاین 68 کانفیگهای ساخته شده با آیپیهای dinamic2 و از لاین 82 اسم اونایی که با آیپیهای استاتیک داخل همین کد ساخته شدن رو میتونید Remark کنید.
از لاینهای 61 و 75 و 89 میشه نوع alpn رو تغییر داد برای هر دسته. من پیشفرض همه رو http/1.1 قرار دادم چون ما از کانفیگهای نوع vless-ws-tls داخل هارمونی اسنفاده میکنیم و این پروتکل وبسوکت تنها همین رو ساپورت میکنه، استفاده کرردن از h2 و h3 عملا بیفایدهاست.
از لاین 57 و 71 و [85] مقدار path قابل تغییره، هر اسمی، هر کلمهای، جملهای که خواستی بدون فاصله با حروف بزرگ و کوچیک میتونید قرار بدید، از یک الی 64 کاراکتر ممکنه. من پیشفرض تعیین کردم کاراکترهای رندوم ایجاد بشه.
لاین 37 از کد Max Early Data headers & Name توضیحش یکم سخته فقط اینو بگم که بذارید همین 2560 بمونه، میتونید به هر عددب نزدیک به ابن هم تغییرش بدید ولی بهتره که نکنید.
لاینهای 62 و 76 و 90 مربوط به fingerprints هستن، موقتا فقط chrome روی کانفیگهای وورکری کار میکنه واسه همینم به این یدونه محدودش کردم، در آینده که این مشکل برطرف شده بود لیست کاملتری از فینگرپرینتهای دلخواهتون بنویسید مثل:
fp: ["chrome", "randomized", "firefox", "safari", "edge", "example"],لاینهای 60 و 74 و 88 از کد، پورتهای پیشفرض کلادفلر رو مشخص میکنن، شما میتونید هرکدوم از پورتهای دیگه رو تعیین کنید نسبت به نوع کانفیگ خودتون، اگه کانفیگتون ساخته شده با pages باشه فقط میشه از پورتهای HTTPS یا همون TLS استفاده کنید ولی اگه کانفیگتون ساخته شده با workers باشه میتونید هم از پورتهای TLS و هم TCP استفاده کنید.
Tip
TLS:.
ports: ["443", "8443", "2053", "2083", "2087", "2096"],TCP:
ports: ["80", "8080", "8880", "2052", "2082", "2086", "2095"],سه تا مخزن آیپی داشتیم که از هرکدوم ده تا کانفیگ میساخت و بهمون تحویل میداد در مجموع سی تا کانفیگ، کی تعیین کرد سی تارو؟ خودمون :) از لاین 35 تعداد کانفیگهای ساخته شده در هر دسته رو میشه تعیین کرد،
و آخرین نکته، گفتم که سه تا دسته 10 تایی کانفیگ داریم تو خروجی این کد، میتونمید واسه هر دسته یه کانفیگ متفاوت قرار بدید، مثلا واسه دسته اول Host و SNI از کانفیگی که با کد BPB ساختید واسه دسته دوم هاست و sni کانفیگی که با کد فرضا Edtunnel ساختید رو قرار بدید و واسه دسته سوم هر هاستنیم و sni کانفیگ دیگه ای رو، ولی به یک شرط، به شرطی که واسه همهی این سه تا از یک UUID استفاده کرده باشید، UUID همشون باید مشترک باشه و همونم تو لاین 32 کد قرار داشته باشه.
کنجکاو باشید. 🩶🪐