خطای Connection to server failed در Cpanel
خطای Connection to server failed در cPanel یعنی مرورگر یا برنامه شما اصلاً نتوانسته یک اتصال TCP سالم به سرویس مقصد باز کند؛ پس مشکل تقریباً همیشه در لایه سرویس و شبکه است، نه در نام کاربری و رمز عبور. در عمل پنج علت این پیام را میسازند: خاموش یا در حال ریاستارت بودن سرویس cpsrvd، بسته بودن پورت یا بلاک شدن IP شما توسط فایروال، درست resolve نشدن hostname سرور، گواهی SSL منقضی یا ناهماهنگ روی پورت پنل، و پر شدن دیسک.
ابتدا مشخص کنید کدام اتصال قطع شده است
عبارت مشابهی در دو موقعیت کاملاً متفاوت دیده میشود و مسیر رفع آنها یکی نیست:
- باز نشدن خود پنل روی پورتهای
2082/2083(cPanel)،2086/2087(WHM) یا2095/2096(Webmail). - خطای SMTP Error (-1): Connection to server failed هنگام ارسال ایمیل از اسکریپت یا کلاینت میل، که معمولاً کار فایروال است و در ادامه جداگانه توضیح داده شده.
چون پنل در دسترس نیست، تشخیص را از SSH انجام دهید. روی سرور مجازی یا سرور اختصاصی دسترسی روت کامل دارید و همین دسترسی، مسیر نجات است؛ تا وقتی SSH پاسخ میدهد، بسته بودن پورت پنل جلوی عیبیابی را نمیگیرد. اگر SSH هم پاسخ نمیدهد، باید از مسیر دسترسی اضطراریای استفاده کنید که ارائهدهنده سرورتان در اختیار میگذارد. اولین دستور مفید این است:
ss -tlnp | grep -E '2082|2083|2086|2087'
اگر هیچ خروجی نداشت، سرویس بالا نیست. اگر خروجی داشت ولی از بیرون وصل نمیشوید، مقصر فایروال یا مسیر شبکه است.
علت اول: سرویس cpsrvd بالا نیست
cpsrvdهمان دیمنی است که رابط cPanel و WHM را سرو میکند. وضعیت و ریاستارت آن:
/usr/local/cpanel/scripts/restartsrv_cpsrvd --status
/usr/local/cpanel/scripts/restartsrv_cpsrvd
اگر بلافاصله دوباره میافتد، لاگ را ببینید:
tail -n 100 /usr/local/cpanel/logs/error_log
یک علت رایج که در لاگ خودش را نشان میدهد، نامعتبر شدن لایسنس است. صحت لایسنس را با این دستور بررسی و در صورت نیاز بهروزرسانی کنید:
/usr/local/cpanel/cpkeyclt
اگر خروجی از انقضا یا عدم تطابق IP خبر میدهد، باید وضعیت لایسنس cPanel و تطابق آن با IP فعلی سرور را بررسی کنید؛ تغییر IP سرور بدون بهروزرسانی لایسنس دقیقاً همین حالت را میسازد و مراحل کامل آن در راهنمای فعالسازی لایسنس cPanel آمده است.
علت دوم: فایروال یا CSF جلوی اتصال را گرفته است
اگر سرویس بالاست ولی از بیرون وصل نمیشوید، به احتمال زیاد IP شما موقتاً بلاک شده یا پورت پنل در فایروال باز نیست. ابتدا وضعیت IP خودتان را استعلام کنید:
csf -g 203.0.113.10
برای دیدن دلیل بلاک، لاگ سرویس lfd را بخوانید:
grep 203.0.113.10 /var/log/lfd.log | tail
حذف بلاک موقت با csf -tr IP و حذف بلاک دائم با csf -dr IP انجام میشود. اگر روی سرور بلاک کردن آیپی یک کشور با GeoIP فعال باشد هم ممکن است خودتان پشت همان قانون گیر کرده باشید، و اگر اصلاً فایروالی نصب نیست راهنمای نصب فایروال CSF نقطهٔ شروع است. اگر پورتهای پنل در لیست TCP_IN فایل /etc/csf/csf.conf نیستند، آنها را اضافه کرده و سپس csf -r بزنید. غیرفعال کردن کامل فایروال با csf -x فقط برای یک تست کوتاه قابل قبول است و باید بلافاصله با csf -e برگردانده شود؛ رها کردن سرور بدون فایروال ریسک امنیتی جدی دارد.
حالت SMTP: خطای SMTP Error (-1)
اگر خطا هنگام ارسال ایمیل رخ میدهد، معمولاً CSF ارسال SMTP کاربران محلی را مسدود کرده است. برای تست کوتاه فایروال را غیرفعال کنید و اگر مشکل برطرف شد، در فایل /etc/csf/csf.conf این دو مقدار را تنظیم کنید:
SMTP_BLOCK = "0"
SMTP_ALLOWLOCAL = "1"
سپس با csf -r سرویس را ریاستارت کنید. مقدار SMTP_ALLOWLOCAL = "1" اجازه میدهد اسکریپتهای روی خود سرور به میلسرور محلی وصل شوند، بدون آنکه ارسال مستقیم به بیرون برای همه کاربران باز بماند.
علت سوم: hostname یا DNS سرور درست resolve نمیشود
وقتی با نام میزبان به پنل وصل میشوید ولی آن نام به IP فعلی سرور اشاره نمیکند، همین خطا را میگیرید. بررسی کنید:
hostname -f
dig +short server.example.com
خروجی dig باید دقیقاً IP اصلی سرور باشد. اگر رکورد A درست نیست یا نیمسرورها پاسخ نمیدهند، مشکل از زون دامنه است نه از cPanel؛ در این حالت رکوردهای A، CNAME و MX را در میزبانی DNS یا هر جایی که زون دامنه را نگه میدارید اصلاح کنید. تا زمان انتشار تغییرات، برای دسترسی اضطراری میتوانید مستقیماً با IP و پورت وارد شوید.
علت چهارم: گواهی SSL پنل منقضی یا ناهماهنگ است
مرورگرها در برخورد با گواهی منقضی یا گواهیای که نامش با آدرس واردشده نمیخواند، اتصال را قطع میکنند و پیام کلی خطای اتصال نمایش داده میشود. وضعیت گواهی پورت پنل را ببینید:
openssl s_client -connect server.example.com:2087 -servername server.example.com </dev/null 2>/dev/null | openssl x509 -noout -subject -dates
اگر تاریخ notAfter گذشته است، گواهی سرویسهای hostname را تمدید کنید:
/usr/local/cpanel/bin/checkallsslcerts
علت پنجم: دیسک پر شده است
پر شدن پارتیشن یا تمام شدن inodeها باعث میشود سرویسها نتوانند فایل موقت و سوکت بسازند و یکی پس از دیگری بیفتند. هر دو را چک کنید:
df -h
df -i
در همین حالت WHM پیام running out of disk space میدهد و حتی بعد از آزاد کردن فضا هم تا پاک نشدن فایل کش مصرف دیسک باز نمیشود؛ این مورد را جداگانه در رفع مشکل Remove WHM Disk توضیح دادهایم. اگر / یا /var پر شده است، ابتدا فضای مصرفشده را پیدا کنید:
du -xh /var --max-depth=1 | sort -h | tail
معمولاً لاگهای بزرگ، بکاپهای قدیمی یا صف میل مقصرند. پیش از حذف هر فایلی مطمئن شوید که بکاپ یا داده مشتری نیست؛ حذف اشتباه در /home برگشتپذیر نخواهد بود. پس از آزادسازی فضا، سرویسها را دوباره بالا بیاورید.
چطور جلوی تکرارش را بگیریم
سه اقدام ساده بیشترین اثر را دارند: فعال نگه داشتن پایش فضای دیسک و تنظیم هشدار پیش از پر شدن پارتیشن، اضافه کردن IP ثابت دفتر یا محل کارتان به csf.allow تا بلاکهای خودکار شما را بیرون نگذارند، و مستند کردن مسیر دسترسی اضطراری به سرور. همچنین تاریخ انقضای لایسنس و گواهیهای SSL را در تقویم داشته باشید. اگر سرور تولیدی دارید و نمیخواهید هر بار خودتان درگیر این چرخه شوید، سپردن پایش و نگهداری به تیم پشتیبانی و مدیریت سرور منطقیتر از رفع موردی خطاهاست.
جمعبندی ساده: اول ببینید سرویس روی پورت گوش میدهد یا نه، بعد فایروال، بعد DNS، بعد گواهی، و در نهایت فضای دیسک. با همین ترتیب و بدون آزمون و خطا، تقریباً همه موارد Connection to server failed ریشهیابی میشوند.