Skip to content

avacocloud/XHTTP-Installer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

XHTTP Installer

🌐 نصب خودکار پروکسی با Relay روی Vercel یا Netlify


🌐 زبان: 🇮🇷 فارسی🇬🇧 English


Telegram Ubuntu Bash License


Vercel Netlify Xray SSL


⚡ نصب سریع با یک دستور

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
Loading

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
Loading

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

  • سیستم‌عامل: Ubuntu 20.04 یا بالاتر (22.04 پیشنهاد می‌شه)
  • دسترسی: root یا sudo
  • پورت‌ها: 80 (برای SSL) و 443 (برای relay)
  • حداقل منابع: 1 vCPU + 1GB RAM

Important

قبل از اجرا، از پورت 80 و 443 صرفاً برای این اسکریپت استفاده کن. اگه nginx/apache روی این پورت‌ها داری، اول خاموششون کن.

۲. دامنه با DNS

یه دامنه که رکورد A اون به IP سرور اشاره کنه:

ns.example.com  →  YOUR_SERVER_IP

۳. توکن CDN (یکی از این دو)

🔵 توکن Vercel

https://vercel.com/account/tokens

Create Token → اسم بزار → کپی کن

🟢 توکن Netlify

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

  1. v2rayN رو از اینجا دانلود کن
  2. باز کن → ServersImport bulk URL from clipboard (یا Ctrl+V)
  3. اگه لینک رو کپی کرده باشی، خودکار اضافه می‌شه
  4. روی سرور راست‌کلیکSet as active server
  5. Mode رو روی Global یا PAC بذار

🤖 اندروید — v2rayNG

  1. v2rayNG رو از Google Play نصب کن
  2. روی + بزن → Import config from clipboard
  3. روی سرور tap کن → روی V آبی پایین صفحه بزن

🍎 iOS — Streisand

  1. Streisand رو از App Store نصب کن
  2. لینک رو کپی کن → Streisand خودش detect می‌کنه
  3. سرور رو فعال کن

🐧 لینوکس — Nekoray

  1. Nekoray رو از اینجا دانلود کن
  2. Program → Add profile from clipboard
  3. روی سرور دوبار کلیک کن

🌐 همه پلتفرم‌ها — Hiddify

  1. Hiddify رو از hiddify.com دانلود کن
  2. AddAdd from Clipboard (لینک رو از قبل کپی کن)
  3. سرور رو فعال کن


🛠️ ویژگی‌های اسکریپت

🤖 AutoFix هوشمند

اگه چیزی خراب بشه، اسکریپت خودش سعی می‌کنه fix کنه:

مشکل AutoFix
پورت 80 اشغاله کشتن پروسه و ادامه
فایروال بسته‌ست ufw allow خودکار
Xray با کلید SSL مشکل داره chmod و chgrp خودکار
Service config مشکل systemd drop-in خودکار
توکن نامعتبر درخواست توکن جدید
سایت Netlify duplicate اسم رندوم جدید

🧪 تست End-to-End خودکار

بعد از 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 خودکار

اسکریپت اول می‌پرسه آیا توی 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.log


🛡️ هشدار اخلاقی

Warning

این پروژه فقط برای دور زدن محدودیت‌های ناعادلانه و حفظ حریم خصوصی ساخته شده.

❌ از این برای فعالیت‌های مخرب، حمله، یا نقض حریم خصوصی دیگران استفاده نکن.

❌ از دامنه‌ها/توکن‌های شخص ثالث بدون اجازه استفاده نکن.

✅ فقط روی سرور و CDN account خودت اجرا کن.



📜 مجوز و کپی‌رایت

این پروژه تحت GNU GPL-3.0 منتشر شده.

Copyright © 2025 @avaco_cloud

Important

✅ استفاده شخصی و تجاری آزاده ✅ تغییر و fork آزاده

❗ ولی هر کپی، fork یا توزیع مجدد باید موارد زیر رو نگه داره:

❌ حذف یا تغییر این موارد نقض کپی‌رایت محسوب میشه و باعث DMCA Takedown میشه.

اگه دیدی کسی کد این پروژه رو بدون رعایت لایسنس کپی کرده، با @avaco_cloud تماس بگیر.



💖 حمایت مالی

اگه این پروژه بهت کمک کرد و دوست داری حمایت کنی، می‌تونی با ارز دیجیتال دونیت کنی:

Cryptocurrency & Bitcoin donation button by NOWPayments




🙏 تشکر و قدردانی

از این عزیزان بابت الهام و کمک‌هاشون سپاسگزارم:

amirshaker000
@amirshaker000
B3hnamR
@B3hnamR



Made with ❤️ by @avaco_cloud

About

VLESS+XHTTP+TLS Auto-Installer for Ubuntu — Vercel / Netlify relay

Resources

License

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors