آموزش کامل ساخت لینک subscription v2ray برای نمایش حجم و زمان پنل سنایی
مقدمه
این مقاله یک راهنمای جامع و گامبهگام برای ساخت لینک اشتراک (Subscription) برای سرورهای ابری بر V2Ray (پروفایلهای VLESS و VMess) بهگونهای که پنل سنایی (Sanaei panel) بتواند مقدار ترافیک باقیمانده و زمان انقضای حساب را نمایش دهد ارائه میدهد. مراحل شامل پیشنیازها، نصب و پیکربندی V2Ray، ایجاد و تنظیم حساب در پنل سنایی، تولید ساختار اشتراک با فیلدهای لازم برای نمایش حجم و زمان، تولید لینک نهایی (Subscription URL) و نکات امنیتی و عیبیابی است. فرض میکنیم دسترسی مدیریتی به سرور و پنل سنایی دارید. استفاده قانونی از مطالب بر عهده خواننده است.
فهرست مطالب
- پیشنیازها
- معماری کلی و نحوه کار پنل سنایی با V2Ray
- نصب و پیکربندی پایه V2Ray (VLESS/VMess)
- آمادهسازی TLS و دامنه
- نصب و پیکربندی پنل سنایی (در صورت نیاز)
- ایجاد حساب کاربری و متادیتای لازم (حجم و زمان)
- ساخت قالب Subscription قابل خواندن توسط کلاینتها و پنل سنایی
- تولید لینک اشتراک (Subscription URL)
- تست در کلاینتها و نمایش ترافیک/زمان در پنل سنایی
- نکات امنیتی و نگهداری
- عیبیابی رایج
پیشنیازها
– سرور لینوکسی با دسترسی root (Ubuntu/Debian/CentOS).
– دامنه معتبر و دسترسی به DNS آن.
– گواهی TLS (Let’s Encrypt یا دیگر CA).
– نصب شده: curl, jq, systemd.
– دسترسی به پنل سنایی (Sanaei panel) یا آشنایی با API آن (در صورت استفاده از نسخه مدیریتی).
– بسته V2Ray (نسخه رسمی یا xray-core) روی سرور.

معماری کلی و نحوه تعامل پنل سنایی با V2Ray
– پنل سنایی معمولاً بهعنوان مدیریت حسابها (کاربران، ترافیک، تاریخ انقضا) استفاده میشود.
– پنل اطلاعات کاربر را در دیتابیس نگه میدارد و بهصورت پویا فایل subscription یا API ای فراهم میکند که کلاینتها (یا سرورهای پیشپردازش) میتوانند از آن استفاده کنند.
– برای نمایش ترافیک/زمان در پنل سنایی:
– پنل باید اطلاعات ترافیک مصرفی کاربر را دریافت کند (از V2Ray/xray یا با استفاده از اسکریپتهایی که از API/логها سوابق را میگیرند).
– لینک subscription باید شامل شناسه کاربر (UUID یا id) و پارامترهای مرتبط باشد تا پنل بتواند وضعیت را مرتبط کند.
نصب و پیکربندی پایه 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 برای جمعآوری ترافیک (برای گزارشدهی به پنل).
(توضیحات پیکربندی فنی دقیق در بخشهای بعدی ارائه میشود.)

آمادهسازی 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.

