Thanks to visit codestin.com
Credit goes to github.com

Skip to content

vless to sub - Built a subscription link with the ability to automatically add CF clean IPs to VLESS configurations

License

Notifications You must be signed in to change notification settings

NiREvil/Harmony

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

91 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

هارمونی

zread

ساخت لینک ساب با قابلیت افزودن خودکار آی‌پی تمیز کلادفلر و پارامترهای ثابت و متغیر برای کانفیگ‌های VLESS در جهت بهبود وضعیت دسترسی به اینترنت آزاد

متن ارائه شده به عنوان دستورالعمل پیکربندی CloudFlare Workers—Pages ارائه می‌شود.
فرض بر این است که مخاطب از دانش فنی لازم برخوردار است.

دستورالعمل پیکربندی

از هر کد وورکر که تمایل دارید برای ساخت یک کانفیگ Vless استفاده کنید. برای ما دو عنصر کلیدی در این پروسه فقط UUID و hostname کانفیگ هستند.

1. ایجاد کانفیگ Vless

من برای مثال از کد وورکر zizifn نسخه بهینه و ارتقاء یافته‌ی REvil برای ساخت کانفیگ VLESS استفاده کردم:

کد فشرده‌ی وورکر. کد نرمال وورکر

Note

اگر کانفیگ ندارید و تاکنون وورکر نساخته‌اید، توضیحات پیرامون ساخت کانفیگ را بخوانید. در غیر این صورت، این قسمت را نادیده گرفته و آموزش را ادامه دهید.


توضیحات پیرامون ساخت کانفیگ

افرادی که کانفیگ ندارند و تاکنون وورکری نساخته‌اند، می‌توانند به دو روش این کار را انجام دهند:

از طریق Workers (پیشنهادی)

کپی و پست مستقیم (سریع‌ترین روش)

این روش برای تست سریع و بدون نیاز به گیت‌هاب مناسب است.

  1. ورود به کلادفلر: وارد داشبورد Cloudflare شوید.

  2. ساخت ورکر: در نوار ابزار بالای سایت روی "Add" یا در موبایل روی آیکون "+" کلیک کرده سپس "workers" را انتخاب کنید.

  3. روی دکمه Get Start مقابل "Start with Hello World!" کلیک کرده و سپس یک نام دلخواه برای ورکر خود انتخاب کنید. سپس Deploy را بزنید.

  4. کپی کد: پس از اتمام مرحله ساخت وورکر روی گزینه Edit code کلیک کرده و سپس محتویات یکی از فایل‌های زیر را کپی کنید. (هیو تفاوتی ندارن)

  1. پس از عمل کپی؛ قطعه کد پیش‌فرض در صفحه ویرایش‌گر را حذف و کد خود را به‌طور کامل در آن جایگذاری کنید و سپس برای اعمال تغییرات انجام شده، از گوشه سمت راست روی گزینه آبی رنگ Deploy کلیک کنید.

از طریق Pages

این روش موقتا توصیه نمی‌شود به دلیل فیلتر شدن دامنه‌های pages.dev در کشور ایران، ترجیحا از روش worker پیش برید هنوز دامنه‌ی workers.dev عالی کار می‌کنه.

به‌ هر حال
این روش به شما اجازه می‌دهد از فایل کد پروژه را برای دپلوی در Cloudflare Pages (بدون اتصال به اکانت گیت‌هاب) استفاده کنید.

  1. فایل _worker.js— را از همین مخزن دانلود کنید.

  2. در کلادفلر، به بخش Pages بروید.

  3. در تب Pages روی دکمه Get Start مقابلDrag and drop your files کلیک کنید.

  4. برای پروژه خود یک نام انتخاب کرده و سپس فایل _worker.js را آپلود کنید تا پروسه دپلوی آغاز شود.


از طریق Fork مخزن

ساخت worker یا pages از طریق فورک و کلون کردن این مخزن و اتصال آن به کلادفلر

این ساده‌ترین روش برای مدیریت و بروزرسانی‌های آینده است.

  1. کپی کردن پروژه: ابتدا این مخزن (Repository) را در اکانت گیت‌هاب خود Fork کنید.

  2. ورود به کلادفلر: وارد داشبورد Cloudflare خود شوید.

  3. ساخت پروژه: در نوار ابزار بالای سایت روی "Add" یا در موبایل روی آیکون "+" کلیک کرده سپس "Pages" را انتخاب کنید. همچنین می‌توان از منوی سمت چپ از بخش Build و سپس سپس Compute & Ai به بخش worker & Pages دست یافت.

  4. در صفحه جدید گزینه "Import an existing Git repository" را انتخاب کنید.

  5. اول اگر به اکانت خود متصل نبودید "Connect to Git" را بزنید.

  6. انتخاب مخزن: مخزن فورک شده خود را انتخاب کنید و Begin setup را بزنید.

