نصب

سه راه برای به کار انداختن نس‌نت پنل: Docker، اسکریپت نصب RouterOS، یا نصب‌کنندهٔ گرافیکی.

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

مرور کلی

نس‌نت پنل یک ایمیج (image) کانتینر چندمعماری است که هم JSON API و هم رابط کاربری وب را روی یک پورت ارائه می‌دهد. سه راه پشتیبانی‌شده برای به کار انداختنش هست: Docker ساده روی هر میزبانی (host)، اسکریپت install.sh که آن را داخل یک کانتینر RouterOS روی خود روتر مستقر می‌کند، و یک نصب‌کنندهٔ گرافیکی برای Windows و macOS که همان کار را بدون ترمینال انجام می‌دهد.

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

پیش از شروع

  • پنل باید بتواند به روترهای شما روی شبکهٔ محلی برسد.
  • RouterOS نسخهٔ ۷ روی روترهایی که می‌خواهید مدیریت کنید.
  • برای نصب روی خود روتر: بستهٔ container نصب و فعال باشد، device-mode کانتینر فعال باشد، حافظهٔ خارجی متصل باشد (پیش‌فرض disk1/)، دست‌کم ۳۰ مگابایت RAM آزاد باشد و برد arm یا arm64 یا x86_64 باشد.
  • فعال کردن device-mode کانتینر برای بار اول به تأیید فیزیکی نیاز دارد، یعنی یک فشار کوتاه دکمهٔ reset/mode، یا روی بردهایی که این دکمه را ندارند یک خاموش و روشن کامل.
  • برای اسکریپت: bash و curl و ssh و scp و sha256sum (یا shasum) روی رایانه‌ای که اسکریپت را از آن اجرا می‌کنید، به اضافهٔ روتری که روی پورت‌های 8291 و 22 در دسترس باشد.

گام‌ها

Docker

  1. ایمیج را اجرا کنید و یک پورت میزبان را به پورت 80 کانتینر نگاشت کنید.

    docker run -d \
      --name nasnet \
      -p 8080:80 \
      --restart unless-stopped \
      ghcr.io/nasnet-community/nasnet-panel:latest
  2. http://localhost:8080 را باز کنید.

  3. اگر کانتینر باید مستقیم به روترهای شبکهٔ محلی شما برسد، جای آن از شبکهٔ میزبان استفاده کنید:

    docker run -d --name nasnet --network=host --restart unless-stopped \
      ghcr.io/nasnet-community/nasnet-panel:latest

    سرویس compose معادلش:

    services:
      nasnet:
        image: ghcr.io/nasnet-community/nasnet-panel:latest
        container_name: nasnet
        network_mode: host
        environment:
          PORT: 80
        restart: unless-stopped

روی روتر، با install.sh

  1. اسکریپت را اجرا کنید. در حالت تعاملی آدرس IP روتر و کاربر و رمز را می‌پرسد:

    bash scripts/install.sh
  2. یا یک فایل پیکربندی به سبک env بدهید تا بی‌نظارت اجرا شود:

    cat > router.env <<'EOF'
    ROUTER_IP=192.168.88.1
    ROUTER_USER=admin
    ROUTER_PASS=secret
    EOF
    bash scripts/install.sh --config router.env
  3. منتظر health check بمانید. اسکریپت Winbox (8291) و SSH (22) را وارسی می‌کند، نسخهٔ RouterOS و معماری و RAM آزاد و پشتیبانی کانتینر را بررسی می‌کند، tar کانتینر مربوط به معماری تشخیص‌داده‌شده را می‌گیرد و درستی‌اش را تأیید می‌کند، شبکهٔ کانتینر را پیکربندی می‌کند، tar را به disk1/ می‌فرستد، کانتینر را راه می‌اندازد و تا ۱۲۰ ثانیه /health را می‌پرسد.

  4. http://<router-ip>:8080/ را باز کنید. اگر گام baseline LAN اجرا شده باشد، پنل به جای آن روی http://192.168.10.1:8080/ است، پس اول دوباره وصل شوید یا lease مربوط به DHCP را تازه کنید.

