اَبرِ دیجیتال، مرکز تخصصی ارائه سرویس های ابری، سرور مجازی/اختصاصی، هاست و دامنه

اَبرِ دیجیتال، مرکز تخصصی ارائه سرویس های ابری

دریافت مشاوره رایگان

آموزش کامل ساخت لینک subscription v2ray برای نمایش حجم و زمان پنل سنایی

 

مقدمه 

 

این مقاله یک راهنمای جامع و گام‌به‌گام برای ساخت لینک اشتراک (Subscription) برای سرورهای ابری بر V2Ray (پروفایل‌های VLESS و VMess) به‌گونه‌ای که پنل سنایی (Sanaei panel) بتواند مقدار ترافیک باقی‌مانده و زمان انقضای حساب را نمایش دهد ارائه می‌دهد. مراحل شامل پیش‌نیازها، نصب و پیکربندی V2Ray، ایجاد و تنظیم حساب در پنل سنایی، تولید ساختار اشتراک با فیلدهای لازم برای نمایش حجم و زمان، تولید لینک نهایی (Subscription URL) و نکات امنیتی و عیب‌یابی است. فرض می‌کنیم دسترسی مدیریتی به سرور و پنل سنایی دارید. استفاده قانونی از مطالب بر عهده خواننده است.

 

فهرست مطالب

 

  1. پیش‌نیازها
  2. معماری کلی و نحوه کار پنل سنایی با V2Ray
  3. نصب و پیکربندی پایه V2Ray (VLESS/VMess)
  4. آماده‌سازی TLS و دامنه
  5. نصب و پیکربندی پنل سنایی (در صورت نیاز)
  6. ایجاد حساب کاربری و متادیتای لازم (حجم و زمان)
  7. ساخت قالب Subscription قابل خواندن توسط کلاینت‌ها و پنل سنایی
  8. تولید لینک اشتراک (Subscription URL)
  9. تست در کلاینت‌ها و نمایش ترافیک/زمان در پنل سنایی
  10. نکات امنیتی و نگهداری
  11. عیب‌یابی رایج

 

 

 

  1. پیش‌نیازها

 

سرور لینوکسی با دسترسی root (Ubuntu/Debian/CentOS).

– دامنه معتبر و دسترسی به DNS آن.

– گواهی TLS (Let’s Encrypt یا دیگر CA).

– نصب شده: curl, jq, systemd.

– دسترسی به پنل سنایی (Sanaei panel) یا آشنایی با API آن (در صورت استفاده از نسخه مدیریتی).

– بسته V2Ray (نسخه رسمی یا xray-core) روی سرور.

 

 

 

 

  1. معماری کلی و نحوه تعامل پنل سنایی با V2Ray

 

– پنل سنایی معمولاً به‌عنوان مدیریت حساب‌ها (کاربران، ترافیک، تاریخ انقضا) استفاده می‌شود.

– پنل اطلاعات کاربر را در دیتابیس نگه می‌دارد و به‌صورت پویا فایل subscription یا API ای فراهم می‌کند که کلاینت‌ها (یا سرور‌های پیش‌پردازش) می‌توانند از آن استفاده کنند.

– برای نمایش ترافیک/زمان در پنل سنایی:

  – پنل باید اطلاعات ترافیک مصرفی کاربر را دریافت کند (از V2Ray/xray یا با استفاده از اسکریپت‌هایی که از API/лог‌ها سوابق را می‌گیرند).

  – لینک subscription باید شامل شناسه کاربر (UUID یا id) و پارامترهای مرتبط باشد تا پنل بتواند وضعیت را مرتبط کند.

 

 

 

  1. نصب و پیکربندی پایه V2Ray (VLESS/VMess)

 

– نصب xray-core (معمولی و سازگار با VLESS/VMess):

  – دانلود باینری رسمی و قرار دادن در /usr/local/bin یا استفاده از بسته‌های توزیع.

– نمونه فایل سرویس systemd برای xray:

  – ایجاد /etc/xray/config.json با دو اینباند: یک listener روی پورت TLS و یک پورت برای WebSocket یا TCP.