نکته

می‌تونید دقیقا عین همین روش رو برای وورکر پیاده کنید، چون الان دامین pages.dev فیلتر شده پس ساختن pages بدون داشتن دامنه‌ی شخصی بی‌فایده‌است، توصیه می‌کنم فورک بزنید مخزن رو، از داخل کلادفلر ساخت وورکر رو انتخاب کنید و سپس گزینه اتصال به اکانت گیت‌هاب رو انتخاب کرده و روی اسم مخزن فورک شده داخل لیست کلیک کنید و ...


تنظیمات دپلوی

Project name: یک نام دلخواه برای پروژه‌تان انتخاب کنید.

Production branch: شاخه main را انتخاب کنید.

Framework preset: گزینه None را انتخاب کنید.

ذخیره و دپلوی: روی Save and Deploy کلیک کنید. پروژه شما در چند ثانیه دپلوی خواهد شد!

همچنین می‌توان از دکمه زیر برای دپلوی مستقیم pages استفاده کرد. (فقط اسم انتخاب می‌کنید)

Deploy to Cloudflare Workers



تنظیمات و متغیرها

بعد از راه‌اندازی، باید متغیرهای محیطی (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


2. شخصی‌سازی اسکریپت

دانلود اسکریپت

ابتدا اسکریپت هارمونی را کپی یا دانلود کنید. 1
Harmony.js

این اسکریپت را می‌توان توسط 2 Notepad++ در ویندوز یا ابزارهای مدیریت فایل مانند 3 MT Manager در اندروید و یا در داخل ویرایش‌گر گیت‌هاب و ... ویرایش کرد. در صورت دسترسی نداشتن به هیچ‌کدام، ابتدا وورکر جدید کلادفلر ایجاد کرده و این کد را داخل آن جایگذاری و سپس اقدام به ویرایش آن کنید.

ویرایش UUID

در ابتدای کد، UUID پیش‌فرض در لاین 32 را با UUID خود (از داخل یکی از کانفیگ‌هایی که از قبل یا تازه ساختید) جایگزین کنید.

ویرایش HostName

در این مرحله از ویرایش کد، باید ادرس هایت کانفیگ خود را با hostname پیش‌فرض را کد در سه بخش مختلف جایگزین کنید.

  • دسته‌ی اول کانفیگ‌های TLS

    • Host: line 55
    • SNI: line 56
  • دسته دوم کانفیگ‌های TCP

    • Host: line 69
    • SNI: line 70
  • دسته سوم کانفیگ‌های اضطراری

    • Host: line 83
    • SNI: line 84

نکته
در کانفیگ‌هایی که با وورکر یا پیج به میزبانی کلادفلر ساخته می‌شوند پارامتر SNI همان Hostname می‌باشد.

ذخیره کد

در نهایت کد ویرایش شده را ذخیره کنید.

3. ساخت Worker

  1. وارد داشبورد حساب Cloudflare شوید.

  2. در نوار ابزار بالای سایت روی آیکون "Add" (در موبایل آیکون "+") کلیک کرده سپس "Workers" را انتخاب کنید.

  3. روی گزینه Get Start در مقابل "Start with Hello World!" کلیک کرده و سپس یک نام دلخواه برای ورکر خود انتخاب کنید. سپس Deploy را بزنید.

  4. پس از اتمام ساخت وورکر روی Edit code کلیک کنید.

  5. قطعه کد پیش‌فرض در صفحه ویرایش‌گر را حذف و کد خود را به‌طور کامل در آن جایگذاری کنید و سپس برای اعمال تغییرات انجام شده، از گوشه سمت راست روی گزینه آبی رنگ Deploy کلیک کنید.

Tip

برای جلوگیری از بهم ریختگی ساختار کد یا جایگزاری ناقص؛ لطفاً از کلیدهای ترکیبی ctrl+c برای کپی و ctrl+v برای جایگذاری در دسکتاپ استفاده کنید. در موبایل می‌توان فایل js را درون وورکر آپلود کرد. و یا از Hackers keyboard کمک گرفت.

5. دریافت لینک اشتراک

پس از deploy شدن worker، در همان محیط ویرایشگر با کلیک بر روی گزینه Visit یک تب جدید باز شده چ کانفیگ‌های خود را در فرمت base64 مشاهده کنید.

از بخش آدرس بار مرورگر لینک آدرس را کپی کرده و از آن به عنوان لینک ساب در کلاینت دلخواه خود استفاده کنید. در تمام کلاینت‌های با هسته سینگ‌باکس و Xray می‌توان آنرا وارد کرد.

این URL به عنوان لینک اشتراک شما عمل خواهد کرد.

6. به‌روزرسانی لینک اشتراک

بر روی دکمه به‌روزرسانی اشتراک - Update Subscriptions داخل کلاینت کلیک کنید.

با هربار انجام این عمل، 30 عدد کانفیگ جدید با IP های تمیز به کلاینت شما اضافه خواهد شد.

Caution

برای شخصی‌سازی بیشتر، لطفاً توضیحات زیر را بخوانید.

توضیحات غیر ضروری

قبل‌تر گفتم واسه‌ی اینکه بتونید شخصاً از این اسکریپت استفاده کنید و برای کانفیگ‌های خودتون لینک ساب درست کنید، باید UUID و Hostname خودتون‌رو در لاین‌های ذکر شده در ابتدای کد جایگذاری کنید. حالا می‌خواهیم یکم شخصی‌سازی کنیم طبق نیازمون.

1. CF IPs

ما سه تا مخزن آی‌پی داریم که از هر کدوم ده تا آی‌پی fetch می‌کنه و برامون داخل کانفیگ‌ها قرار می‌ده، جمعاً سی تا کانفیگ در خروجی داریم.

  • مخزن اول

    در واقع آی‌پی‌هایی هستند که خودم داخل کد نوشتم، از لاین 29 شروع می‌شوند تا لاین 644 آی‌پی از نوع ورژن 6 هستند. از لاین 647 دامین‌های پشت کلادفلر رو قرار دادم اونایی که خوب کار می‌کردند و پشت سر اون‌ها از لاین 689 چندتا IPv4 عادی کلادفلر نوشتم تا لاین 881. هرکدوم از این دو نوع آی‌پی و دامین‌هارو که دلتون خواست می‌تونید تغییر بدید. هیچ مشکل و محدودیتی برای این کار نداریم. می‌تونید تعداد رو کم کنید یا چند سطر بیشتر یا کلاً حذف کنید. آی‌پی‌های ورژن 6 نیاز به تغییر ندارند، دو سال اخیر همگی به عالی تربن شکل فعال بودند. اگر قصد تغییر داشتید، پیشنهاد می‌کنم فقط آی‌پی‌های ورژن 4 و دامین‌ها رو تغییر بدید.

  • مخزن دوم

این مخزن آی‌پی اطلاعاتش رو از گیت‌هاب وحید فرید 4 می‌گیره، آخرین بار در تاریخ 2024/2/10 بروزرسانی شده. اینم می‌توانید باز دوباره تغییر بدید به مخزن دلخواه خودتون، از لاین 892

  • مخزن سوم

    آی‌پی‌های ما اطلاعاتش رو از گیت‌هاب NiREvil 5 می‌گیره، اطلاعات اون در تاریخ 2024/11/13 بروزرسانی شده. این مخزن نیز از لاین 893 کد قابل تغییر هست.

می‌دونید دیگه کانال ما لینک ساب ثابت داشته همیشه به اسم آرکین و هارمونی، در واقع من از همین ساب استفاده کرده بودم برای ساخت اونها فقط یه تغییر جزئی داشتن که بجای مخزن آی‌پی وحید فرید یا ی ب خ دوباره آدرس مخزن خودم رو استفاده کرده بودم، یعنی لاین 892 و 893 هردو آدرس مخزن خودم بودن. چون واسه وحید فرید یکسال پیش بروزرسانی شده و اخیرا دیدم که کلا آرشیو شده پس آی‌پی‌های داخلش می‌شه گفت تعریفی ندارن و اکثرا از کار افتادن، مخزن ی ب خ هم که کلا توسط خودش حذف شد، اگر مخزن سالم و جدید سراغ داشتید که چه عالی، اکر نه نداشتید مث من تو هر دو آدرس مخزن خودمون رو قرار بدید.

2. Remark

کانفیگ‌ها ده تا ده تا نام‌گذاری می‌شوند. از لاین 20 می‌تونید نام کانفیگ‌هایی که با آی‌پی‌های داخل کد ساخته شدند رو تعیین کنید، پیش‌فرض هارمونی-1 هستن، و از لاین 46 کانفیگ‌های ساخته شده با آی‌پی‌های مخزن وحید و از لاین 75 ساخته شده‌ها با مخزن خودمون رو می‌تونید Remark کنید.

3. alpn type

از لاین‌های 927 و 952 و 981 میشه نوع alpn را تغییر داد برای هر دسته. من پیش‌فرض همه را http/1.1 گذاشتم چون ما از کانفیگ‌ها بیشتر داخل نکوباکس استفاده می‌کردیم و در نکوباکس فقط این نوع alpn جواب بود. ولی اگه استفاده‌ی شما در کلاینت v2rayNG و v2rayN یا نیکا و مهسا ان‌جی و بعضی کلاینت‌های دیگه باشه می‌تونید از انواع دیگه alpn ها مثل h3 یا h2,http/1.1 استفاده کنید.

4. Path & Max early data

از لاین 17 مقدار path قابل تغییره، هر اسمی، هر کلمه‌ای، جمله‌ای که خواستی بدون فاصله با حروف بزرگ و کوچیک می‌توانید قرار بدید، از یک الی 64 کاراکتر ممکنه.

لاین 20 ام از کد Max Early Data توضیحش یکم سخته فقط اینو بگم که بذارید همین 2560 بمونه، می‌توانید به 2048 هم تغییر بدید.

5. Fingerprints

لاین 24 مربوط به fingerprints هستش، من اونایی که خوب جواب می‌دادن رو لیست کردم، بازم اگه ترجیح شما چیز دیگه‌ای بود مهمون من باشید، تغییر بدید خودتون نترسید.

6. Ports

لاین 26 از کد، پورت پیش‌فرض تمام کانفیگ‌ها پورت 443 بود تا اینکه من دلم خواست پورت دیگه هم داشته باشن کانفیگ‌های داخل لینک ساب هارمونی، واسه همین ترجیح دادم پورت دسته اول از کانفیگ‌هارو پورتی غیر از 443 بذارم، من 8443 و 2053 تعیین کردم، شما می‌تونید هرکدوم دیگه از پورت‌ها44رو تعیین کنید نسبت به نوع کانفیگ خودتون، اگه کانفیگ از نوع pages باشه فقط میشه از پورت‌های HTTPS یا همون TLS استفاده کنید ولی اگه کانفیگ از نوع workers باشه می‌تونید هم از پورت‌های TLS و هم غیر TLS استفاده کنید.

Tip

TLS: 443/8443/2053/2083/2087/2096
NoTLS: 80/8080/8880/2052/2082/2095

7. uniqueIPs.size >= 10

سه تا مخزن آی‌پی داشتیم که از هرکدوم ده تا کانفیگ می‌ساخت و بهمون تحویل می‌داد در مجموع سی تا کانفیگ، کی تعیین کرد سی تارو؟ خودمون :) از لاین 912 تعداد کانفیگ‌های دسته اول و از لاین 941 تعداد دسته دوممون و از لاین 970 تعداد کانفیگ‌های دسته سوم ما تعیین می‌شن، می‌توانید عدد 10 را به دلخواه کم یا زیاد کنید، حداقل 3 و حداکثر ∞

8. Merging

و آخرین نکته، گفتم که سه تا دسته 10 تایی کانفیگ داریم تو خروجی این کد، می‌توانید واسه هر دسته یه کانفیگ متفاوت قرار بدید، مثلا واسه دسته اول Host و SNI از کانفیگی که با کد BPB ساختید واسه دسته دوم هاست و sni کانفیگی که با کد فرضا Edtunnel ساختید رو قرار بدید و واسه دسته سوم هر هاست‌نیم و sni کانفیگ دیگه ای رو، ولی به یک شرط، به شرطی که واسه همه‌ی این سه تا از یک UUID استفاده کرده باشید، UUID همشون باید مشترک باشه و همونم تو لاین 12 کد قرار داشته باشه.

کنجکاو باشید. 🩶🪐

Footnotes

  1. Harmony.js

  2. Get Notepad++

  3. Get MT Manager

  4. REvil cleanIPs

  5. github.com NiREvil

About

vless to sub - Built a subscription link with the ability to automatically add CF clean IPs to VLESS configurations

Topics

Resources

License

Stars

Watchers

Forks

Contributors 7