رفع مشکلات

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

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

مرور کلی

تقریباً همهٔ موارد زیر به یکی از این سه برمی‌گردد: مقداری در .env که آن چیزی نیست که فکر می‌کنید، نبودِ HTTPS، یا اجرا نشدن واقعی Xray-core. پنل در همهٔ این حالت‌ها دلیل را در گزارش‌ها می‌نویسد، پس از همان‌جا شروع کنید:

docker compose logs -f app        # Compose install
journalctl -u nasnet-panel -f     # systemd install

یادتان باشد تغییر .env تا وقتی پنل دوباره راه‌اندازی نشود هیچ اثری ندارد.

ورود

رمز درست است و باز هم اجازهٔ ورود نمی‌دهد. ADMIN_PASSWORD_HASH باید هش bcrypt باشد، نه خود رمز. دوباره بسازیدش، هش را در .env بگذارید و راه‌اندازی مجدد کنید:

htpasswd -nbBC 10 "" "your-password" | tr -d ':\n' | sed 's/$2y/$2a/'

بعد مطمئن شوید ADMIN_USERNAME همان چیزی است که تایپ می‌کنید.

ورود موفق می‌شود و بلافاصله به صفحهٔ ورود برمی‌گردم. کوکی نشست دور ریخته می‌شود، چون کوکی Secure است و شما روی HTTP ساده هستید. یا کار TLS را تمام کنید و JWT_COOKIE_SECURE=true را همراه JWT_COOKIE_DOMAIN بگذارید. تنها روی یک سرور آزمایشی با IP خالی JWT_COOKIE_SECURE=false بگذارید و JWT_COOKIE_DOMAIN را خالی رها کنید.

گواهی‌ها

ACME هیچ‌وقت گواهی صادر نمی‌کند. به همین ترتیب پیش بروید:

  • DNS دامنه‌ای که در APP_BASE_URL است باید به همین سرور برسد، و چالش ACME باید به آن برسد، پس مطمئن شوید دیوارهٔ آتشی جلوی پورت ۸۰ نیست.
  • ACME_EMAIL باید تنظیم شده باشد. بدون آن صدور غیرفعال است.
  • والیوم acme_data باید قابل نوشتن باشد و بین راه‌اندازی‌ها بماند.
  • تا وقتی مشغول اشکال‌زدایی هستید ACME_STAGING=true بگذارید. Let’s Encrypt تلاش‌های ناموفق روی نقطهٔ اصلی را محدود می‌کند و می‌توانید ساعت‌ها خودتان را بیرون بگذارید. پس از صدور تمیز یک گواهی آزمایشی، به حالت اصلی بروید.

اشتراک‌ها

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

  1. آیا اشتراک منقضی شده، یا از سقف مصرفش گذشته است؟
  2. آیا Xray-core در حال اجراست و inbound تنظیم‌شده دارد؟ پیوندی که از هسته‌ای بدون inbound ساخته شود سروری برای تحویل ندارد.
  3. آیا APP_BASE_URL درست است؟ این مقدار پایهٔ هر پیوند /sub/{key} است، پس مقدار اشتباه پیوندهایی می‌سازد که به جایی می‌روند که پاسخ نمی‌دهد.

تلگرام

ربات بالا نمی‌آید. پنل خطای ربات را می‌نویسد و بدون آن به کارش ادامه می‌دهد، پس به‌جای اینکه فرض کنید کل سرویس شکست خورده، در گزارش‌های پنل دنبالش بگردید. بعد بررسی کنید که TELEGRAM_ENABLED=true باشد و TELEGRAM_BOT_TOKEN درست باشد. اگر سرور مستقیم به API تلگرام نمی‌رسد، متغیرهای SOCKS5 با پیشوند TELEGRAM_PROXY_ را تنظیم کنید. در حالت webhook، مقدار WEBHOOK_URL باید یک نشانی HTTPS در دسترس عموم باشد.

پایش

نقطهٔ متریک‌ها چیزی برنمی‌گرداند. هم METRICS_ENABLED باید هنگام بالا آمدن true باشد، و هم کلید Metrics Enabled در تنظیمات ← سرور باید روشن باشد، چون کلید زمان اجرا می‌تواند جمع‌آوری را خاموش کند حتی وقتی متغیر محیطی روشن است. اگر METRICS_USERNAME و METRICS_PASSWORD را تنظیم کرده‌اید، جمع‌کنندهٔ شما باید احراز هویت پایه بفرستد.

پایگاه‌داده

خطای مهاجرت هنگام بالا آمدن. مهاجرت‌ها خودکار اجرا می‌شوند و گزارش‌ها نام گامی که شکست خورده را می‌گویند. برای PostgreSQL تنظیمات اتصال DB_* و سلامت و در دسترس بودن پایگاه‌داده را بررسی کنید. اگر مهاجرتی پایگاه‌داده را در وضعیت بدی رها کرده، از پشتیبان بازگردانی کنید و لطفاً گزارشش کنید، چون این اشکالی است که ارزش رفع‌شدن دارد.

مرتبط