– نمونه ساده VLESS (WebSocket + TLS) — مقادیری که باید داشته باشید:

  – UUID هر کاربر

  – flow (در صورت استفاده از VLESS+XTLS)

  – path برای WebSocket

  – sniffing و routing اختیاری

– تنظیم logging و policy برای جمع‌آوری ترافیک (برای گزارش‌دهی به پنل).

 

(توضیحات پیکربندی فنی دقیق در بخش‌های بعدی ارائه می‌شود.)

 

 

  1. آماده‌سازی TLS و دامنه

 

– گرفتن گواهی Let’s Encrypt با certbot یا acme.sh:

acme.sh --issue -d example.com --standalone

 

  – نصب گواهی‌ها در مسیر مورد استفاده توسط xray.

– تنظیم reverse proxy (اختیاری) مانند Caddy یا Nginx برای مدیریت TLS و WebSocket:

  – مزیت: سادگی مدیریت TLS، HTTP->WS proxy، header handling.

 

 

 

  1. نصب و پیکربندی پنل سنایی

 

– اگر پنل سنایی را ندارید، باید آن را نصب یا از نسخه تحت وب/ابری استفاده کنید.

– پنل معمولاً شامل:

  – ماژول کاربری (ایجاد/حذف حساب، تعریف حجم و تاریخ انقضا)

  – ماژول گزارش ترافیک (دریافت/پردازش گزارش از سرور)

  – تولید لینک اشتراک یا API خروجی subscription

– در پنل، فیلدهای مهم برای هر کاربر:

  – id (UUID)

  – نام کاربری

  – ترافیک کل و مصرف‌شده

  – تاریخ تولید و تاریخ انقضا

  – پروتکل (vless/vmess)، transport (ws/tcp)

  – path، host، port، tls

– پنل باید مکانیزمی برای بروزرسانی ترافیک کاربر داشته باشد: یا با خواندن لاگ‌های xray یا دریافت metering از طریق API.

 

 

 

  1. ایجاد حساب کاربری و متادیتای لازم (حجم و زمان)

 

– در پنل سنایی برای هر کاربر:

  – انتخاب UUID (نمونه با uuidgen)

  – تعیین ترافیک قابل‌استفاده (مثلاً 50GB) و تاریخ انقضا (مثلاً 30 روز از تاریخ فعال‌سازی)

– پنل باید endpoint ای داشته باشد که subscription را براساس اطلاعات کاربر تولید کند (مثلاً /api/subscription?user_id=XYZ).

– متادیتا باید به شکل JSON یا Base64 encoded conform با استاندارد subscription V2Ray باشد تا کلاینت‌ها آن را بخوانند.

 

 

 

  1. ساخت قالب Subscription قابل خواندن توسط کلاینت‌ها و پنل سنایی

 

– چند فرمت رایج:

  1. لیست خطی از URIهای vmess:// یا vless:// جداشده با newline؛ یا
  2. فایل JSON قابل خواندن برای برخی کلاینت‌ها (مثلاً V2RayN، Qv2ray).

– نمونه قالب vmess (Base64-encoded JSON):

  – ساختار JSON هر ورودی باید شامل: v (نسخه)، ps (نام)، add (هاست)، port، id (UUID)، aid (alterId برای vmess قدیمی)، net (transport)، type، host، path، tls.

– نمونه قالب vless:

  – URL: vless://UUID@host:port?encryption=none&security=tls&type=ws&path=%2Fpath#name

– برای نمایش ترافیک و زمان در پنل سنایی:

  – subscription باید حاوی شناسه‌ای باشد که پنل بتواند آن را به رکورد کاربر مرتبط کند (مثلاً user_id یا UUID).

  – معمولاً پنلِ سنایی لینک اشتراک را خودش تولید می‌کند و شامل URLهایی است که پنل برای هر کاربر می‌سازد.

