Arblant
Arblant/panel-gateway Public
⎇ main
Arblant · 16 files
README.md3.8 KB
README.md

🛡️ دروازه پنل (panel-gateway)

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

هر ۶ فیچر کجاست

فیچرپیاده‌سازی
۱. یوزر جدا با حجم و انقضاگیت‌وی: هر نفر UUID جدا + لینک ساب جدا؛ سهمیه GB و انقضای روزانه؛ قطع خودکار وسط کانکشن
۲. ربات تلگرامsrc/bot.js — ورکر جدا: ساخت یوزر، لیست، مصرف، حذف، ریست، سلامت، بکاپ
۳. پریست MCI / ایرانسلتب «پریست ISP» در پنل ادمین — بر اساس دانش کانال: ایرانسل → fp=unsafe + راهنمای فرگمنت دستی؛ همراه اول → fp=chrome + راهنمای ECH
۴. سلامت پروکسی IP داخل پنلتب «پروکسی IP» — تست TCP 443 از لبه‌ی کلادفلر (۳ تلاش)؛ بارگذاری خودکار از proxyip-board
۵. داشبورد مصرفتب «داشبورد» — مصرف هر یوزر با نوار پیشرفت + جمع کل
۶. بکاپ/ریستور تک‌کلیکیتب «بکاپ» — دانلود/بازگردانی JSON همه‌ی یوزرها

معماری

کلاینت (v2rayNG) ──wss──▶ گیت‌وی ──wss──▶ پنل اصلی (دست‌نخورده)
                        │
                        ▼
              Durable Object (SQLite)
              یوزرها + شمارنده‌ی بایت
  • هدر VLESS پارس می‌شه، UUID کاربر استخراج می‌شه، با DO چک می‌شه
  • هدر با UUID واقعی پنل بازنویسی و به بک‌اند فوروارد می‌شه
  • بایت‌ها هر ۵ ثانیه فلاش می‌شن؛ با رد شدن سهمیه کانکشن با کد 4403 بسته می‌شه

نصب گیت‌وی

cd panel-gateway
wrangler deploy   # با wrangler.toml
wrangler secret put BACKEND_WS_URL   # wss://<panel-host>/<ws-path>
wrangler secret put BACKEND_UUID     # UUID خود پنل
wrangler secret put ADMIN_SECRET     # کلید ادمین

بعد برو به https://<gateway>/admin/ — کلید ادمین رو بده، یوزر بساز، لینک رو بده به هر نفر.

نصب ربات تلگرام

  1. به @BotFather بگو /newbot — توکن بگیر
  2. wrangler deploy -c wrangler.bot.toml
  3. سکرت‌ها: TELEGRAM_BOT_TOKEN WEBHOOK_SECRET ADMIN_CHAT_ID GATEWAY_URL GATEWAY_ADMIN_SECRET
  4. وبهوک: curl https://api.telegram.org/bot<token>/setWebhook -d url=https://<bot>/webhook/<secret>
  5. به ربات /start بده — شناسه‌ی چتت رو می‌ده — بذار توی ADMIN_CHAT_ID

تست‌ها (همه سبز ✅)

node --test test/vless.test.js test/accounting.test.js test/bot.test.js  # 26/26
node test/e2e.mjs   # 10/10 — کلاینت VLESS واقعی → گیت‌وی واقعی → سرور echo واقعی

تست e2e با شبیه‌ساز کامل WebSocket انجام شده: بایت‌شماری دقیق up/down، قطع سهمیه وسط کانکشن (4403)، رد UUID ناشناس (4403)، هدر خراب (4400).

محدودیت‌های صادقانه

  • فعلاً فقط VLESS روی WebSocket (پروتکل اصلی). Trojan/XHTTP/Shadowsocks فاز بعد.
  • تست TCP پروکسی IP فقط روی ران‌تایم واقعی کلادفلر کار می‌کنه (تو Node با fallback تمیز رد می‌شه).
  • شمارنده‌ها هر ۵ ثانیه فلاش می‌شن — مصرف لحظه‌ایِ چند ثانیه‌ی آخر ممکنه عقب باشه.