نیازمندی‌های سیستم

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

آخرین به‌روزرسانی ۲۶ مرداد ۱۴۰۵نمایش به‌صورت مارک‌داون

مرور کلی

نس‌نت لینوکس روی یک سرور لینوکسی ۶۴ بیتی اجرا می‌شود و همه چیز را همان‌جا نگه می‌دارد، یعنی پنل، پایگاه‌داده و پروسهٔ Xray-core که خودش سرپرستی‌اش می‌کند. نه مجموعه‌ای از سرورها در کار است و نه سرور دومی که باید آماده کنید. آنچه واقعاً پیش از نصب باید تصمیم بگیرید این است: کدام پایگاه‌داده، آیا دامنه دارید، و کدام پورت‌ها را می‌توانید باز کنید.

سرور

نیازمندی مقدار
سیستم‌عامل لینوکس ۶۴ بیتی
معماری amd64 یا arm64
دسترسی root یا sudo
پورت پنل یک پورت ورودی آزاد، به‌طور پیش‌فرض 9761
پورت‌های ورودی هر پورتی که inboundهای پروکسی شما روی آن گوش می‌دهند، جداگانه باز شود
دسترسی خروجی برای گواهی ACME و دریافت ایمیج لازم است؛ بستهٔ آفلاین این نیاز را برمی‌دارد

باینری‌های منتشرشده ایستا هستند و بدون CGO ساخته می‌شوند، پس محیط اجرای وابسته به یک توزیع خاص لازم ندارند. داشتن دامنه‌ای که به سرور اشاره کند به‌شدت توصیه می‌شود، هرچند دقیقاً اجباری نیست، و دلیلش پایین‌تر آمده است.

دستگاه‌های پشتیبانی‌شده

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

سرورها

بستر پشتیبانی توضیح
لینوکس amd64 بله حالت رایج. هم باینری‌های منتشرشده و هم ایمیج‌های Docker پوششش می‌دهند.
لینوکس arm64 بله کاملاً پشتیبانی می‌شود، از جمله روی سرورهای مجازی ARM.
لینوکس ۳۲ بیتی خیر هیچ نسخهٔ ۳۲ بیتی منتشر نمی‌شود.
macOS یا ویندوز خیر پنل یک پروسهٔ محلی Xray را سرپرستی می‌کند و لینوکس می‌خواهد.

هر توزیعی کار می‌کند، چون باینری‌های منتشرشده ایستا و بدون CGO ساخته می‌شوند. چیزی وابسته به توزیع خاص نیست که کنارشان نصب شود.

برنامه‌های کلاینت

مشترکان چیزی از شما نصب نمی‌کنند. یک لینک /sub/{key} را در یک برنامهٔ پروکسی معمولی می‌چسبانند و سرور با نگاه به User-Agent پاسخ را متناسب با همان برنامه‌ای که درخواست فرستاده برمی‌گرداند.

کلاینت بستر معمول
v2rayNG اندروید
v2rayN ویندوز
Clash و کلاینت‌های خانوادهٔ آن اندروید، ویندوز، macOS، لینوکس
sing-box اندروید، iOS، دسکتاپ
Shadowrocket iOS

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

پایگاه‌داده

پیش از نصب یکی را انتخاب کنید. عوض کردنش بعداً یعنی مهاجرت داده.

گزینه کجا مناسب است تنظیم
PostgreSQL 16 محیط واقعی. پیش‌فرض، و همان چیزی که Docker Compose بالا می‌آورد. DB_DRIVER=postgres
SQLite آزمایش و استقرارهای کوچک تک‌سروری. کانتینر پایگاه‌داده ندارد. DB_DRIVER=sqlite و DB_PATH=/app/data/nasnet_panel.db

مهاجرت‌های ساختار پایگاه‌داده در هر بار بالا آمدن به‌طور خودکار اجرا می‌شوند، پس ارتقا معمولاً یعنی یک باینری تازه و یک راه‌اندازی دوباره. در هر حال اول یک نسخهٔ پشتیبان بگیرید.

TLS و کوکی‌ها

می‌توانید برای آزمایش روی یک IP خالی و HTTP ساده کار کنید، ولی کوکی‌های نشست پنل از نوع Secure هستند: بدون HTTPS ورود شما نمی‌ماند. برای هر چیزی که واقعاً قرار است استفاده کنید، یا دامنه‌ای به سرور اشاره دهید و بگذارید کلاینت ACME داخلی گواهی بگیرد، یا TLS را در یک پروکسی جلوی پنل خاتمه دهید.

صدور خودکار به ACME_EMAIL نیاز دارد، چون بدون آن صدور غیرفعال است.

برای نصب با Docker

نیازمندی مقدار
Docker Engine نسخهٔ فعلی
افزونهٔ Compose لازم است، چون مخزن یک docker-compose.yml دارد
سرویس‌هایی که بالا می‌آیند برنامه، PostgreSQL 16 و Prometheus
والیوم‌ها postgres_data، acme_data، prometheus_data و یک bind mount برای نسخه‌های پشتیبان

رمزهایی که باید بسازید

هر مسیر نصبی به این‌ها نیاز دارد، هر طور که استقرار دهید. نصب‌کنندهٔ راهنما خودش می‌سازدشان. در غیر این صورت:

# رمز JWT که باید دست‌کم ۳۲ نویسه باشد
openssl rand -hex 32

# رمز مدیر به شکل هش bcrypt، نه متن ساده
htpasswd -nbBC 10 "" "your-password" | tr -d ':\n' | sed 's/$2y/$2a/'

قرار گرفتن رمز به شکل متن ساده در ADMIN_PASSWORD_HASH رایج‌ترین دلیلی است که یک نصب تازه اجازهٔ ورود نمی‌دهد.

ساخت از روی کد منبع

فقط برای توسعه لازم است. پنل وب با go:embed داخل باینری جاسازی می‌شود، پس باید پیش از go build ساخته شود. به جای صدا کردن مستقیم go build از هدف‌های make استفاده کنید.

نیازمندی مقدار
Go 1.26 یا بالاتر
Node.js 22 یا بالاتر
مدیر بسته pnpm

مرتبط