نصب و پیکربندی پنل سنایی
– اگر پنل سنایی را ندارید، باید آن را نصب یا از نسخه تحت وب/ابری استفاده کنید.
– پنل معمولاً شامل:
– ماژول کاربری (ایجاد/حذف حساب، تعریف حجم و تاریخ انقضا)
– ماژول گزارش ترافیک (دریافت/پردازش گزارش از سرور)
– تولید لینک اشتراک یا API خروجی subscription
– در پنل، فیلدهای مهم برای هر کاربر:
– id (UUID)
– نام کاربری
– ترافیک کل و مصرفشده
– تاریخ تولید و تاریخ انقضا
– پروتکل (vless/vmess)، transport (ws/tcp)
– path، host، port، tls
– پنل باید مکانیزمی برای بروزرسانی ترافیک کاربر داشته باشد: یا با خواندن لاگهای xray یا دریافت metering از طریق API.
ایجاد حساب کاربری و متادیتای لازم (حجم و زمان)
– در پنل سنایی برای هر کاربر:
– انتخاب UUID (نمونه با uuidgen)
– تعیین ترافیک قابلاستفاده (مثلاً 50GB) و تاریخ انقضا (مثلاً 30 روز از تاریخ فعالسازی)
– پنل باید endpoint ای داشته باشد که subscription را براساس اطلاعات کاربر تولید کند (مثلاً /api/subscription?user_id=XYZ).
– متادیتا باید به شکل JSON یا Base64 encoded conform با استاندارد subscription V2Ray باشد تا کلاینتها آن را بخوانند.
ساخت قالب Subscription قابل خواندن توسط کلاینتها و پنل سنایی
– چند فرمت رایج:
- لیست خطی از URIهای vmess:// یا vless:// جداشده با newline؛ یا
- فایل 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 دارند.
تولید لینک اشتراک (Subscription URL)
– دو رویکرد معمول:
- اشتراک اختصاصی کاربر (هر کاربر لینک اختصاصی دارد): پنل لینک اختصاصی تولید میکند که شامل UUID کاربر است و هنگام دسترسی، پنل اطلاعات ترافیک و تاریخ انقضای کاربر را بررسی میکند و لینکهای فعال را بازمیگرداند.
- اشتراک گروهی (تمام حسابها در یک لیست): پنل لیستی از همه کانفیگها را بازمیگرداند؛ کلاینتها از آن برای افزودن کانکشنها استفاده میکنند.
– ساخت 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 برای هر کاربر فعال است و هنگام بازدید پنل ترافیک و زمان را نیز چک کرده و در صورت منقضی شدن یا تمام شدن ترافیک آن خط را حذف یا علامتگذاری کند.
تست در کلاینتها و نمایش ترافیک/زمان در پنل سنایی
– کلاینتهای رایج برای تست:
– V2RayN (Windows)، V2RayNG (Android)، Qv2ray (cross-platform)، Clash (با قالبها)
– مراحل تست:
- گرفتن لینک subscription از پنل و وارد کردن آن در کلاینت.
- اتصال و بررسی اتصال TLS/WS و رد و بدل شدن ترافیک.
- تولید ترافیک و مشاهده کاهش در مقدار ترافیک نمایش دادهشده در پنل سنایی.
- مشاهده تاریخ انقضا: پنل باید پس از تاریخ انقضا، لینک را غیرفعال یا نشان دهد.
– اگر نمایش ترافیک بروز نشد، بررسی مسیر گزارشدهی ترافیک از xray به پنل (log، API، یا اسکریپت پردازش).
نکات امنیتی و نگهداری
– همیشه از TLS معتبر استفاده کنید.
– UUIDها را امن بسازید و از انتشار غیرمجاز لینکها جلوگیری کنید.
– لاگها را نگه دارید اما اطلاعات حساس را محافظت کنید.
– محدودیتهای سرعت، timeouts و قوانین routing را برای جلوگیری از سوءاستفاده پیاده کنید.
– پشتیبانگیری منظم از دیتابیس پنل.
عیبیابی رایج
– اتصال برقرار نمیشود: بررسی TLS، پورت، path و host در URL.
– ترافیک بهروز نمیشود: بررسی لاگ xray، اسکریپت metering و دسترسی پنل به منابع گزارش.
– لینک subscription خالی یا ناقص: بررسی endpoint تولید subscription و encoding (Base64).
– خطاهای CORS/Proxy: اگر از reverse proxy استفاده میکنید، هدرهای WebSocket و TLS را چک کنید.





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