bash <(curl -fsSL https://raw.githubusercontent.com/avacocloud/XHTTP-Installer/main/install.sh)- ✨ این پروژه چیه؟
- 🔄 چطور کار میکنه؟
- 📋 پیشنیازها
- 🚀 نصب در ۴ مرحله
- 📱 استفاده از کانفیگ
- 🛠️ ویژگیهای اسکریپت
- 🐛 عیبیابی
- 📜 مجوز
یه اسکریپت یکخطی برای راهاندازی پروکسی VLESS+XHTTP+TLS با استفاده از CDN رایگان Vercel یا Netlify بهعنوان relay.
Tip
بهجای اینکه کلاینت مستقیم به سرور تو وصل شه (که IP لو میره و فیلتر میشه)، ترافیک از Edge Function یه پلتفرم معروف عبور میکنه — پس IP سرورت مخفی میمونه.
| ویژگی | توضیح |
|---|---|
| 🛡️ مخفیسازی IP | IP سرور پشت CDN معتبر مخفی میشه |
| 🌍 سرعت بالا | ترافیک از CDN جهانی Netlify/Vercel |
| 💰 رایگان | با plan رایگان Vercel یا Netlify |
| 🔐 TLS معتبر | گواهی Let's Encrypt خودکار |
| ⚡ یک خط نصب | بدون تجربه یا نیاز به تنظیمات دستی |
| 🔁 AutoFix هوشمند | اگه چیزی خراب شد، خودکار درست میکنه |
flowchart LR
A["📱 Client<br/>v2rayN · Nekoray · Hiddify"] -->|"VLESS + XHTTP + TLS"| B
B["🌐 CDN Edge<br/>Vercel / Netlify<br/><i>relay.js</i>"] -->|"HTTPS proxy<br/>TARGET_DOMAIN"| C
C["🔐 Xray Server<br/>VLESS+XHTTP<br/>Port 443"] -->|"forward"| D["🌍 Internet"]
style A fill:#1e293b,stroke:#06b6d4,stroke-width:2px,color:#fff
style B fill:#0f172a,stroke:#fbbf24,stroke-width:2px,color:#fff
style C fill:#1e293b,stroke:#a855f7,stroke-width:2px,color:#fff
style D fill:#0f172a,stroke:#10b981,stroke-width:2px,color:#fff
Note
CDN لایهی عمومی و سرور Xray لایهی مخفی هست. دنیای بیرون فقط دامنهی CDN رو میبینه.
flowchart TD
Start([🚀 Start]) --> P1
P1["1️⃣ Preflight<br/>OS · Root · DNS · Ports"] --> P2
P2["2️⃣ Install Tools<br/>Xray · acme.sh · CLIs · xray-knife"] --> P3
P3["3️⃣ Collect Inputs<br/>Platform · Domain · Token"] --> P4A
P4A["4️⃣ Issue SSL<br/>Let's Encrypt via acme.sh"] --> P4B
P4B["5️⃣ Configure Xray<br/>VLESS + XHTTP + TLS"] --> P4C
P4C{Platform?}
P4C -->|Vercel| V["🔵 Vercel Deploy<br/>vercel env + deploy"]
P4C -->|Netlify| N["🟢 Netlify Deploy<br/>netlify env + deploy"]
V --> P5
N --> P5
P5["7️⃣ E2E Test<br/>xray-knife + ping"] --> P6
P6["8️⃣ Generate Config<br/>vless:// link"] --> Done([✅ Done])
style Start fill:#00d97e,stroke:#0a1a1f,stroke-width:2px,color:#0a1a1f
style Done fill:#00d97e,stroke:#0a1a1f,stroke-width:2px,color:#0a1a1f
style P1 fill:#1e293b,stroke:#06b6d4,color:#fff
style P2 fill:#1e293b,stroke:#06b6d4,color:#fff
style P3 fill:#1e293b,stroke:#06b6d4,color:#fff
style P4A fill:#1e293b,stroke:#a855f7,color:#fff
style P4B fill:#1e293b,stroke:#a855f7,color:#fff
style P4C fill:#0f172a,stroke:#fbbf24,stroke-width:2px,color:#fff
style V fill:#0a0a0a,stroke:#ffffff,color:#fff
style N fill:#004d47,stroke:#00C7B7,color:#fff
style P5 fill:#1e293b,stroke:#10b981,color:#fff
style P6 fill:#1e293b,stroke:#10b981,color:#fff
1️⃣ Phase 1 — Preflight (بررسی سیستم)
چک میکنه که سرور برای نصب آماده باشه:
- ✅ سیستمعامل Ubuntu 20.04+ هست
- ✅ اسکریپت با دسترسی root اجرا شده
- ✅ اتصال اینترنت برقراره
- ✅ پورتهای 80 و 443 آزادن (اگه نبود، auto-fix میکنه)
- ✅ DNS روی دامنه درست تنظیم شده
2️⃣ Phase 2 — نصب ابزارها
این پکیجها رو خودکار نصب میکنه:
| ابزار | کاربرد |
|---|---|
| Xray-core | هسته پروکسی (VLESS+XHTTP) |
| acme.sh | دریافت گواهی SSL از Let's Encrypt |
| Node.js + npm | پیشنیاز CLI پلتفرمها |
| Vercel CLI | دیپلوی روی Vercel (اگه انتخاب شده) |
| Netlify CLI | دیپلوی روی Netlify (اگه انتخاب شده) |
| xray-knife | تست end-to-end کانفیگ |
| curl, jq, unzip, screen | ابزارهای کمکی |
[!NOTE] نیازی نیست CLI رو خودت نصب کنی — اسکریپت همه چی رو میگیره و auth میکنه.
3️⃣ Phase 3 — دریافت اطلاعات
بهصورت تعاملی این سؤالا رو میپرسه:
| سؤال | مثال | اجباری؟ |
|---|---|---|
| انتخاب پلتفرم | Vercel / Netlify | ✅ |
| دامنه | ns.example.com |
✅ |
| ایمیل SSL | admin@example.com |
⬜ (پیشفرض) |
| پورت Xray | 443 |
⬜ (پیشفرض) |
| مسیر relay | /api |
⬜ (پیشفرض) |
| توکن پلتفرم | Vercel/Netlify token | ✅ |
| اسم پروژه | relay-abc123 |
⬜ (رندوم) |
4️⃣ Phase 4a — صدور گواهی SSL
- 🔐 با
acme.shگواهی از Let's Encrypt میگیره - 📁 توی
/etc/ssl/xhttp/<domain>/ذخیره میکنه - 🔄 اگه پورت 80 اشغال باشه، auto-fix انجام میده
- ♻️ تمدید خودکار رو هم فعال میکنه
5️⃣ Phase 4b — کانفیگ Xray
- 🎲 یه UUID یکتا تولید میکنه
- 📝 فایل
/usr/local/etc/xray/config.jsonمیسازه با VLESS+XHTTP+TLS - 🔑 دسترسی فایلهای SSL رو برای Xray درست میکنه
- 🚀 سرویس Xray رو start/enable میکنه
- ✅ چک میکنه سرویس سالم بالا اومده
6️⃣ Phase 4c — دیپلوی روی CDN
بسته به پلتفرم انتخابی:
🔵 Vercel:
- ورود با توکن →
vercel login - ایجاد پروژه →
vercel project add - ست کردن ENV:
TARGET_DOMAIN,UPSTREAM_PROTOCOL,RELAY_PATH - دیپلوی production →
vercel deploy --prod
🟢 Netlify:
- ورود با توکن →
netlify login - ایجاد site →
netlify sites:create - ست کردن ENV:
TARGET_DOMAIN - دیپلوی با Edge Function →
netlify deploy --prod
[!TIP] اگه دیپلوی شکست خورد، auto-fix خودکار retry میکنه با حل کردن مشکل قبلی (ENV، اسم duplicate، توکن).
7️⃣ Phase 5 — تست end-to-end
- 🧪 با
xray-knifeیه کلاینت موقت میسازه - 🌐 از طریق CDN → Server → Internet ترافیک رو تست میکنه
- ⏱️ پینگ (min/avg/max) رو اندازه میگیره
- ✅ مطمئن میشه کانفیگ واقعاً کار میکنه قبل از اینکه بهت بده
8️⃣ Phase 6 — تولید کانفیگ نهایی
- 📋 لینک
vless://...آماده برای کپی - 📊 گزارش کامل: URL relay، UUID، نتیجه تست، پینگ، کیفیت
- 💾 لاگ کامل توی
/tmp/xhttp-install.log
قبل از نصب این موارد رو آماده داشته باش:
- سیستمعامل: Ubuntu 20.04 یا بالاتر (22.04 پیشنهاد میشه)
- دسترسی: root یا sudo
- پورتها: 80 (برای SSL) و 443 (برای relay)
- حداقل منابع: 1 vCPU + 1GB RAM
Important
قبل از اجرا، از پورت 80 و 443 صرفاً برای این اسکریپت استفاده کن. اگه nginx/apache روی این پورتها داری، اول خاموششون کن.
یه دامنه که رکورد A اون به IP سرور اشاره کنه:
ns.example.com → YOUR_SERVER_IP
https://vercel.com/account/tokens
→ Create Token → اسم بزار → کپی کن
https://app.netlify.com/user/applications#personal-access-tokens
→ New access token → اسم بزار → کپی کن
SSH بزن به سرور و این یه خط رو اجرا کن:
bash <(curl -fsSL https://github.com/avacocloud/XHTTP-Installer/releases/latest/download/Deploy-Ubuntu.sh)Tip
این دستور خودش git رو نصب میکنه، ریپو رو clone میکنه توی /root/XHTTP-Installer و Deploy-Ubuntu.sh رو اجرا میکنه.
روشهای جایگزین
با git (دستی):
git clone https://github.com/avacocloud/XHTTP-Installer.git /root/XHTTP-Installer
cd /root/XHTTP-Installer
sudo bash Deploy-Ubuntu.shبا zip (آفلاین):
scp XHTTP-Installer.zip root@SERVER_IP:/root/
ssh root@SERVER_IP
cd /root && unzip XHTTP-Installer.zip && sudo bash Deploy-Ubuntu.shاسکریپت اول میپرسه که توی screen اجرا کنه یا نه:
- اگه اینترنتت ناپایداره یا SSH زیاد قطع میشه →
Yبزن. اگه وسط نصب SSH قطع شد:ssh root@SERVER_IP screen -r xhttp
- اگه اینترنتت پایداره و قطع نمیشه →
nبزن و مستقیم ادامه بده
Tip
اگه SSH وسط نصب قطع شد و توی screen بودی، با screen -r xhttp برمیگردی به جلسهی قبلی.
[ Deployment Platform ]
Choose relay platform:
1) Vercel
2) Netlify
Enter choice [1/2]: 2
اسکریپت پشت سر هم سؤال میپرسه. هرجا Enter بزنی مقدار پیشفرض رو قبول میکنه:
| سؤال | توضیح | مثال / پیشفرض |
|---|---|---|
| دامنه سرور | سابدامنهای که A record اون به IP سرور اشاره میکنه | ns.example.com |
| ایمیل | برای ثبت گواهی SSL (اختیاری) | admin@ns.example.com |
| پورت inbound | پورتی که Xray روش گوش میده | 443 |
| RELAY_PATH | مسیر inbound روی سرور | /api |
| PUBLIC_RELAY_PATH | مسیر relay روی CDN | /api |
| توکن | توکن Vercel یا Netlify (بسته به انتخابت) | paste کن |
| اسم پروژه | اسم سایت روی CDN (رندوم پیشفرض) | relay-abc123 |
| تنظیمات Performance | فقط برای Vercel نمایش داده میشه (Enter = پیشفرض) | 128, 50000, ... |
اسکریپت همه کارها رو خودش میکنه. در نهایت یه چیزی شبیه این میبینی:
╔══════════════════════════════════════════╗
║ INSTALLATION COMPLETE ✔ ║
╚══════════════════════════════════════════╝
Platform : netlify
Relay URL : https://your-site-name.netlify.app
Inbound UUID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
E2E Proxy Test : ✔ PASS
Ping (min/avg/max): 395/424/480 ms
Quality : Good
Your client config IS verified to work.
── Client Config ──
vless://xxxxxxxx...@your-site-name.netlify.app:443?...#XHTTP-netlify
✅ اون لینک vless://... رو کپی کن.
- v2rayN رو از اینجا دانلود کن
- باز کن →
Servers→Import bulk URL from clipboard(یاCtrl+V) - اگه لینک رو کپی کرده باشی، خودکار اضافه میشه
- روی سرور راستکلیک →
Set as active server - Mode رو روی
GlobalیاPACبذار
- v2rayNG رو از Google Play نصب کن
- روی + بزن →
Import config from clipboard - روی سرور tap کن → روی V آبی پایین صفحه بزن
- Streisand رو از App Store نصب کن
- لینک رو کپی کن → Streisand خودش detect میکنه
- سرور رو فعال کن
- Nekoray رو از اینجا دانلود کن
Program → Add profile from clipboard- روی سرور دوبار کلیک کن
- Hiddify رو از hiddify.com دانلود کن
Add→Add from Clipboard(لینک رو از قبل کپی کن)- سرور رو فعال کن
اگه چیزی خراب بشه، اسکریپت خودش سعی میکنه fix کنه:
| مشکل | AutoFix |
|---|---|
| پورت 80 اشغاله | کشتن پروسه و ادامه |
| فایروال بستهست | ufw allow خودکار |
| Xray با کلید SSL مشکل داره | chmod و chgrp خودکار |
| Service config مشکل | systemd drop-in خودکار |
| توکن نامعتبر | درخواست توکن جدید |
| سایت Netlify duplicate | اسم رندوم جدید |
بعد از deploy، اسکریپت خودش proxy رو تست میکنه با یه xray client موقت:
✔ VLESS+XHTTP WORKS END-TO-END
HTTP 204 in 0.475s — proxy is functional
Ping (min/avg/max): 395/424/480 ms (through VLESS)
CDN Ping: 91 ms (direct to relay)
Quality: Good
پس قبل از اینکه توی کلاینت تست کنی، میدونی proxy کار میکنه.
اسکریپت اول میپرسه آیا توی screen اجراش کنه. این طوری:
- ✅ اگه SSH قطع شد، نصب ادامه پیدا میکنه
- ✅ با
screen -r xhttpمیتونی برگردی - ✅ کاراکترهای فارسی درست نمایش داده میشن (UTF-8 enabled)
یه اسکریپت، هر دو CDN. تنها کاری که میکنی، انتخاب 1 یا 2 توی شروع.
❌ Xray با خطای "permission denied" روی privkey.pem
این مشکل رو اسکریپت خودکار حل میکنه (با systemd drop-in که xray رو به root تغییر میده).
اگه به طور دستی هم میخوای fix کنی:
chmod 640 /etc/ssl/xhttp/YOUR_DOMAIN/privkey.pem
chgrp nobody /etc/ssl/xhttp/YOUR_DOMAIN/privkey.pem❌ HTTP 500 از Netlify (Misconfigured)
یعنی env var TARGET_DOMAIN ست نشده. اسکریپت خودکار retry میکنه ولی اگه باز هم نشد:
cd /root/deploy/netlify
netlify env:set TARGET_DOMAIN "https://YOUR_DOMAIN:443" \
--scope functions --context production --site SITE_ID
netlify deploy --prod❌ HTTP 404 از relay
این طبیعیه برای request غیر-VLESS! وقتی با curl تست میکنی، 404 میگیری چون curl یه VLESS handshake نمیفرسته. کلاینتهای واقعی (v2rayN، Nekoray، ...) درست کار میکنن.
📝 لاگ کامل
همهی خروجی نصب توی این فایل ذخیره میشه:
tail -f /tmp/xhttp-install.logWarning
این پروژه فقط برای دور زدن محدودیتهای ناعادلانه و حفظ حریم خصوصی ساخته شده.
❌ از این برای فعالیتهای مخرب، حمله، یا نقض حریم خصوصی دیگران استفاده نکن.
❌ از دامنهها/توکنهای شخص ثالث بدون اجازه استفاده نکن.
✅ فقط روی سرور و CDN account خودت اجرا کن.
این پروژه تحت GNU GPL-3.0 منتشر شده.
Copyright © 2025 @avaco_cloud
Important
✅ استفاده شخصی و تجاری آزاده ✅ تغییر و fork آزاده
❗ ولی هر کپی، fork یا توزیع مجدد باید موارد زیر رو نگه داره:
- 📌 نوتیس کپیرایت اصلی (
Copyright © 2025 avaco_cloud) - 📌 لینک به ریپو اصلی: https://github.com/avacocloud/XHTTP-Installer
- 📌 اشاره به @avaco_cloud بهعنوان نویسنده اصلی
- 📌 فایل
LICENSEبدون تغییر
❌ حذف یا تغییر این موارد نقض کپیرایت محسوب میشه و باعث DMCA Takedown میشه.
اگه دیدی کسی کد این پروژه رو بدون رعایت لایسنس کپی کرده، با @avaco_cloud تماس بگیر.
اگه این پروژه بهت کمک کرد و دوست داری حمایت کنی، میتونی با ارز دیجیتال دونیت کنی:
از این عزیزان بابت الهام و کمکهاشون سپاسگزارم:
![]() @amirshaker000 |
![]() @B3hnamR |
Made with ❤️ by @avaco_cloud