– پیشنهاد ساخت subscription endpoint در پنل:

  – GET /subscription/{user_uuid}

  – پاسخ: متن با چند خط vmess:// … یا vless:// …

  – یا پاسخ: base64encoded(all_links) برای کلاینت‌هایی که انتظار subscription base64 دارند.

 

 

 

  1. تولید لینک اشتراک (Subscription URL)

 

– دو رویکرد معمول:

  1. اشتراک اختصاصی کاربر (هر کاربر لینک اختصاصی دارد): پنل لینک اختصاصی تولید می‌کند که شامل UUID کاربر است و هنگام دسترسی، پنل اطلاعات ترافیک و تاریخ انقضای کاربر را بررسی می‌کند و لینک‌های فعال را بازمی‌گرداند.
  2. اشتراک گروهی (تمام حساب‌ها در یک لیست): پنل لیستی از همه کانفیگ‌ها را بازمی‌گرداند؛ کلاینت‌ها از آن برای افزودن کانکشن‌ها استفاده می‌کنند.

– ساخت URL نمونه (VLESS WS TLS):

  – قالب: 

vless://{UUID}@{domain}:{port}?type=ws&security=tls&path=%2F{path}&host={domain}#{name}

 

– تولید subscription قابل دانلود:

  – پنل endpoint باید خروجی را با هدر Content-Type: text/plain یا application/octet-stream ارسال کند.

  – اگر کلاینت subscription base64 انتظار دارد، خروجی را Base64 encode کنید.

– مثال: در پنل یک endpoint بسازید که خروجی‌اش شامل خط vmess/vless برای هر کاربر فعال است و هنگام بازدید پنل ترافیک و زمان را نیز چک کرده و در صورت منقضی شدن یا تمام شدن ترافیک آن خط را حذف یا علامت‌گذاری کند.

 

 

 

  1. تست در کلاینت‌ها و نمایش ترافیک/زمان در پنل سنایی

 

– کلاینت‌های رایج برای تست:

  – V2RayN (Windows)، V2RayNG (Android)، Qv2ray (cross-platform)، Clash (با قالب‌ها)

– مراحل تست:

  1. گرفتن لینک subscription از پنل و وارد کردن آن در کلاینت.
  2. اتصال و بررسی اتصال TLS/WS و رد و بدل شدن ترافیک.
  3. تولید ترافیک و مشاهده کاهش در مقدار ترافیک نمایش داده‌شده در پنل سنایی.
  4. مشاهده تاریخ انقضا: پنل باید پس از تاریخ انقضا، لینک را غیرفعال یا نشان دهد.

– اگر نمایش ترافیک بروز نشد، بررسی مسیر گزارش‌دهی ترافیک از xray به پنل (log، API، یا اسکریپت پردازش).

 

 

 

  1. نکات امنیتی و نگهداری

 

– همیشه از TLS معتبر استفاده کنید.

– UUIDها را امن بسازید و از انتشار غیرمجاز لینک‌ها جلوگیری کنید.

– لاگ‌ها را نگه دارید اما اطلاعات حساس را محافظت کنید.

– محدودیت‌های سرعت، timeouts و قوانین routing را برای جلوگیری از سوءاستفاده پیاده کنید.

– پشتیبان‌گیری منظم از دیتابیس پنل.

 

 

 

  1. عیب‌یابی رایج

 

– اتصال برقرار نمی‌شود: بررسی TLS، پورت، path و host در URL.

– ترافیک به‌روز نمی‌شود: بررسی لاگ xray، اسکریپت metering و دسترسی پنل به منابع گزارش.

– لینک subscription خالی یا ناقص: بررسی endpoint تولید subscription و encoding (Base64).

– خطاهای CORS/Proxy: اگر از reverse proxy استفاده می‌کنید، هدرهای WebSocket و TLS را چک کنید.

 

4.4/5 - (2785 امتیاز)

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *


7 × 9

قوانین

قوانین ارسال دیدگاه

لطفاً در ارسال دیدگاه از کلمات مناسب استفاده کنید. ارسال اسپم ممنوع است.