Skip to content

Latest commit

 

History

History
553 lines (319 loc) · 71.3 KB

GUIDE.md

File metadata and controls

553 lines (319 loc) · 71.3 KB

راهنمای کامل نوا سرور (⁦Nova Server⁩)

⁦Nova Server⁩ یک ⁦VPS⁩ ساده لینوکسی را به یک نود پروکسی خصوصی و مقاوم در برابر فیلترینگ تبدیل می‌کند، همراه با یک پنل مدیریت کامل. جایی که ⁦Nova Proxy⁩ روی لایه رایگان ⁦Cloudflare⁩ اجرا می‌شود، ⁦Nova Server⁩ نسخه خودمیزبان و قدرتمندتر است: یک هسته پروکسی واقعی با هر آنچه یک اپراتور جدی نیاز دارد. زیر کاپوت، ⁦Xray-core⁩، ⁦sing-box⁩ (برای ⁦Hysteria2⁩) و ⁦AmneziaWG⁩ را پشت یک پورت اجرا می‌کند، به‌همراه دو سرویس مستقل ⁦mieru⁩ و پروکسی ⁦MTProto⁩ تلگرام، و همه را با یک ایجنت خودمیزبان مدیریت می‌کند.

این راهنما شما را قدم‌به‌قدم از تهیه ⁦VPS⁩ تا مدیریت روزانه می‌برد. در انتها یک بخش «سوالات متداول» آمده است. اگر تا حالا سرور راه نینداخته‌اید هم نگران نباشید؛ هر کلمه فنی همان اولین بار توضیح داده می‌شود.


پیش‌نیازها

  • یک ⁦VPS⁩ با ⁦Ubuntu 20.04⁩ به بالا یا ⁦Debian 11⁩ به بالا (معماری ⁦x86_64⁩ یا ⁦arm64⁩). ⁦VPS⁩ یک کامپیوتر کوچک است که روی اینترنت اجاره می‌کنید و همیشه روشن است، تا کاربران بتوانند شبانه‌روز به آن وصل شوند. هر ارائه‌دهنده‌ای کار می‌کند؛ یک سرور ساده (حدود ۴ تا ۶ دلار در ماه) کافی است.
  • دسترسی ⁦root⁩ به سرور (بالاترین سطح دسترسی که اجازه نصب می‌دهد).
  • (اختیاری) یک دامنه. فقط برای گرفتن گواهی معتبر و ⁦Mini App⁩ تلگرام لازم می‌شود. برای شروع به دامنه نیاز ندارید؛ نود روی ⁦IP⁩ خودش کار می‌کند و اپ ⁦Nova⁩ باز هم وصل می‌شود.

گام ۱ - نصب نود

روی یک سرور تازه ⁦Ubuntu 20.04⁩ به بالا یا ⁦Debian 11⁩ به بالا، فقط همین یک دستور را اجرا کنید:

bash <(curl -fsSL https://raw.githubusercontent.com/IRNova/Nova-Server/main/nova-node.sh)

اگر تا حالا از ⁦SSH⁩ استفاده نکرده‌اید (که فقط راهی برای تایپ‌کردن دستور روی سرور است)، بیشتر ارائه‌دهنده‌ها یک دکمه ⁦Console⁩ در مرورگر دارند؛ همان را باز کنید، دستور بالا را بچسبانید و ⁦Enter⁩ بزنید.

نصب‌کننده اول چند سوال کوتاه می‌پرسد و زدن ⁦Enter⁩ برای پذیرفتن پیش‌فرض‌ها کافی است:

  • دامنه: اگر دامنه دارید، به‌صورت خودکار یک گواهی رایگان ⁦Let's Encrypt⁩ برایش گرفته می‌شود. اگر دامنه ندارید هم مشکلی نیست: نود روی ⁦IP⁩ خودش با یک گواهی خودامضا (⁦self-signed⁩) کار می‌کند.
  • مسیر مخفی پنل: با زدن ⁦Enter⁩ یک مسیر تصادفی ساخته می‌شود، می‌توانید مسیر دلخواه خودتان را بنویسید، یا با نوشتن ⁦none⁩ پنل را روی ریشه نگه دارید.
  • پورت اضافی پنل: در صورت تمایل، یک پورت ⁦HTTPS⁩ جداگانه برای پنل (مثلا ⁦2053⁩). پورت در فایروال به‌صورت خودکار باز می‌شود.

سپس هسته‌های پروکسی، پنل و بک‌اندهای تونل راه‌اندازی می‌شوند و آدرس پنل (همراه با مسیر مخفی) نمایش داده می‌شود. حتما آن آدرس را ذخیره کنید.

برای نصب اسکریپتی و بدون سوال، همه‌چیز را با متغیرهای محیطی تنظیم کنید: ⁦NOVA_DOMAIN⁩، ⁦NOVA_DOMAIN_EMAIL⁩، ⁦NOVA_PANEL_PATH⁩ (یا ⁦none⁩)، ⁦NOVA_PANEL_PORT⁩، ⁦NOVA_ADMIN_PASS⁩ و برای رد شدن از همه سوال‌ها ⁦NOVA_NO_PROMPT=1⁩.

بدون رایانه؟ می‌توانید کل نود را از گوشی راه بیندازید. هنگام ساخت ⁦VPS⁩ در اپ یا سایت ارائه‌دهنده، همین دستور را در کادر ⁦User data⁩ یا ⁦Cloud-init⁩ بچسبانید. سرور خودش هنگام اولین بوت ⁦Nova⁩ را نصب می‌کند (حدود ۳ تا ۵ دقیقه)، بعد آدرس ⁦https://YOUR_SERVER_IP⁩ را در مرورگر گوشی باز کنید و رمز بگذارید. راه ساده‌تر: از ربات نصب‌کننده تلگرام استفاده کنید (گام ۱۳ را ببینید).


گام ۲ - اولین ورود و بازیابی دسترسی

نصب‌کننده آدرس پنل و رمز مدیریت را چاپ می‌کند. آدرس شامل مسیر مخفی پنل است؛ هر دو را در جای امن نگه دارید و با همان رمز وارد شوید.

آدرس یا مسیر مخفی پنل را گم کرده‌اید؟ روی سرور ⁦nova-access⁩ را اجرا کنید؛ آدرس فعلی را بدون تغییر رمز یا احراز هویت دومرحله‌ای نشان می‌دهد.

اگر رمز را فراموش کرده‌اید، آن را بازنشانی کنید:

nova-passwd 'YourNewPassword'

فقط اگر دسترسی به برنامهٔ رمزساز را هم از دست داده‌اید، گزینهٔ ⁦--clear-2fa⁩ را به دستور بازنشانی رمز اضافه کنید. این کار محافظت دومرحله‌ای را حذف می‌کند؛ پس از ورود دوباره آن را فعال کنید.

پنل بعد از تغییر دامنه، ⁦Cloudflare⁩ یا ⁦SSL⁩ اصلاً جواب نمی‌دهد؟ دسترسی را از روی سرور و بدون پنل بازیابی کنید. ⁦nova-access⁩ آدرس فعلی پنل و حالت ⁦TLS⁩ را چاپ می‌کند، و ⁦--reset⁩ نود را به حالت خودامضا بدون دامنه برمی‌گرداند (همه‌چیز به ⁦IP⁩ سرور برمی‌گردد)، بعد هستهٔ نود را ری‌استارت می‌کند:

nova-access            # نمایش آدرس فعلی پنل و حالت TLS
nova-access --reset    # بازگشت به نود خودامضا بدون دامنه

مسیر مخفی یا پورت پنل را هم می‌توانید همین‌جا عوض کنید: ⁦nova-access --path <path|none>⁩ و ⁦nova-access --port <n|none>⁩.


گام ۳ - نگاهی به پنل

بعد از ورود، داشبورد را می‌بینید: نمودارهای ترافیک، وضعیت سرویس و دسترسی سریع به همه بخش‌ها. پنل سه‌زبانه است (⁦English⁩، فارسی راست‌به‌چپ و ⁦Русский⁩) و تم روشن و تیره دارد.

بخش‌های اصلی که با آن‌ها سروکار دارید:

  • ⁦Users⁩ (کاربران): ساخت و مدیریت کاربرها، سهمیه حجم، انقضا و لینک اشتراک.
  • ⁦Inbounds⁩ (ورودی‌ها): ساخت پروتکل‌ها و نقاط ورود، همراه با نمودار ترافیک روزانه هر ورودی.
  • ⁦Nodes⁩ (نودها): مدیریت ناوگان چندنودی.
  • ⁦Tunnels⁩ (تونل‌ها): ساخت پل ایران.
  • ⁦Settings⁩ (تنظیمات): دامنه و ⁦SSL⁩، امنیت، دسترسی پنل، خودکارسازی و بقیه تنظیمات.

خود پنل یک راهنمای راه‌اندازی گام‌به‌گام مفصل هم به‌صورت داخلی دارد (بالای راهنمای داخل پنل)، به هر سه زبان. اگر جایی گیر کردید، اول همان را ببینید.

اگر صفحه‌ای را پیدا نمی‌کنید، احتمالا پنل در حالت ساده است. حالت ساده صفحه‌های مسیریابی، خروجی‌ها، آی‌پی‌های تمیز، تونل، ناوگان و تنظیمات ⁦Xray⁩ را پنهان می‌کند و از نسخه ۱.۶۱ داشبورد خودش می‌گوید کدام صفحه‌ها پنهان‌اند، با یک دکمه برای نشان دادن همه. پس تفاوت «این پنل آن را ندارد» با «این پنل آن را نشان نمی‌دهد» همیشه روشن است.


گام ۴ - راه‌انداز خودکار (⁦Setup Wizard⁩)

بعد از تعیین رمز، راه‌انداز خودکار خودش باز می‌شود و ساده‌ترین راه شروع است. پنج سوال می‌پرسد: این سرور برای کیست، کاربران از کجا وصل می‌شوند، چطور به سرور می‌رسند، سرور دومی دارید یا نه، و چه کسانی از آن استفاده می‌کنند. بعد خودش کار را انجام می‌دهد: اگر دامنه داده باشید گواهی را می‌گیرد، در صورت نیاز دستور یک‌خطی پل ایران یا نود دوم را آماده می‌کند، پیکربندی را می‌نویسد، حساب‌ها را می‌سازد و در پایان برای هر نفر یک لینک اشتراک و کد ⁦QR⁩ می‌دهد.

از هر سوال می‌شود رد شد و پیش‌فرضِ آن سوال پیش از تایید نشان داده می‌شود، و تا وقتی صفحه مرور را تایید نکنید هیچ‌چیز روی سرور نوشته نمی‌شود. راه‌انداز همیشه از داشبورد هم در دسترس است.

حالت ساده. یک نود تازه در حالت ساده بالا می‌آید: صفحه‌های روزمره سر جایشان هستند و بخش‌های موتور کنار گذاشته می‌شوند، چون راه‌انداز آن‌ها را برایتان تنظیم می‌کند. اگر چیزی را می‌خواهید که ویزارد نمی‌پرسد، در ⁦Settings⁩ گزینه نمایش صفحه‌های پیشرفته را روشن کنید تا سازنده قوانین مسیریابی، خروجی‌های دلخواه، تونل‌ها، تنظیمات موتور ⁦Xray⁩، نماینده‌ها و توکن‌های ⁦API⁩ برگردند. این سوییچ هیچ تنظیمی را عوض نمی‌کند، فقط تعیین می‌کند کدام صفحه‌ها فهرست شوند، و نودی که از قبل وجود داشته همه صفحه‌هایش را نگه می‌دارد.


گام ۵ - دامنه و ⁦SSL⁩ (اختیاری ولی توصیه‌شده)

دامنه (یک نشانی وب مثل ⁦vpn.example.com⁩) و گواهی ⁦SSL⁩ (همان قفلی که اتصال را مطمئن می‌کند) اختیاری‌اند. بدون آن‌ها، نود شما روی ⁦IP⁩ کار می‌کند و اپ ⁦Nova⁩ باز هم وصل می‌شود. با یک دامنه، پنل به‌صورت خودکار یک گواهی رایگان می‌گیرد.

⁦Nova Server⁩ سه راه برای گواهی دارد و هر سه خودکار تمدید می‌شوند:

  • ⁦Let's Encrypt⁩ یک‌کلیکی: ساده‌ترین راه. فقط سه چیز باید درست باشد و پنل هر سه را با نشانی خود سرور به شکل مرحله‌های شماره‌دار نشان می‌دهد: (۱) یک رکورد ⁦A⁩ برای دقیقا همان نام که به این سرور اشاره کند؛ یک ساب‌دامین کافی است و لازم نیست ⁦DNS⁩ آن روی ⁦Cloudflare⁩ باشد. (۲) اگر نام روی ⁦DNS⁩ کلودفلر است، ابر خاکستری؛ با ابر نارنجی، ⁦Cloudflare⁩ به‌جای سرور شما به چالش جواب می‌دهد و صدور گواهی شکست می‌خورد. (۳) پورت ⁦TCP⁩ ۸۰ از بیرون در دسترس باشد؛ نوا فایروال خود سرور را باز می‌کند و ⁦Xray⁩ را هم خودش کنار می‌زند، اما فایروال یا ⁦security group⁩ ارائه‌دهنده هم باید اجازه بدهد.
  • ⁦Cloudflare⁩ کاملا خودکار: ⁦DNS⁩ خودکار به‌همراه وایلدکارت. برای این روش یک توکن ⁦API⁩ می‌چسبانید؛ آن را در بخش ⁦Zone Resources⁩ به همان یک زون محدود کنید، چون نوا هیچ‌وقت به بقیه حساب کاری ندارد.
  • گواهی ⁦Origin⁩: اگر گواهی خودتان را دارید، می‌چسبانید.

حساب ⁦Cloudflare⁩ لازم نیست. برای اینکه یک ساب‌دامین را به نودتان اشاره بدهید و گواهی بگیرید، ⁦Let's Encrypt⁩ کافی است. کارت ⁦Cloudflare⁩ داخل فرم دامنه یک نشان «اختیاری» دارد و فقط برای روش خودکار کلودفلر یا وقتی می‌خواهید ⁦DNS⁩ را از پنل مدیریت کنید به کارتان می‌آید.

نود بدون دامنه هم گواهی دارد، یک گواهی خودامضا که لینک اشتراک از روی آن گرفته می‌شود، پس تشریفاتی نیست: اگر خراب باشد، اپ‌ها لینک را وارد نمی‌کنند و چند پروتکل وصل نمی‌شوند. از نسخه ۱.۶۱ صفحه دامنه به نودی که دامنه ندارد می‌گوید گواهی‌اش معتبر است یا نه و اگر نیست چرا (نبودن، خرابی، انقضا، صادر شدن برای آدرس دیگر)، و کنارش دکمه‌ای برای صدور گواهی تازه هست که پیش از اعلام موفقیت نتیجه را بررسی می‌کند. به نودی که گواهی واقعی دارد دست نمی‌زند.

دامنه‌های اضافه. لازم نیست به یک نشانی بسنده کنید. در ⁦Settings⁩ > دامنه‌ها و آدرس‌ها می‌توانید تا ۲۰ دامنه یا زیردامنه دیگر اضافه کنید. هرکدام گواهی خودش را می‌گیرد و خودکار تمدید می‌شود، و هر آدرسی که سالم باشد به‌عنوان یک نشانی جایگزین در اشتراک کاربران منتشر می‌شود، پس اگر یکی مسدود شد بقیه کار می‌کنند.

می‌توانید این مرحله را رد کنید و بعدا از بخش تنظیمات اضافه کنید.

صفحه سلامت. پنل یک بررسی سلامت دارد که پیکربندی واقعی سرور را می‌خواند و مشکل‌ها را با نام و راه‌حل نشان می‌دهد: پورتی که فایروال نمی‌بندد، دامنه‌ای که پشت ابر نارنجی ⁦Cloudflare⁩ است و نباید باشد، اشتراکی که برای بعضی کلاینت‌ها خالی درمی‌آید، و مانند این‌ها. بیشتر یافته‌ها یک دکمه اصلاح کنارشان دارند. بعد از هر تغییر مهمی یک‌بار اجرایش کنید.


گام ۶ - افزودن کاربر و گرفتن لینک اشتراک

سریع‌ترین راه: در نصب تازه، ⁦Nova⁩ همین حالا یک کاربر آغازین با نام ⁦me⁩ را با دسترسی به همهٔ پروتکل‌ها ساخته است. کافی است در داشبورد اصلی کارت «اتصال سریع» را پیدا کنید و کد ⁦QR⁩ آن را با اپ ⁦Nova⁩ یا ⁦Hiddify⁩ اسکن کنید، با یک اسکن آنلاین می‌شوید. لازم نیست چیزی را دستی کپی کنید.

وقتی کاربر بیشتری می‌خواهید، در بخش ⁦Users⁩ یک کاربر اضافه کنید و لینک اشتراک (⁦subscription⁩) او را کپی کنید. لینک اشتراک یک لینک است که همه تنظیمات اتصال را در خود دارد و خودش به‌روز می‌ماند. آن را در اپ ⁦Nova⁩ باز کنید، کد ⁦QR⁩ را با گوشی اسکن کنید، یا در یک کلاینت معمولی مثل ⁦v2rayNG⁩، ⁦sing-box⁩ یا ⁦Clash⁩ بچسبانید. آنلاین شدید.

⁦Nova Server⁩ کنترل کامل هر کاربر را می‌دهد:

  • سقف حجم: کل، یا جدا برای دانلود و آپلود.
  • انقضا: تاریخ ثابت، یا از اولین اتصال.
  • محدودیت دستگاه/⁦IP⁩: تعداد دستگاه هم‌زمان.
  • بازنشانی حجم: روزانه، هفتگی یا ماهانه.
  • دسترسی پروتکل و ورودی هر کاربر: هر کاربر فقط به پروتکل‌های مجازش وصل می‌شود.
  • پلن‌های ذخیره‌شده: یک مجموعه محدودیت قابل‌استفاده مجدد (مثلا ۳۰ روز / ۵۰ گیگ / ۳ دستگاه) که روی یک یا چند کاربر اعمال می‌شود.
  • عملیات گروهی: فعال‌سازی، غیرفعال‌سازی، تمدید، بازنشانی، اعمال پلن یا حذف روی چند کاربر انتخاب‌شده با هم.
  • جستجو و صفحه‌بندی: نام، ایمیل یا شناسهٔ یک مشتری را در جعبهٔ جستجوی بالای فهرست بنویسید تا فهرست به همان شخص محدود شود، و تعیین کنید هر صفحه ۱۰، ۲۵، ۵۰، ۱۰۰ یا همه را نشان دهد.
  • ورود/خروج ⁦CSV⁩: فهرست کاربران را دسته‌ای وارد یا خارج کنید (به‌روزرسانی خودکار بر اساس نام).

لینک اشتراک هر کاربر یک صفحه مصرف زنده، کد ⁦QR⁩ و فرمت‌های ⁦Clash/Mihomo⁩ و ⁦sing-box⁩ هم دارد. اگر به کاربری ورودی ⁦SOCKS⁩ یا ⁦HTTP⁩ داده باشید، همان صفحه آدرس، پورت، نام کاربری و رمز هر پروکسی را با دکمه کپی جداگانه فهرست می‌کند، چون این پروتکل‌ها لینک اشتراک‌گذاری ندارند و باید دستی در تنظیمات مرورگر یا گوشی وارد شوند. پروکسی‌ای که ⁦UDP⁩ ندارد مشخص می‌شود.

نرخ مصرف. اگر می‌خواهید بابت هر گیگابایت قیمت داشته باشید، کارت نرخ مصرف در ⁦Settings⁩ (بالای «امنیت حساب») همه ورودی‌های ⁦xray⁩ به‌علاوه ⁦Hysteria2⁩ و ⁦TUIC⁩ را پوشش می‌دهد. ⁦AmneziaWG⁩، ⁦mieru⁩ و پروکسی تلگرام نرخ جدای خودشان را روی کارت خودشان در صفحه ورودی‌ها دارند. هر دو از جستجوی پنل پیدا می‌شوند.


گام ۷ - پروتکل‌ها و ورودی‌ها

پروتکل‌ها را در صفحه ⁦Inbounds⁩ می‌سازید. ⁦Nova Server⁩ همه پروتکل‌های مهم را روی یک صفحه مدیریت می‌کند:

  • ⁦VLESS⁩، ⁦VMess⁩، ⁦Trojan⁩، ⁦Shadowsocks-2022⁩
  • ⁦VLESS-Reality⁩ (با ⁦XTLS-Vision⁩)
  • ⁦Hysteria2⁩، ⁦TUIC v5⁩، ⁦NaiveProxy⁩
  • ⁦WireGuard⁩ بومی و ⁦AmneziaWG⁩
  • ⁦SOCKS⁩، ⁦HTTP⁩ و فوروارد (⁦dokodemo-door⁩) برای کارهای داخلی
  • ⁦mieru⁩ و پروکسی ⁦MTProto⁩ تلگرام، به‌صورت دو سرویس مستقل

ترنسپورت‌های در دسترس: ⁦TCP⁩، ⁦WebSocket⁩، ⁦gRPC⁩، ⁦XHTTP⁩، ⁦HTTPUpgrade⁩ و ⁦mKCP⁩، روی ⁦TLS⁩ یا ⁦Reality⁩.

پورت دلخواه برای ⁦XHTTP⁩ و ⁦HTTPUpgrade⁩. فهرست پورت‌های این دو یک پیشنهاد است، نه یک محدودیت: سرور هیچ‌وقت پورت را محدود نکرده و آن فهرست فقط پورت‌هایی است که ⁦Cloudflare⁩ فوروارد می‌کند. آخرین گزینه فهرست پورت دلخواه است و یک کادر برای هر عددی از ۱ تا ۶۵۵۳۵ باز می‌کند. جایی از آن استفاده کنید که ترافیک مستقیم به سرور شما می‌رسد و از ⁦Cloudflare⁩ رد نمی‌شود: دامنه با ابر خاکستری، آدرس بدون دامنه، یا یک ⁦CDN⁩ دیگر. پورتی که سرویس دیگری از ⁦Nova⁩ گرفته باشد هنگام ذخیره رد می‌شود و همان موقع که تایپ می‌کنید به شما گفته می‌شود.

اگر تازه‌کارید و نمی‌دانید کدام را بسازید، از پیشنهاد راه‌انداز خودکار استفاده کنید. برای مقاومت بالا در برابر فیلترینگ، ⁦VLESS-Reality⁩ و ⁦Hysteria2⁩ گزینه‌های خوبی هستند. در صفحه ورودی‌ها یک نمودار ترافیک روزانه برای هر ورودی هم می‌بینید تا بفهمید کدام نقاط ورود بار بیشتری دارند.

آدرس عمومی هر ورودی (دامنهٔ جدا برای هر کانفیگ): هر ورودی یک فیلد اختیاری «آدرس عمومی» دارد. اگر پرش کنی، لینک‌های اشتراک آن ورودی به‌جای هاست اصلی پنل به همان دامنه یا ⁦IP⁩ وصل می‌شوند، پس هر کانفیگ می‌تواند روی ساب‌دامنهٔ خودش باشد (مثلاً ⁦sub1.example.com⁩). ⁦DNS⁩ آن دامنه را به همین سرور اشاره بده. ⁦SNI⁩ همان فیلد بالای فرم می‌ماند، پس اگر آن دامنه گواهی جدا لازم دارد ⁦SNI⁩ را هم تنظیم کن. خالی بگذاری از هاست اصلی استفاده می‌شود.

⁦Hysteria2⁩ مقاوم‌تر: هنگام ساخت یک ورودی ⁦Hysteria2⁩ سه گزینهٔ اضافه دارید. «پرش پورت (بازهٔ ⁦UDP⁩)» را با یک بازه مثل ⁦40000-50000⁩ و یک فاصلهٔ پرش (مثلا ۳۰ ثانیه) تنظیم کنید تا اتصال روی یک پورت ثابت گیر نکند. «مبهم‌سازی» (⁦Salamander⁩) را با یک رمز مشترک روشن کنید تا ترافیک ⁦QUIC⁩ سخت‌تر انگشت‌نگاری شود. «⁦ECH⁩ (پنهان‌کردن ⁦SNI⁩)» را فعال کنید تا نام دامنه در دست‌دادن ⁦TLS⁩ دیده نشود؛ پنل کلید ⁦ECH⁩ را خودش روی سرور می‌سازد و فقط کانفیگ عمومی‌اش در اشتراک می‌رود، کلید خصوصی هیچ‌وقت به کلاینت نمی‌رسد. کانفیگ کامل پرش پورت و ⁦ECH⁩ فقط در فرمت ⁦sing-box⁩ تحویل داده می‌شود، پس اشتراک را در اپ ⁦sing-box⁩ یا ⁦Hiddify⁩ ایمپورت کنید.

⁦mieru⁩ و پروکسی تلگرام. این دو پایین همان صفحه ⁦Inbounds⁩ هستند، چون همان‌جاست که می‌پرسید این نود چه چیزی سرو می‌کند، ولی ورودی ⁦xray⁩ نیستند و سرویس مستقل خودشان را روی سرور دارند (پس در نصب کانتینری نمایش داده نمی‌شوند و فقط مالک آن‌ها را می‌بیند).

  • ⁦mieru⁩ سربار کمی دارد و پدینگ کمی می‌فرستد، پس تماس و بازی روی آن بهتر از پروتکل‌های سنگین‌تر است. مثل خروجی‌های کشوری برای هر کاربر جداگانه داده می‌شود. اپ خود نوا، ⁦Hiddify⁩، ⁦Karing⁩ و کلاینت خود ⁦mieru⁩ می‌توانند از آن استفاده کنند، پس هیچ‌وقت داخل اشتراک عادی نمی‌آید (کلاینتی که به پروتکل ناشناخته برسد کل پیکربندی را رد می‌کند). کاربری که ⁦mieru⁩ دارد در صفحه اشتراک خودش لینک جداگانه‌ای برای همان اپ‌ها می‌گیرد، و مصرفش از سقف حجم خودش کم می‌شود.
  • پروکسی ⁦MTProto⁩ تلگرام فقط برای تلگرام است و با ⁦FakeTLS⁩ شبیه ترافیک عادی ⁦HTTPS⁩ دیده می‌شود. روشنش کنید، پورتی بدهید که چیز دیگری روی سرور نگرفته باشد، و پنل یک لینک برای اشتراک‌گذاری به شما می‌دهد. برای هر مشتری هم می‌شود آن را در صفحه خودش زیر ⁦Users⁩ روشن کرد؛ آن‌وقت لینکش در صفحه اشتراک خودش می‌آید و ترافیکش از حجم و انقضای همان مشتری کم می‌شود. آن را پشت ابر نارنجی ⁦Cloudflare⁩ نگذارید: ⁦MTProto⁩ پروتکل وب نیست و اتصال شکست می‌خورد.

مسیریابی و خروج: در تنظیمات می‌توانید قوانین نقطه‌ای ⁦geosite/geoip/CIDR⁩/دامنه/پروتکل بگذارید، دسترسی مستقیم ایران و بایپس داخلی را فعال کنید، تبلیغات/تورنت/⁦QUIC⁩ را مسدود کنید و ⁦DNS⁩ امن و ضدتحریم بگذارید. برای خروج ضدفیلترینگ، ⁦WARP⁩ (با لایسنس ⁦WARP+⁩ خودتان)، ⁦Tor⁩ و ⁦Psiphon⁩ به‌صورت داخلی موجودند و می‌توانید هر خروجی را به یک ورودی اختصاص دهید. تونل ⁦AmneziaWG⁩ هم می‌تواند از همین خروجی‌ها بیرون برود: روی کارت ⁦AmneziaWG⁩ خروجی را انتخاب کنید. یک نکته که باید بدانید: ⁦Tor⁩ اصلاً ⁦UDP⁩ عبور نمی‌دهد و ⁦Psiphon⁩ فقط ⁦TCP⁩، پس تا وقتی خروجی انتخاب شده باشد ترافیک غیر ⁦TCP⁩ رد می‌شود به‌جای اینکه پشت سر مشتری از آدرس خود سرور خارج شود. ⁦Tor⁩ و ⁦Psiphon⁩ به سرویس خودشان روی نود نیاز دارند و با انتخاب خروجی خودشان نصب می‌شوند؛ ⁦WARP⁩ به نصب چیزی نیاز ندارد.


گام ۸ - کانفیگ‌های هر اپراتور (اختیاری)

در تنظیمات، گزینه کانفیگ‌های هر اپراتور در اشتراک را روشن کنید تا اشتراک هر کاربر یک کانفیگ اضافه برای هر اپراتور ایرانی بگیرد (ایرانسل، همراه اول، رایتل، شاتل، موبین‌نت)، هرکدام با اثر انگشت ⁦TLS⁩ همان اپراتور تنظیم‌شده و با برچسب اپراتور. کاربران روی کلاینت‌های معمولی (⁦v2rayNG⁩، ⁦sing-box⁩، ⁦Clash⁩) فقط همان کانفیگی را که با سیم‌کارتشان می‌خواند انتخاب می‌کنند، بدون نیاز به اپ خاص. این گزینه به‌صورت پیش‌فرض خاموش است و روی فرمت‌های ساده، ⁦Clash⁩ و ⁦sing-box⁩ اعمال می‌شود.


گام ۹ - ناوگان چندنودی (چند سرور از یک پنل)

دیگر لازم نیست روی هر سرور یک پنل کامل نصب کنید. پنل را یک بار روی سرور اصلی نصب کنید و ناوگان را از همان‌جا گسترش دهید:

۱. در پنل اصلی، صفحه ⁦Nodes⁩ را باز کنید و روی افزودن نود با یک دستور بزنید.

۲. تک‌خطی را که به شما می‌دهد روی یک ⁦VPS⁩ تازه اجرا کنید:

NOVA_JOIN_URL='https://your-panel' NOVA_JOIN_TOKEN='njt_...' bash <(curl -fsSL https://raw.githubusercontent.com/IRNova/Nova-Server/main/nova-node.sh)

سرور جدید در حالت نود مدیریت‌شده نصب می‌شود: پنل مستقلی ندارد (فقط یک صفحه ساده، بدون امکان ورود)، خودش را خودکار به پنل اصلی معرفی می‌کند و از آن به بعد همه‌چیز (کاربران، ترافیک، همه‌چیز) از داخل پنل اصلی کنترل می‌شود. توکن اتصال یک‌بارمصرف است و بعد از ۲۴ ساعت منقضی می‌شود. این کار چه نود دامنه داشته باشد و چه روی یک ⁦IP⁩ ساده با گواهی خودامضا اجرا شود کار می‌کند. اتصال روی ⁦TLS⁩ تاییدشده انجام می‌شود و توکن در مسیر قابل‌شنود نیست.

اگر ثبت‌نام کامل نشود، چیزی از دست نمی‌رود. معمولا علتش این است که پورت ۴۴۳ روی نود جدید هنوز به‌روی اینترنت باز نیست. در آن حالت نود در صفحه ⁦Nodes⁩ با وضعیت در انتظار و همراه دلیلش نمایش داده می‌شود. پورت ۴۴۳ را باز کنید و ⁦Test⁩ را بزنید، یا دستی اضافه‌اش کنید. نودی که در ثبت‌نام ناموفق بماند قفل نمی‌شود و به‌صورت یک پنل مستقل عادی باقی می‌ماند.

کاربران و پروتکل‌ها مرکزی‌اند و روی نودها قرار می‌گیرند. شما هیچ‌وقت مستقیم یک نود را مدیریت نمی‌کنید. کاربرها را در صفحه ⁦Users⁩ و پروتکل‌ها را در صفحه ⁦Inbounds⁩ مثل همیشه بسازید، و هنگام افزودن یک پروتکل با ⁦Run on⁩ انتخاب کنید کجا اجرا شود: این سرور اصلی، یک نود، یا همه نودها. کانفیگ اشتراک هر کاربر از ⁦IP⁩ همان نود استفاده می‌کند. در صفحه ⁦Users⁩ انتخاب می‌کنید هر کاربر کدام نودها را بگیرد: زیر نودهای این کاربر نودهای مشخصی را تیک بزنید، یا دسترسی به همه نودها را روشن کنید.

حالت تاب‌آوری (پخش خودکار روی همه‌جا). اگر نمی‌خواهی برای هر پروتکل و هر کاربر دستی جای‌گذاری کنی، بالای صفحه ⁦Nodes⁩ «حالت تاب‌آوری» را روشن کن. با یک سوییچ، هر پروتکل هم روی سرور اصلی و هم روی همهٔ نودها اجرا می‌شود و اشتراک هر کاربر هر کانفیگ را یک‌بار به‌ازای هر سرور و یک‌بار به‌ازای هر پل ایران دارد. کلاینت خودکار ⁦url-test⁩ می‌کند و اگر یک ⁦IP⁩ مسدود شد به سرور زندهٔ بعدی می‌رود، پس یک مسدودی هیچ کاربری را آفلاین نمی‌کند. به هر پروتکل یک پورت یکتا بده. توجه: بعد از این هر نود کلید همهٔ پروتکل‌ها و اعتبار کاربران را دارد، پس فقط روی نودهایی روشنش کن که به‌اندازهٔ سرور اصلی به آن‌ها اعتماد داری.

حذف یا بازیابی یک نود. در صفحه ⁦Nodes⁩ روی ⁦Remove⁩ بزنید تا نود از ناوگان خارج شود. گزینه حذف کامل نوا از آن سرور را هم بزنید تا نود خودش را کامل پاک کند. برای تبدیل یک نود مدیریت‌شده به پنل مستقل عادی، روی آن سرور از طریق ⁦SSH⁩ دستور زیر را اجرا کنید:

nova-unlock 'YourNewPassword'

گام ۱۰ - تونل‌های پل ایران

می‌خواهید یک ⁦IP⁩ تمیز داخل ایران جلوی خروج خارجی‌تان قرار بگیرد، بدون نصب کل استک روی سرور ایران؟ لازم نیست:

۱. در پنل نود خارجی (خروج)، بخش ⁦Tunnels⁩ را باز کنید، تونل را تنظیم کنید و روی ساخت دستور پل ایران بزنید.

۲. آن دستور تک‌خطی را روی ⁦VPS⁩ ایران اجرا کنید. فقط بک‌اند تونل نصب می‌شود (⁦Backhaul⁩، ⁦BackPack⁩، ⁦rathole⁩ یا ⁦wstunnel⁩) و به‌صورت یک سرویس (⁦nova-tunnel⁩) بالا می‌آید. نه ⁦xray⁩، نه ⁦sing-box⁩، نه پنل.

کاربران شما به ⁦IP⁩ تمیز ایران وصل می‌شوند و ترافیک از آنجا به خروج خارجی تونل می‌شود. تونل هم ⁦TCP⁩ و هم ⁦UDP⁩ را منتقل می‌کند تا ⁦Hysteria2⁩ کار کند. این دستور راز مشترک تونل را در خود دارد، پس آن را خصوصی نگه دارید. تونل چندگانه (پل‌های جایگزین): می‌توانید چند پل ایران داشته باشید تا اگر یکی افتاد، اتصال قطع نشود. چند ⁦VPS⁩ ایران را با همان دستور پل بالا بیاورید (همه باید همان توکن، همان ترنسپورت و همان پورت‌های فوروارد را داشته باشند، یعنی آینهٔ هم باشند)، بعد در بخش ⁦Tunnels⁩ نود خروج، در فیلد «پل‌های جایگزین (اختیاری)» آدرس بقیهٔ پل‌ها را (هر کدام یک خط) بگذارید. خروج به همهٔ پل‌ها هم‌زمان وصل می‌شود و اشتراک هر کاربر هر لینک را یک‌بار به‌ازای هر پل می‌سازد، پس اگر ⁦IP⁩ یک پل مسدود شد، کلاینت خودکار سراغ پل زندهٔ بعدی می‌رود.

کدام لینک‌ها از پل بروند. دکمه همه لینک‌های کاربران را به پل وصل کن هر ورودی روی پورت فورواردشده را به پل می‌برد و از نسخه ۱.۵۶ فهرست می‌کند کدام ورودی منتقل شد و کدام نه و چرا (پورتش جزو پورت‌های فورواردشده نیست، آدرس عمومی خودش را دارد، یا روی نود ناوگان است). اگر فقط یک ورودی را می‌خواهید از تونل ببرید، از نسخه ۱.۵۹ پل یکی از آدرس‌های عمومی قابل انتخاب در فرم ورودی است: آن را برای همان ورودی انتخاب کنید تا فقط کانفیگ‌های آن به پل اشاره کنند و بقیه مستقیم به سرور وصل بمانند. دکمه همه لینک‌ها را از پل بردار کنار دکمه اول نشسته و کار آن را برمی‌گرداند، جز ورودی‌هایی که خودتان آدرسشان را پل گذاشته‌اید. انتخاب پل هیچ‌وقت ⁦SNI⁩ را جابه‌جا نمی‌کند؛ فقط آدرسی که کلاینت می‌گیرد عوض می‌شود.

حالت «تاییدنشده» تونل خطا نیست: یعنی مسیر داده تایید شده ولی نوا نتوانسته نسخه بیلد آن سر را بخواند، معمولا چون برنامه دیگری پورت ۴۴۳ سرور خروج را دارد. از نسخه ۱.۵۷ تونل روی نودهایی که مسیر مخفی پنل دارند هم تایید می‌شود و پنل اگر باز هم نتواند، کد جوابی که برگشته و اینکه مسیر ⁦/install/status⁩ را کجا رد کنید می‌گوید.

برای حذف پل بعدا این را اجرا کنید:

systemctl disable --now nova-tunnel

گام ۱۱ - تونل ⁦DNS⁩ (آخرین راه)

⁦Nova⁩ یک تونل ⁦DNS⁩ داخلی و اختیاری دارد که ترافیک را داخل کوئری‌های ⁦DNS⁩ جابه‌جا می‌کند. چون روی ⁦DNS⁩ سوار می‌شود، وقتی همه‌چیز مسدود است ولی ⁦DNS⁩ هنوز جواب می‌دهد باز هم کار می‌کند؛ پس آخرین راه انتقال است، برای وقتی که هیچ روش دیگری رد نمی‌شود.

موتور تونل را در همان کارت انتخاب می‌کنید:

  • ⁦MasterDnsVPN⁩ گزینه پیش‌فرض و ساده است.
  • ⁦CottenDns⁩ موتور تواناتر است و برای شبکه‌های بسیار پرافت یا به‌شدت پایش‌شده ساخته شده: ترابری ⁦resolver⁩ از نوع ⁦DNS-over-TLS⁩ و ⁦DNS-over-HTTPS⁩، توزیع بار روی چند ⁦resolver⁩ و بازیابی از افت بسته را اضافه می‌کند. هیچ‌وقت پورت ۴۴۳ را نمی‌گیرد، پس در کنار پنل کار می‌کند.

هر دو روی پورت ۵۳ گوش می‌دهند، پس هر بار فقط یکی اجرا می‌شود. آن را در پنل از بخش ⁦Settings⁩ روشن کنید. به یک زیردامنه نیاز دارد که با یک رکورد ⁦NS⁩ به نود شما واگذار شده باشد. اگر دامنه‌تان روی ⁦Cloudflare⁩ است، پنل می‌تواند این واگذاری را خودکار بسازد؛ در غیر این صورت راهنمای داخل پنل رکوردهای دستی ⁦A⁩ و ⁦NS⁩ را قدم‌به‌قدم نشانتان می‌دهد. این یک پروتکل جداست: کاربران با کلاینت خودِ موتور وصل می‌شوند (⁦MasterDnsVPN⁩ یا ⁦CottenDns⁩)، نه با اپلیکیشن ⁦Nova⁩. پنل کانفیگ کلاینت را می‌سازد و خروجی می‌گیرد.


گام ۱۲ - امنیت (پنل مخفی، نگهبان ورود، وب‌هوک‌ها و ۲⁦FA⁩)

⁦Nova Server⁩ چند لایه امنیتی دارد:

  • پنل پشت مسیر مخفی: در نصب تازه، پنل پشت یک زیرمسیر مخفی تصادفی مثل ⁦https://server/p-a1b2c3/⁩ قرار می‌گیرد و هر مسیر دیگری فقط یک ۴۰۴ ساده برمی‌گرداند، تا اسکنرهایی که ⁦IP⁩ یا دامنه شما را می‌کاوند چیزی نبینند (همان ایده ⁦web base path⁩ در ⁦3x-ui⁩ و ⁦Marzban⁩). هر وقت خواستید در ⁦Settings⁩ > عمومی > دسترسی پنل مسیر را عوض کنید، پاکش کنید تا پنل به ریشه برگردد، یا یک پورت ⁦HTTPS⁩ جداگانه بدهید.
  • نگهبان ورود (⁦Login guard⁩): سپری به سبک ⁦fail2ban⁩ برای ورود به پنل. پس از تلاش‌های ناموفق زیاد از یک ⁦IP⁩ در یک بازه، آن ⁦IP⁩ برای مدتی مسدود می‌شود تا حدس‌زدن رمز به جایی نرسد. به‌صورت پیش‌فرض روشن است؛ تعداد تلاش، بازه و مدت مسدودی قابل تنظیم است و همان صفحه (در ⁦Settings⁩ > امنیت) هر مسدودی فعال را با رفع مسدودی یک‌کلیکی نشان می‌دهد.
  • وب‌هوک‌ها (⁦Webhooks⁩): یک ⁦POST⁩ کوچک ⁦JSON⁩ امضاشده به آدرس خودتان می‌فرستد وقتی روی نود اتفاقی می‌افتد: کاربری ساخته، ویرایش یا حذف می‌شود، منقضی می‌شود یا به سقف مصرف می‌رسد؛ نودی ثبت می‌شود؛ یا یک ⁦IP⁩ مسدود می‌شود. با تنظیم یک راز، ⁦Nova⁩ بدنه را با ⁦HMAC-SHA256⁩ امضا می‌کند و در هدر ⁦X-Nova-Signature⁩ می‌فرستد تا گیرنده مطمئن شود فراخوان واقعا از نود شما آمده. دکمه ⁦Test⁩ یک نمونه ارسال می‌کند.
  • چند مدیر: از نسخه ۱.۵۸ دو سطح مدیر دارید. مدیر سطح ۱ یک نفر دوم با اختیارات مالک است، برای کسی که به او اعتماد دارید تا نود را با شما بگرداند: به هر چیزی که شما دسترسی دارید دسترسی دارد، حتی می‌تواند نود را بازنشانی کند، پس پنل پیش از انتصاب رمز خودتان را می‌خواهد و فقط شما می‌توانید او را تعیین، ارتقا یا حذف کنید. دو کار را عمدا نمی‌تواند بکند: آدرس، پورت، مسیر مخفی یا دامنه پنل را عوض کند (هرکدام می‌تواند شما را از پنل خودتان بیرون بیندازد) و توکن ⁦API⁩ با اختیارات شما بسازد. حذفش، توکن‌ها و نودها و وب‌هوک‌هایی را که خودش ساخته هم پاک می‌کند. مدیر سطح ۲ همان نقش «مدیر» قبلی است با دسترسی محدودتر.
  • نماینده‌ها (⁦reseller⁩): نماینده فقط مشتری‌های خودش را می‌بیند و روی ورودی‌های شما می‌فروشد. جزئیاتش در بخش بعدی همین گام آمده است.
  • احراز هویت دومرحله‌ای (۲⁦FA⁩): با ⁦Google Authenticator⁩ یک کد ۶ رقمی هنگام ورود اضافه کنید، برای هر مدیر جداگانه.

نماینده‌ها، دقیق‌تر. بخش نماینده‌ها در نسخه‌های ۱.۵۶ تا ۱.۶۰ بر اساس گزارش اپراتورها بازسازی شد. هر نماینده هنگام ساخت یکی از دو حالت را می‌گیرد و بعدا عوض نمی‌شود:

  • طرح‌محور: از طرح‌هایی که شما «قابل فروش» علامت زده‌اید، در برابر یک اعتبار پیش‌پرداخت می‌فروشد. حالت پیش‌فرض و همان روش قدیمی.
  • حجمی: یک سقف حجم و یک سقف تعداد مشتری می‌گیرد و هر مشتری را خودش با پنجره کامل ساخت کاربر می‌سازد، محدود به همان سقف و به چیزهایی که شما به او داده‌اید. سقف حجم روی حجمی که اختصاص داده حساب می‌شود، نه مصرف، پس نمی‌تواند بیشتر از آنچه دارد وعده بدهد. فروش بیشتر از سقف فقط هشدار می‌گیرد تا مشتری‌ای که پولش را داده وسط کار متوقف نشود، ولی به‌محض اینکه مشتری‌هایش روی هم به اندازه سقف مصرف کردند، همه آن‌ها تا وقتی حجم بیشتری به او بفروشید متوقف می‌شوند و شما در فهرست نماینده‌ها نشان «معلق» را می‌بینید. مشتری بدون سقف حجم اصلا نمی‌تواند بفروشد. خرید حجم تازه همان‌جایی است که تعیین می‌کنید مشتری‌های او حداکثر چند روز اعتبار داشته باشند (پیش‌فرض ۹۰ روز). نماینده حجمی می‌تواند طرح‌های خصوصی خودش را هم ذخیره کند که در فهرست شما یا نماینده دیگری دیده نمی‌شوند.

برای هر نماینده جداگانه تعیین می‌کنید کدام ورودی‌ها را می‌تواند بفروشد و آیا اجازه دادن ⁦AmneziaWG⁩، ⁦mieru⁩، پروکسی تلگرام یا خروجی‌های کشوری ⁦Psiphon⁩ و ⁦Tor⁩ را دارد یا نه. پس گرفتن یک ورودی همان لحظه روی همه مشتری‌های فروخته‌شده او هم اعمال می‌شود، و فهرست خالی ورودی یعنی خالی، پس نماینده می‌تواند دسترسی‌ای بفروشد که فقط ⁦AmneziaWG⁩ یا فقط یک خروجی کشوری است. مشتری‌های نماینده‌ها در فهرست ⁦Users⁩ شما نمی‌آیند؛ جلوی هر نماینده دکمه مشتری‌ها دفتر خودش را با مصرف و انقضا و همان ویرایش همیشگی باز می‌کند. با دادن دسترسی مدیریت برند خود، نماینده صفحه «برند من» را می‌گیرد و نام و لوگوی خودش روی صفحه اشتراک مشتری‌های خودش می‌نشیند؛ پس گرفتنش همه را یکجا به برند شما برمی‌گرداند.


گام ۱۳ - ربات تلگرام و ربات نصب‌کننده

⁦Nova Server⁩ یک ربات کامل تلگرام با ⁦Mini App⁩ دارد که کل پنل را داخل تلگرام باز می‌کند. می‌توانید همه‌چیز را از تلگرام مدیریت کنید و هشدارها را همان‌جا بگیرید (⁦Mini App⁩ به یک دامنه معتبر نیاز دارد).

ربات نصب‌کننده تلگرام: اگر رایانه ندارید یا نمی‌خواهید درگیر ترمینال شوید، یک ربات راهنما می‌تواند شما را در ساخت ⁦VPS⁩ همراهی کند، بگوید نودتان کِی آنلاین شد، یا کل نصب را از طریق ⁦SSH⁩ برایتان انجام دهد:

⁦https://t.me/NovaServerInstaller_Bot⁩

یک ⁦REST API⁩ با احراز توکن هم موجود است (⁦/api/v1⁩) که پنل، ربات و ⁦API⁩ همگی از همان توابع سرویس داخلی استفاده می‌کنند.


تازه‌ها (چه چیزی عوض شده)

بعد از هر به‌روزرسانی یک یادداشت کوتاه می‌گوید چه چیزی عوض شده. برای هر مدیر یک‌بار می‌آید و دیگر تکرار نمی‌شود، و روی نصب تازه نشان داده نمی‌شود. همهٔ نسخه‌ها هم در تازه‌ها در منوی کناری می‌مانند، به فارسی و انگلیسی و روسی. متنش همراه خود به‌روزرسانی می‌آید، پس روی نودی که راه به اینترنت ندارد هم کار می‌کند.

گام ۱۴ - به‌روزرسانی

پنل نسخه‌های جدید را بررسی می‌کند و با یک کلیک به‌روز می‌شود (⁦Settings⁩ > عمومی > به‌روزرسانی)، یا به‌روزرسانی خودکار را روشن کنید. اجرای دوباره دستور نصب هم یک نود موجود را به‌روز می‌کند. کاربران، ورودی‌ها و تنظیمات حفظ می‌شوند.


نصب با ⁦Docker⁩ (جایگزین)

کانتینر را ترجیح می‌دهید؟ ⁦Nova⁩ یک گزینه ⁦Docker⁩ هم دارد. تکرارپذیر است، توقف و جابه‌جایی و ارتقایش آسان است و داده‌های شما روی والیوم‌های نام‌دار می‌ماند و پس از بازسازی هم باقی می‌ماند. این دستور را روی یک ⁦VPS⁩ واقعی لینوکس با کاربر ⁦root⁩ اجرا کنید:

bash <(curl -fsSL https://raw.githubusercontent.com/IRNova/Nova-Server/main/docker/nova-docker.sh)

همان گزینه‌های نصب‌کننده بومی را با متغیرهای محیطی می‌دهید: ⁦NOVA_ADMIN_PASS⁩، ⁦NOVA_DOMAIN⁩، ⁦NOVA_PANEL_PATH⁩ و ⁦NOVA_PANEL_PORT⁩. بعد از بالا آمدن، آدرس پنل را با این دستور پیدا کنید:

cd /opt/nova-docker/docker && docker compose logs -f nova-node

⁦Podman⁩ هم کار می‌کند. اگر ⁦Docker⁩ روی سرور نباشد و ⁦Podman⁩ باشد، نصب‌کننده خودش ⁦Podman⁩ را برمی‌دارد. برای انتخاب دستی ⁦NOVA_CONTAINER_RUNTIME=podman⁩ را بگذارید. در این حالت به‌جای ⁦docker compose⁩ از ⁦podman compose⁩ (یا ⁦podman-compose⁩) استفاده کنید.

مهم: این روش به یک هاست واقعی لینوکس با شبکه هاست نیاز دارد. روی ⁦Docker Desktop⁩ مک یا ویندوز کار نمی‌کند، چون آن‌ها نمی‌توانند پورت ۴۴۳ هاست را آن‌طور که یک نود لازم دارد بگیرند.


حذف کامل

برای حذف کامل ⁦Nova⁩، ⁦xray⁩، ⁦sing-box⁩ و همه داده‌های ⁦Nova⁩ از سرور:

nova-uninstall

اول از شما تایید می‌گیرد. برای رد شدن از تایید، ⁦nova-uninstall --yes⁩ را بزنید. اگر این دستور در دسترس نبود، مستقیم اجرایش کنید:

bash <(curl -fsSL https://raw.githubusercontent.com/IRNova/Nova-Server/main/nova-uninstall.sh)

سوالات متداول (FAQ)

نوا سرور چیه و با نوا پروکسی چه فرقی داره؟

⁦Nova Server⁩ یک ⁦VPS⁩ ساده لینوکسی را به یک نود پروکسی خصوصی و مقاوم در برابر فیلترینگ همراه با یک پنل مدیریت کامل تبدیل می‌کند. جایی که ⁦Nova Proxy⁩ روی لایه رایگان ⁦Cloudflare⁩ اجرا می‌شود و نیاز به ⁦VPS⁩ ندارد، ⁦Nova Server⁩ نسخه خودمیزبان و قدرتمندتر است: یک هسته پروکسی واقعی (⁦Xray-core⁩، ⁦sing-box⁩، ⁦AmneziaWG⁩) با هر آنچه یک اپراتور جدی نیاز دارد. اگر فقط یک پروکسی شخصی و رایگان می‌خواهید، ⁦Nova Proxy⁩ کافی است؛ اگر چند کاربر، چند نود و کنترل کامل می‌خواهید، ⁦Nova Server⁩ برای شماست. لینک گیت‌هاب: ⁦https://github.com/IRNova/Nova-Server⁩

برای شروع به چی نیاز دارم؟

یک ⁦VPS⁩ با ⁦Ubuntu 20.04⁩ به بالا یا ⁦Debian 11⁩ به بالا (⁦x86_64⁩ یا ⁦arm64⁩) و دسترسی ⁦root⁩. یک سرور ساده حدود ۴ تا ۶ دلار در ماه کافی است. دامنه اختیاری است و فقط برای گواهی معتبر و ⁦Mini App⁩ تلگرام لازم می‌شود.

چطوری نصبش کنم؟

روی یک سرور تازه، فقط این دستور را اجرا کنید:

⁦bash <(curl -fsSL https://raw.githubusercontent.com/IRNova/Nova-Server/main/nova-node.sh)⁩

چند سوال کوتاه می‌پرسد (دامنه، مسیر مخفی پنل، پورت اضافی) و زدن ⁦Enter⁩ برای پیش‌فرض‌ها کافی است. بعد آدرس پنل را چاپ می‌کند؛ حتما ذخیره‌اش کنید.

رایانه ندارم، فقط گوشی دارم. می‌شه راه‌اندازی کرد؟

بله. سه راه دارید: ۱. هنگام ساخت ⁦VPS⁩، همان دستور نصب را در کادر ⁦User data⁩ یا ⁦Cloud-init⁩ ارائه‌دهنده بچسبانید؛ سرور خودش هنگام اولین بوت نصب می‌کند (۳ تا ۵ دقیقه) و بعد ⁦https://YOUR_SERVER_IP⁩ را در مرورگر گوشی باز می‌کنید. ۲. از ربات نصب‌کننده تلگرام استفاده کنید: ⁦https://t.me/NovaServerInstaller_Bot⁩ ۳. بیشتر ارائه‌دهنده‌ها یک دکمه ⁦Console⁩ در مرورگر دارند که می‌توانید دستور را همان‌جا بچسبانید.

حتما باید دامنه داشته باشم؟

خیر. برای شروع به دامنه نیاز ندارید. بدون دامنه، نود روی ⁦IP⁩ خودش با یک گواهی خودامضا کار می‌کند و اپ ⁦Nova⁩ باز هم وصل می‌شود. دامنه فقط برای گرفتن گواهی معتبر و استفاده از ⁦Mini App⁩ تلگرام لازم است و هر وقت خواستید می‌توانید بعدا اضافه‌اش کنید.

چه پروتکل‌هایی پشتیبانی می‌شه؟

⁦VLESS⁩، ⁦VMess⁩، ⁦Trojan⁩، ⁦Shadowsocks-2022⁩، ⁦VLESS-Reality⁩ (با ⁦XTLS-Vision⁩)، ⁦Hysteria2⁩، ⁦TUIC v5⁩، ⁦NaiveProxy⁩، ⁦WireGuard⁩ بومی و ⁦AmneziaWG⁩، به‌همراه ⁦mieru⁩ و پروکسی ⁦MTProto⁩ تلگرام به‌صورت دو سرویس مستقل. ترنسپورت‌ها هم شامل ⁦TCP⁩، ⁦WebSocket⁩، ⁦gRPC⁩، ⁦XHTTP⁩، ⁦HTTPUpgrade⁩ و ⁦mKCP⁩ روی ⁦TLS⁩ یا ⁦Reality⁩ هستند. همه روی یک صفحه ⁦Inbounds⁩ مدیریت می‌شوند.

چطور یک کاربر اضافه کنم و وصل بشم؟

در بخش ⁦Users⁩ یک کاربر بسازید و لینک اشتراکش را کپی کنید. این لینک همه تنظیمات اتصال را در خود دارد و خودش به‌روز می‌ماند. آن را در اپ ⁦Nova⁩ باز کنید، کد ⁦QR⁩ را اسکن کنید، یا در یک کلاینت معمولی مثل ⁦v2rayNG⁩، ⁦sing-box⁩ یا ⁦Clash⁩ بچسبانید.

رمز پنل یا مسیر مخفی رو فراموش کردم، چیکار کنم؟

برای دیدن آدرس پنل بدون تغییر رمز یا احراز هویت دومرحله‌ای، روی سرور ⁦nova-access⁩ را اجرا کنید.

برای بازنشانی رمز فراموش‌شده، ⁦nova-passwd 'YourNewPassword'⁩ را اجرا کنید. فقط اگر به برنامهٔ رمزساز هم دسترسی ندارید، ⁦--clear-2fa⁩ را اضافه کنید و پس از ورود دوباره احراز هویت دومرحله‌ای را فعال کنید.

مسیر مخفی پنل یعنی چی و چرا مهمه؟

در نصب تازه، پنل پشت یک زیرمسیر تصادفی مثل ⁦https://server/p-a1b2c3/⁩ قرار می‌گیرد و هر مسیر دیگری فقط یک ۴۰۴ ساده برمی‌گرداند. این کار باعث می‌شود اسکنرهایی که ⁦IP⁩ یا دامنه شما را می‌کاوند چیزی نبینند (همان ایده ⁦web base path⁩ در ⁦3x-ui⁩ و ⁦Marzban⁩). می‌توانید در ⁦Settings⁩ > عمومی > دسترسی پنل مسیر را عوض کنید یا پاکش کنید تا به ریشه برگردد.

چطور چند سرور رو از یک پنل مدیریت کنم؟

پنل را یک بار روی سرور اصلی نصب کنید. بعد در صفحه ⁦Nodes⁩ روی «افزودن نود با یک دستور» بزنید و تک‌خطی را روی یک ⁦VPS⁩ تازه اجرا کنید. سرور جدید در حالت نود مدیریت‌شده نصب می‌شود و همه‌چیز از پنل اصلی کنترل می‌شود. توکن اتصال یک‌بارمصرف است و بعد از ۲۴ ساعت منقضی می‌شود. کاربران و پروتکل‌ها مرکزی‌اند و با گزینه «⁦Run on⁩» روی نودها قرار می‌گیرند. خود نودها را هم از همان صفحه با دکمهٔ «به‌روزرسانی» به‌روز می‌کنید و لازم نیست به هیچ‌کدام ⁦SSH⁩ بزنید.

پل ایران چیه و چطور راه می‌افته؟

پل ایران یعنی یک سرور با ⁦IP⁩ تمیز داخل ایران جلوی خروج خارجی‌تان قرار می‌گیرد تا کاربران به آن ⁦IP⁩ تمیز وصل شوند و ترافیک به خروج خارجی تونل شود. لازم نیست کل استک را روی سرور ایران نصب کنید: در پنل نود خارجی بخش ⁦Tunnels⁩ را باز کنید، تونل را تنظیم کنید، «ساخت دستور پل ایران» را بزنید و آن یک دستور را روی ⁦VPS⁩ ایران اجرا کنید. فقط بک‌اند تونل (⁦Backhaul⁩، ⁦BackPack⁩، ⁦rathole⁩ یا ⁦wstunnel⁩) نصب می‌شود. تونل هم ⁦TCP⁩ و هم ⁦UDP⁩ را منتقل می‌کند تا ⁦Hysteria2⁩ کار کند.

تونل DNS چه زمانی به درد می‌خوره؟

تونل ⁦DNS⁩ ترافیک را داخل کوئری‌های ⁦DNS⁩ جابه‌جا می‌کند و آخرین راه انتقال است: وقتی همه‌چیز مسدود است ولی ⁦DNS⁩ هنوز جواب می‌دهد باز هم کار می‌کند. دو موتور دارد: ⁦MasterDnsVPN⁩ (پیش‌فرض ساده) و ⁦CottenDns⁩ (تواناتر، با ⁦resolver⁩های ⁦DoT/DoH⁩ برای شبکه‌های بسیار خصمانه). به یک زیردامنه با رکورد ⁦NS⁩ واگذارشده نیاز دارد و کاربران با کلاینت خودِ موتور وصل می‌شوند، نه با اپ ⁦Nova⁩.

نگهبان ورود (Login guard) چیه؟

یک سپر به سبک ⁦fail2ban⁩ برای ورود به پنل. اگر از یک ⁦IP⁩ تلاش‌های ناموفق زیادی برای ورود انجام شود، آن ⁦IP⁩ برای مدتی مسدود می‌شود تا حدس‌زدن رمز به جایی نرسد. به‌صورت پیش‌فرض روشن است و در ⁦Settings⁩ > امنیت می‌توانید تعداد تلاش، بازه و مدت مسدودی را تنظیم کنید و مسدودی‌های فعال را یک‌کلیکی رفع کنید.

ربات تلگرام چه کارهایی می‌کنه؟

⁦Nova Server⁩ یک ربات کامل تلگرام با ⁦Mini App⁩ دارد که کل پنل را داخل تلگرام باز می‌کند؛ می‌توانید کاربران و تنظیمات را از تلگرام مدیریت کنید و هشدارها را همان‌جا بگیرید. ⁦Mini App⁩ به یک دامنه معتبر نیاز دارد. یک ربات نصب‌کننده جدا هم هست که در ساخت و نصب نود کمکتان می‌کند: ⁦https://t.me/NovaServerInstaller_Bot⁩

چطور SSL و گواهی معتبر بگیرم؟

⁦Nova Server⁩ سه راه دارد و هر سه خودکار تمدید می‌شوند: ⁦Let's Encrypt⁩ یک‌کلیکی، ⁦Cloudflare⁩ کاملا خودکار (⁦DNS⁩ خودکار به‌همراه وایلدکارت) یا چسباندن گواهی ⁦Origin⁩ خودتان. اگر دامنه دارید، پنل هنگام نصب یا از بخش تنظیمات خودش گواهی رایگان می‌گیرد. برای ⁦Let's Encrypt⁩ فقط سه چیز لازم است و پنل هر سه را نشان می‌دهد: رکورد ⁦A⁩ به همین سرور، ابر خاکستری اگر روی کلودفلر است، و پورت ⁦TCP⁩ ۸۰ باز از بیرون (نوا فایروال خود سرور را باز می‌کند، فایروال ارائه‌دهنده با شماست). حساب ⁦Cloudflare⁩ لازم نیست.

چطور به‌روزش کنم؟ کاربرام حفظ می‌شن؟

پنل نسخه‌های جدید را بررسی می‌کند و با یک کلیک به‌روز می‌شود (⁦Settings⁩ > عمومی)، یا «به‌روزرسانی خودکار» را روشن کنید. اجرای دوباره دستور نصب هم یک نود موجود را به‌روز می‌کند. در همه حالت‌ها کاربران، ورودی‌ها و تنظیمات حفظ می‌شوند.

می‌تونم با Docker نصب کنم؟

بله، به‌عنوان جایگزین نصب‌کننده تک‌خطی. تکرارپذیر است و داده‌ها روی والیوم‌های نام‌دار می‌ماند. این را روی یک ⁦VPS⁩ واقعی لینوکس با ⁦root⁩ اجرا کنید:

⁦bash <(curl -fsSL https://raw.githubusercontent.com/IRNova/Nova-Server/main/docker/nova-docker.sh)⁩

اگر به‌جای ⁦Docker⁩ فقط ⁦Podman⁩ روی سرور باشد، نصب‌کننده خودش آن را برمی‌دارد. توجه: روی ⁦Docker Desktop⁩ مک یا ویندوز کار نمی‌کند، چون نمی‌توانند پورت ۴۴۳ هاست را بگیرند. به شبکه هاست نیاز دارد.

چطور مطمئن بشم فایل نصب دستکاری نشده؟

اسکریپت‌های نصب در مخزن، شل ساده‌ای هستند که می‌توانید قبل از اجرا بخوانیدشان. ایجنت نود به‌صورت ⁦nova-node-agent.tar.gz⁩ همراه با یک ⁦SHA256SUMS⁩ منتشر می‌شود و نصب‌کننده به‌صورت خودکار ایجنت را با آن چک‌سام تطبیق می‌دهد و در صورت عدم تطابق متوقف می‌شود. برای بررسی دستی:

⁦curl -fsSLO https://raw.githubusercontent.com/IRNova/Nova-Server/main/nova-node-agent.tar.gz⁩ ⁦curl -fsSL https://raw.githubusercontent.com/IRNova/Nova-Server/main/SHA256SUMS | sha256sum -c⁩

نوا سرور چیزی به جایی می‌فرسته؟ (شمارش نصب)

فقط یک چیز، یک بار: هر نود پس از نصب یک درخواست ⁦HTTPS⁩ به ⁦novaproxy.online⁩ می‌فرستد که داخلش فقط کلمه ⁦install⁩ و یک عدد تصادفی است که خود نود می‌سازد و نگه می‌دارد، تا پروژه بتواند بگوید چند نود در حال اجراست. نه کاربران، نه ترافیک، نه کلیدها و دامنه‌ها و تنظیمات؛ آدرس سرور هم داخل درخواست نیست، هرچند مثل هر سایت دیگری، ⁦IP⁩ فرستنده هنگام رسیدن درخواست دیده می‌شود. اگر همین را هم نمی‌خواهید، خط ⁦STATS_OPTOUT=1⁩ را در ⁦/etc/nova/agent.env⁩ بگذارید (برای نصب کانتینری ⁦NOVA_STATS_OPTOUT=1⁩)؛ نصب‌کننده و به‌روزرسانی این خط را دست نمی‌زنند. راهنمای داخل پنل هم زیر واژه‌های «تله‌متری» و «ردیابی» همین را توضیح می‌دهد.

چطور نوا سرور رو کامل حذف کنم؟

روی سرور این دستور را اجرا کنید:

⁦nova-uninstall⁩

اول از شما تایید می‌گیرد؛ برای رد شدن از تایید ⁦nova-uninstall --yes⁩ را بزنید. این کار ⁦Nova⁩، ⁦xray⁩، ⁦sing-box⁩ و همه داده‌ها را پاک می‌کند. اگر دستور در دسترس نبود، مستقیم اجرایش کنید:

⁦bash <(curl -fsSL https://raw.githubusercontent.com/IRNova/Nova-Server/main/nova-uninstall.sh)⁩

نماینده‌ای رو حذف کنم، کاربرهاش چی می‌شن؟

موقع حذف از شما می‌پرسد. پنل می‌گوید آن نماینده چند کاربر دارد و دو راه پیش پایتان می‌گذارد.

اگر کاری نکنید، کاربرها می‌مانند و مال خود شما می‌شوند: دسترسی و مشخصات و لینک اشتراکشان هیچ تغییری نمی‌کند و خودشان هم متوجه چیزی نمی‌شوند. اگر تیک «کاربرانش هم حذف شوند» را بزنید، همراه نماینده حذف می‌شوند و دیگر وصل نمی‌شوند؛ این کار قابل بازگشت نیست.

اگر قبلا نماینده‌ای را حذف کرده‌اید و مطمئن نیستید کاربرانش چه شدند، بررسی سلامت را اجرا کنید. کاربرانی را که صاحبشان دیگر وجود ندارد فهرست می‌کند و با یک زدن تحویل شما می‌دهد.

تونل وصل می‌شه ولی هیچ چیزی بالا نمی‌آد، مشکل کجاست؟

اگر ⁦AmneziaWG⁩ وصل می‌شود و پینگ هم جواب می‌دهد ولی صفحه‌ها باز نمی‌شوند یا دانلود وسط راه می‌ماند، معمولا اندازهٔ بسته مقصر است نه فیلترینگ. شبکهٔ کاربر بسته‌های بزرگ را بی‌سروصدا دور می‌ریزد، و چون دست دادن اولیه و پینگ بسته‌های کوچکی هستند، همان‌ها کار می‌کنند و بقیه نه.

در بخش ⁦AmneziaWG⁩ فیلد اندازهٔ بسته (⁦MTU⁩) را دارید. ۱۲۸۰ مقدار امن است و همان چیزی است که این حالت را درست می‌کند. خالی بگذارید مگر مطمئن باشید کل مسیر تا مشتری‌هایتان بستهٔ کامل را عبور می‌دهد؛ بالا بردنش روی شبکهٔ تمیز سرعت اضافه می‌کند و روی مسیر باریک دانلودهای بزرگ را خراب می‌کند.

اگر تونل اصلا وصل نمی‌شود موضوع دیگری است و احتمالا اپ مشتری برای پروتکل ۲٫۰ قدیمی است.

⁦WARP⁩ کار می‌کرد و یکهو از کار افتاد، چیکار کنم؟

هر سرور یک آدرس کلودفلر را برای خودش نگه می‌دارد تا خودبه‌خود عوض نشود. عیبش این است که اگر همان یک آدرس برای شما مسدود شود، سرور مسدود می‌ماند.

در کارت ⁦WARP⁩ دکمهٔ «یک آدرس دیگر امتحان کن» را بزنید؛ نود را به آدرس دیگری می‌برد و همان را نگه می‌دارد. این دکمه تا وقتی دیده می‌شود که «⁦IP⁩ تمیز» روشن باشد و آدرس دستی نگذاشته باشید.

کاربرم منقضی شده و فعال نمی‌شود، چه کار کنم؟

تاریخ انقضایش را جلو ببرید، نه تعداد روزش را. «انقضا ⁦N⁩ روز پس از اولین اتصال» فقط تا پیش از اولین اتصال آن مشتری شمرده می‌شود؛ همان لحظه یک تاریخ واقعی روی حسابش ثبت می‌شود و از آن به بعد تنها همان تاریخ تعیین می‌کند که فعال است یا نه. برای همین بعد از منقضی‌شدن، بزرگ‌کردن تعداد روز هیچ کاری نمی‌کند و کلید «فعال» هم به‌تنهایی برش نمی‌گرداند.

مشتری را باز کنید؛ اگر شمارشش شروع شده باشد به‌جای تعداد روز، فیلد تاریخ انقضا را می‌بینید. تاریخ را جلو ببرید و ذخیره کنید. برای چند نفر با هم، آن‌ها را انتخاب کنید و از نوار عملیات گروهی «روزها» را بزنید که از امروز حساب می‌کند.

در نسخه‌های پیش از ۱.۷۱.۰ هر دو ویرایشگر فقط تعداد روز را نشان می‌دادند، و راهی از صفحهٔ خود مشتری برای برگرداندنش نبود.

پیام «⁦socket hang up⁩» روی نود یعنی چه؟

یعنی نود اتصال را بست بدون اینکه جواب بدهد، و در نسخه‌های پیش از ۱.۷۱.۰ دو علت کاملا متفاوت همین یک جمله را نشان می‌دادند.

اگر بعد از زدن دکمهٔ به‌روزرسانی روی یک نود دیدیدش: نود همان موقع ری‌استارت می‌کند و اتصالی را که پنل با آن حرف می‌زد می‌بندد. «تست» یک لحظه بعد می‌گفت نود در دسترس است، چون بود.

اگر در بررسی سلامت جلوی یک نود دیدیدش و شمار مشتری‌هایتان از چند هزار گذشته: پنل کل فهرست کاربران را در یک درخواست می‌فرستد و نود بدنه‌ای بزرگ‌تر از یک مگابایت را رد می‌کرد، پس هیچ پیکربندی‌ای به آن نمی‌رسید.

هر دو در ۱.۷۱.۰ درست شده‌اند. پنل و همهٔ نودهایتان را به‌روزرسانی کنید؛ نیمهٔ دوم روی خود نود است.

روی پلن همهٔ ورودی‌ها را تیک زدم و اعمال کردم، ولی برای مشتری‌ها تیک نخورد

در نسخه‌های پیش از ۱.۷۱.۱ این کار هیچ اثری نداشت. وقتی روی یک پلن همهٔ ورودی‌ها تیک خورده باشد، پلن آن را به‌شکل «بدون محدودیت» ذخیره می‌کند، نه به‌شکل فهرستی از همان ورودی‌ها؛ این عمدی است، چون فهرست مشخص باعث می‌شود ورودی‌هایی که بعدا می‌سازید به آن مشتری‌ها نرسد. ولی موقع اعمال روی مشتری موجود، «بدون محدودیت» به‌معنای «چیزی نگفت» خوانده می‌شد و فهرست تنگ‌تر قبلی مشتری دست‌نخورده می‌ماند. یعنی پلن می‌توانست دسترسی را بگیرد و هیچ‌وقت پس ندهد.

از ۱.۷۱.۱ اعمال چنین پلنی محدودیت مشتری را پاک می‌کند، پس هر ورودی‌ای که خود ورودی به او اجازه بدهد (و ورودی‌هایی که بعدا اضافه شوند) به او می‌رسد. پنل را به‌روزرسانی کنید و پلن را دوباره اعمال کنید.

اگر می‌خواهید مشتری فقط به چند ورودی مشخص دسترسی داشته باشد، روی پلن فقط همان‌ها را تیک بزنید؛ فهرست مشخص دقیقا همان‌ها را می‌دهد و بس.

مشکل دارم، چطور کمک بگیرم؟

اول راهنمای «راه‌اندازی گام‌به‌گام» داخل خود پنل را ببینید (به هر سه زبان موجود است). اگر حل نشد، در گروه تلگرام بپرسید: ⁦https://t.me/irnova_group⁩ و کانال رسمی: ⁦https://t.me/irnova⁩