https://github.com/nirevil/harmony
vless to sub - Built a subscription link with the ability to automatically add CF clean IPs to VLESS configurations
https://github.com/nirevil/harmony
cloudflare-workers subscription-links subworkers vless-ws-tls
Last synced: about 2 months ago
JSON representation
vless to sub - Built a subscription link with the ability to automatically add CF clean IPs to VLESS configurations
- Host: GitHub
- URL: https://github.com/nirevil/harmony
- Owner: NiREvil
- License: mit
- Created: 2024-04-29T13:19:25.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-02T07:28:39.000Z (4 months ago)
- Last Synced: 2025-04-12T11:18:49.584Z (about 2 months ago)
- Topics: cloudflare-workers, subscription-links, subworkers, vless-ws-tls
- Language: JavaScript
- Homepage:
- Size: 380 KB
- Stars: 32
- Watchers: 5
- Forks: 22
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# هارمونی
**ساخت لینک ساب با قابلیت افزودن خودکار آیپی تمیز کلادفلر برای کانفیگهای VLESS**
> **متن ارائه شده به عنوان دستورالعمل پیکربندی `CloudFlare Workers` ارائه میشود. فرض بر این است که مخاطب از دانش فنی لازم برخوردار است.**
## دستورالعمل پیکربندی
از هر کد وورکر که تمایل دارید برای ساخت یک کانفیگ `Vless` استفاده کنید. برای ما دو عنصر کلیدی در این پروسه فقط `UUID` و `hostname` کانفیگ هستند.
### 1. ایجاد کانفیگ Vless
من برای مثال از این وورکر ساده و قدیمی برای ساخت کانفیگ VLESS استفاده کردم [کد وورکر](_worker.js).
> [!NOTE]
> اگر کانفیگ ندارید و تاکنون وورکر نساختهاید، توضیحات پیرامون ساخت کانفیگ را بخوانید. در غیر این صورت، این قسمت را نادیده گرفته و آموزش را ادامه دهید.توضیحات پیرامون ساخت کانفیگ
افرادی که کانفیگ ندارند و تاکنون وورکری نساختهاند، میتوانند به دو روش این کار را انجام دهند:
**از طریق Cloudflare Workers**
میتوانید از [فایل worker.js](_worker.js) برای ساخت وورکر و ایجاد کانفیگ استفاده کنید.
---
**از طریق Cloudflare Pages**
> این روش توصیه میشود چون روش بالا به دلیل سختگیریهای اخیر کلادفلر ممکن است هنگام ساخت وورکر با خطا روبرو شوید.
برای ساخت کانفیگ از طریق Pages، کافی است این مخزن را فورک کرده و از داخل اکانت کلادفلر خود یک پیج جدید ایجاد کنید. حتماً از این وبسایت [^1] یک آیدی جدید گرفته و موقع ساخت پیج در قسمت `environment variables` یک متغیر جدید ایجاد کرده و نام آن را `UUID` و مقدارش را برابر با آیدی که از سایت گرفتید قرار دهید.مراحل ساخت پیج را ادامه دهید تا انتها. در نهایت، پس از اتمام ساخت، از تب Deployment روی لینک پیج خود که در مقابل Domains نوشته شده کلیک کنید. بعد در نوار آدرس مرورگر یک `/` اضافه کرده و در ادامه UUID خود را قرار دهید، به این شکل: `https://xxxx.pages.dev/yourUUID`.
در این مرحله در صفحهای که باز میشود، میتوانید کانفیگ Vless آماده خود را کپی و داخل کلاینت دلخواه وارد کنید. ولی ما اینجا فقط Hostname و UUID را کپی میکنیم و میرویم برای ادامه آموزش ساخت لینک ساب.
### 2. ویرایش اسکریپت
- **2.1 دانلود اسکریپت**
ابتدا اسکریپت هارمونی را کپی یا دانلود کنید. [^2]
این اسکریپت را میتوان توسط [^3] Notepad++ در ویندوز یا ابزارهای مدیریت فایل مانند [^4] MT Manager در اندروید و یا در داخل ویرایشگر گیتهاب و ... ویرایش کرد. در صورت دسترسی نداشتن به هیچکدام، ابتدا وورکر جدید کلادفلر ایجاد کرده و این کد را داخل آن جایگذاری و سپس اقدام به ویرایش آن کنید.
- **2.2 ویرایش UUID**
در ابتدای کد، `UUID` پیشفرض در لاین `12` را با UUID خود از داخل وورکر یا پیج خود یا از داخل یکی از کانفیگهای ساخته شده خودتان جایگزین کنید.
- **2.3 ویرایش Hostname و SNI**
در این مرحله از ویرایش کد، باید `3` مرتبه `hostname` پیشفرض را در لاینهای `(928)`، `(953)` و `(982)` را با هاستنیم کانفیگ خود (مانند UUID) و همچنین `3` مرتبه `SNI` پیشفرض در لاینهای `(931)`، `(956)` و `(984)` را با SNI کانفیگ خود جایگزین کنید. SNI در کانفیگهایی که با وورکر یا پیج ساخته میشوند عموماً برابر با Hostname میباشد.
- **2.4 ذخیره کد ویرایش شده**
در نهایت کد ویرایش شده را ذخیره کنید.
### 3. ایجاد یک Worker در CloudFlare
1. به حساب CloudFlare خود وارد شوید.
2. به بخش `Workers and Pages` بروید.
3. یک Worker جدید ایجاد کنید.> Cloudflare account > workers and pages > new application > create worker > rename > deploy.
4. سپس روی گزینه `Edit Worker` کلیک کنید.
### 4. وارد کردن اسکریپت در ویرایشگر وورکر
قطعه کد پیشفرض در صفحه ادیتور را به طور کامل حذف کرده و کد خود را در آن جایگذاری کنید و سپس برای اعمال تغییرات از گوشه سمت راست روی گزینه `Deploy` کلیک کنید.
> [!TIP]
> برای بهم نریختن قالببندی کد، لطفاً از کلیدهای `ctrl+c` برای کپی کد و `ctrl+v` برای جایگذاری در ویندوز استفاده کنید. در موبایل میتوان فایل js را درون وورکر آپلود کرد.### 5. دریافت لینک اشتراک
پس از deploy شدن worker، در همان محیط با کلیک بر روی گزینه `worker.dev` لینک وورکر را در تب جدید مشاهده خواهید کرد. کانفیگها در فرمت base64 هستند.
از بخش آدرس بار مرورگر لینک آدرس را کپی کرده و از آن به عنوان لینک ساب در کلاینت دلخواه خود استفاده کنید. در تمام کلاینتهای ویتوری میتوان آن را اضافه کرد.
این URL به عنوان لینک اشتراک شما عمل خواهد کرد.
### 6. بهروزرسانی لینک اشتراک
بر روی دکمه `بهروزرسانی اشتراک` - `Update Subscriptions` داخل کلاینت کلیک کنید.
با هربار انجام این عمل، 30 عدد کانفیگ جدید با IP های تمیز به کلاینت شما اضافه خواهد شد.
> [!CAUTION]
> برای رسیدن به شخصیسازی بیشتر، لطفاً توضیحات زیر را بخوانید.## توضیحات غیر ضروری
قبلتر گفتم واسهی اینکه بتونید شخصاً از این اسکریپت استفاده کنید و برای کانفیگهای خودتون لینک ساب درست کنید، باید UUID و Hostname خودتونرو در لاینهای ذکر شده در ابتدای کد جایگذاری کنید. حالا میخواهیم یکم شخصیسازی کنیم طبق نیازمون.
### 1. CF IPs
ما سه تا مخزن آیپی داریم که از هر کدوم ده تا آیپی fetch میکنه و برامون داخل کانفیگها قرار میده، جمعاً سی تا کانفیگ در خروجی داریم.
- **مخزن اول**
در واقع آیپیهایی هستند که خودم داخل کد نوشتم، از لاین `29` شروع میشوند تا لاین `644` آیپی از نوع ورژن 6 هستند.
از لاین `647` دامینهای پشت کلادفلر رو قرار دادم اونایی که خوب کار میکردند و پشت سر اونها از لاین `689` چندتا IPv4 عادی کلادفلر نوشتم تا لاین `881`.
هرکدوم از این دو نوع آیپی و دامینهارو که دلتون خواست میتونید تغییر بدید. هیچ مشکل و محدودیتی برای این کار نداریم. میتونید تعداد رو کم کنید یا چند سطر بیشتر یا کلاً حذف کنید.
آیپیهای ورژن 6 نیاز به تغییر ندارند، دو سال اخیر همگی به عالی تربن شکل فعال بودند. اگر قصد تغییر داشتید، پیشنهاد میکنم فقط آیپیهای ورژن 4 و دامینها رو تغییر بدید.- **مخزن دوم**
این مخزن آیپی اطلاعاتش رو از گیتهاب وحید فرید [^5] میگیره، آخرین بار در تاریخ 2024/2/10 بروزرسانی شده. اینم میتوانید باز دوباره تغییر بدید به مخزن دلخواه خودتون، از لاین `892`
- **مخزن سوم**
آیپیهای ما اطلاعاتش رو از گیتهاب NiREvil [^6] میگیره، اطلاعات اون در تاریخ 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]
> ```CSS
> TLS: 443/8443/2053/2083/2087/2096
> ```
> ```CSS
> 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 کد قرار داشته باشه.
**کنجکاو باشید. 🩶🪐**
[^1]: [UUID Generator](https://www.uuidgenerator.net/)
[^2]: [Harmony.js](harmony.js)
[^3]: [Get Notepad++](https://notepad-plus-plus.org/downloads/)
[^4]: [Get MT Manager](https://t.me/new_folder_revil/3172)
[^5]: [github.com/vfarid](https://raw.githubusercontent.com/vfarid/cf-clean-ips/main/list.json)
[^6]: [github.com/NiREvil](https://raw.githubusercontent.com/NiREvil/Harmony/refs/heads/main/cf-clean.json)