پرش به مطلب اصلی

خطاهای رایج

در ادامه مشکلاتی آمده است که بیشتر از همه با آن‌ها روبه‌رو می‌شوید. قالب یکی است: نشانه → علت → راه‌حل. از لاگ‌ها شروع کنید — تقریباً همیشه علت در آن‌ها دیده می‌شود:

docker compose logs --tail=100 xpanel
docker compose ps
نکته

مجموعه کامل دستورهای عیب‌یابی — در بخش دستورهای مفید.

یک برگه تقلب کوتاه: چه می‌بینید — به چه چیزی نگاه کنید.

نشانه در لاگ یا رابط کاربریعلت احتمالی
Reverse proxy and HTTPS are requiredهدرهای X-Forwarded-* از پروکسی وجود ندارد
❌ METRICS_USER / ❌ METRICS_PASSمتغیرهای متریک تنظیم نشده‌اند
نود متصل نمی‌شودNODE_PORT بسته است یا SECRET_KEY ناقص است
address already in useپورت توسط فرایند دیگری اشغال شده است
certbot با خطا پایان می‌یابدDNS، پورت 80 یا server_name متعلق به دیگری
xpanel-db در وضعیت unhealthy.env، والیوم یا نسخه PostgreSQL
502 Bad Gateway از nginxپنل به 127.0.0.1:3000 گوش نمی‌دهد
ورود از کار افتاده استAPP_SECRET تغییر کرده است

«Reverse proxy and HTTPS are required»​

نشانه. پنل باز نمی‌شود، در لاگ xpanel خط Reverse proxy and HTTPS are required وجود دارد.

علت. درخواست بدون هدرهای X-Forwarded-For و X-Forwarded-Proto: https به پنل رسیده است. در کد پنل میان‌افزاری وجود دارد که در این حالت اتصال را قطع می‌کند.

راه‌حل. مطمئن شوید که در پیکربندی nginx جلوی پنل هر دو خط وجود دارد:

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;

پنل را با https:// باز کنید، نه با http://. اگر TLS زودتر (روی CDN یا لودبالانسر) ترمینیت می‌شود، مقدار X-Forwarded-Proto را به http تغییر ندهید. پیکربندی‌های آماده — در بخش پروکسی معکوس.

METRICS_USER و METRICS_PASS تنظیم نشده‌اند​

نشانه. کانتینر xpanel دوباره راه‌اندازی می‌شود، در لاگ ❌ METRICS_USER یا ❌ METRICS_PASS دیده می‌شود.

علت. متغیرهای متریک الزامی هستند: بدون آن‌ها پنل بالا نمی‌آید.

راه‌حل. در /opt/xlada/.env اضافه کنید و استک را دوباره راه‌اندازی کنید:

METRICS_USER=xpanel
METRICS_PASS=<رمز عبور مطمئن>
docker compose up -d

نود در پنل ظاهر نمی‌شود​

نشانه. نود ساخته شده است، اما در پنل همچنان متصل‌نشده می‌ماند.

علت. معمولاً یکی از این سه مورد: NODE_PORT از سرور پنل در دسترس نیست، SECRET_KEY کامل کپی نشده است یا کانتینر نود بالا نیامده است.

راه‌حل. به ترتیب بررسی کنید:

  1. docker logs -f xpanel-node — در صورت نادرست بودن کلید، نود خودش علت را چاپ می‌کند.
  2. از سرور پنل: nc -vz <IP نود> 2222.
  3. مطمئن شوید که کلید کامل و بدون خط جدید وارد شده است.
  4. پورت 2222 را در firewall فقط برای IP پنل باز کنید.

جزئیات بیشتر — در بخش نصب نود.

توجه

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

تعارض پورت‌ها​

نشانه. کانتینر با address already in use بالا نمی‌آید، یا Xray روی نود به پورت تعیین‌شده گوش نمی‌دهد.

علت. پورت توسط فرایند دیگری اشغال شده است: 3000، 3001، 3010 روی سرور پنل یا پورت inbound روی نود.

راه‌حل. صاحب پورت را پیدا کنید و آن را آزاد کنید:

ss -tlnp | grep -E ':(3000|3001|3010|2222)\b'

اگر تغییر پورت آسان‌تر از آزاد کردن آن است، APP_PORT یا METRICS_PORT را در .env اصلاح کنید و فراموش نکنید proxy_pass را در nginx به‌روز کنید. روی نود بررسی کنید که کانتینر با --network host اجرا شده است: عبور دادن پورت‌ها تعیین IP واقعی کاربر را خراب می‌کند.

گواهی صادر نمی‌شود​

نشانه. certbot --nginx -d panel.example.com با خطا پایان می‌یابد.

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

راه‌حل.

dig +short panel.example.com # باید IP سرور پنل را برگرداند
ss -tlnp | grep ':80'
certbot certificates # چه چیزی قبلاً صادر شده است
certbot renew --dry-run # بررسی تمدید خودکار

مقدار server_name را در پیکربندی nginx بررسی کنید، سپس nginx -t && systemctl reload nginx. مطمئن شوید که تایمر تمدید خودکار فعال است: systemctl list-timers | grep certbot.

پایگاه داده بالا نمی‌آید​

نشانه. xpanel منتظر پایگاه داده می‌ماند و از کار می‌افتد، xpanel-db در وضعیت unhealthy است یا مدام دوباره راه‌اندازی می‌شود.

علت. بیشتر اوقات DATABASE_URL نادرست، ناسازگاری POSTGRES_PASSWORD با والیوم موجود یا نسخه اصلی (major) ناسازگار PostgreSQL روی دایرکتوری داده قدیمی.

راه‌حل.

docker compose ps
docker compose logs --tail=100 xpanel-db
docker exec xpanel-db pg_isready -U xpanel -d xpanel

مقادیر POSTGRES_USER، POSTGRES_PASSWORD، POSTGRES_DB و DATABASE_URL را بررسی کنید. والیوم‌ها و سرویس‌ها را تغییر نام ندهید: در اجرای بعدی compose نمونه‌های خالی جدیدی می‌سازد. دایرکتوری داده PostgreSQL بین نسخه‌های اصلی ناسازگار است، بنابراین مهاجرت به نسخه جدید فقط از طریق دامپ و بازیابی انجام می‌شود — ببینید مهاجرت از Remnawave.

502 Bad Gateway از nginx​

نشانه. nginx روی https://panel.example.com کد 502 برمی‌گرداند.

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

راه‌حل.

docker compose ps
curl -sI http://127.0.0.1:3000
docker compose logs --tail=100 xpanel

منتظر بمانید تا در لاگ خطوط XLADA Backend v1.1.7 و Nest application successfully started ظاهر شوند. اگر APP_PORT تغییر کرده است، proxy_pass http://127.0.0.1:<پورت> را اصلاح کنید و nginx را دوباره بارگذاری کنید.

ورود پس از تغییر APP_SECRET کار نمی‌کند​

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

علت. APP_SECRET پس از اولین اجرا تغییر کرده است. هش‌های رمز عبور، JWT و رمزنگاری راز TOTP به آن وابسته‌اند. مقدار change_me که در .env باقی مانده است هم همین اثر را دارد.

راه‌حل. مقدار قبلی APP_SECRET را از نسخه پشتیبان .env برگردانید و دستور docker compose up -d را اجرا کنید. اگر مقدار اصلی از دست رفته است، ورود تنها با بازنشانی از طریق پایگاه داده ممکن است. راز را از قبل تولید می‌کنند (openssl rand -hex 32) و در مدیر رازها نگه می‌دارند — ببینید امنیت پنل.

گام‌های بعدی​