برای برداشتن همه‌چیز:

bash scripts/install.sh --uninstall --config router.env

با نصب‌کنندهٔ گرافیکی

  1. فایل nasnet-panel-installer-windows-amd64.exe یا nasnet-panel-installer-macos-universal.dmg را از release دلخواهتان بگیرید.
  2. Router IP or hostname و User و Password را پر کنید.
  3. اگر لازم است Winbox port یا SSH port یا HTTP LAN port یا HTTPS LAN port یا Image source را عوض کنید (Latest snapshot یا Release tag یا یک Local tarAdvanced options را باز کنید.
  4. Install را بزنید و بگذارید کارش را بکند. اگر روتر برای device-mode تأیید فیزیکی بخواهد، نصب‌کننده Physical confirmation required را نشان می‌دهد، پس دکمهٔ reset را فشار دهید یا روتر را خاموش و روشن کنید، بعد Proceed.

مرجع

فلگ‌های install.sh

فلگ چه می‌کند پیش‌فرض
--dry-run هر کاری که می‌خواست بکند چاپ می‌کند و چیزی را عوض نمی‌کند. خاموش
--uninstall کانتینر، شبکه، قواعد NAT و tarball فرستاده‌شده را برمی‌دارد. خاموش
--config <file> ROUTER_IP، ROUTER_USER و ROUTER_PASS را از یک فایل به سبک env می‌خواند. ندارد
--version <tag> تگ release برای نصب. snapshot
--image-tar <path> جای گرفتن یک دارایی release، از یک tar محلی استفاده می‌کند. ندارد
--lan-port <port> پورت رو به شبکهٔ محلی برای قاعدهٔ dst-nat. 8080
--no-lan-baseline راه‌اندازی baseline LAN را رد می‌کند. خاموش
--no-rollback هنگام شکست، وضعیت نیمه‌کاره را همان‌جا می‌گذارد. خاموش
-v، --verbose خروجی پرجزئیات. خاموش
-h، --help طرز استفاده را نشان می‌دهد. ندارد

متغیرهای محیطی backend

متغیر چه می‌کند پیش‌فرض
PORT پورت TCP که API و SPA توکار روی آن گوش می‌دهند. 8080 در dev و 80 در کانتینر
HOST آدرس bind. 0.0.0.0
ENVIRONMENT مقدار production مسیرهای مخصوص dev مثل Swagger UI را غیرفعال می‌کند. development
BACKEND_URL زمان build. خالی بودنش یعنی SPA از آدرس‌های نسبی به مبدأ (origin) خودش استفاده می‌کند. خالی
SENTRY_DSN زمان build. جایی که رابط کاربری گزارش‌های crash را می‌فرستد. برای حذف گزارش‌دهی در کامپایل، رشتهٔ خالی بگذارید. DSN پروژهٔ نس‌نت

رفع مشکلات

نشانه چه کنید
اسکریپت روی device-mode متوقف می‌شود. RouterOS بار اول که device-mode کانتینر فعال می‌شود تأیید فیزیکی می‌خواهد. دکمهٔ reset/mode را کوتاه فشار دهید، یا روتر را از برق بکشید و دوباره بزنید، بعد اسکریپت را دوباره اجرا کنید.
پنل پس از پایان اسکریپت در دسترس نیست. گام baseline LAN شبکهٔ محلی روتر را روی LANBridgeSplit با 192.168.10.1/24 می‌برد. lease مربوط به DHCP را تازه کنید و http://192.168.10.1:8080/ را امتحان کنید.
کانتینر بالا می‌آید و بعد بسته می‌شود. روتر برای پنل دست‌کم ۳۰ مگابایت RAM آزاد لازم دارد. /system/resource/print را ببینید و کانتینرهای دیگر را متوقف کنید.

مرتبط