دسته‌بندی نشده

سرور مجازی روشن است ولی SSH کار نمی‌کند؛ مشکل از کجاست؟

فهرست مطالب

سرور مجازی روشن است ولی SSH کار نمی‌کند؛ مشکل از کجاست؟ راهنمای کامل عیب‌یابی SSH در VPS

یکی از رایج‌ترین مشکلاتی که کاربران هنگام استفاده از سرور مجازی یا VPS با آن مواجه می‌شوند، قطع شدن دسترسی SSH است.

ممکن است پنل مدیریت VPS نشان دهد که سرور کاملاً روشن و فعال است، اما هنگام اتصال با PuTTY، Windows Terminal، PowerShell یا ترمینال لینوکس، اتصال SSH برقرار نشود.

در چنین شرایطی بسیاری از کاربران تصور می‌کنند سرور خاموش شده است؛ در حالی که روشن بودن VPS و فعال بودن سرویس SSH دو موضوع کاملاً متفاوت هستند.

در این مقاله، مرحله‌به‌مرحله بررسی می‌کنیم که:

  • چرا SSH کار نمی‌کند؟
  • چگونه بفهمیم مشکل از کامپیوتر خودمان است یا VPS؟
  • چگونه وضعیت سرویس SSH را بررسی کنیم؟
  • اگر SSH خاموش شده باشد، چگونه آن را فعال کنیم؟
  • چگونه پورت SSH را بررسی کنیم؟
  • چگونه فایروال را بررسی کنیم؟
  • اگر Fail2Ban ما را بلاک کرده باشد چه کنیم؟
  • اگر دیسک یا RAM سرور پر شده باشد چه اتفاقی می‌افتد؟
  • چگونه از طریق Console یا VNC به VPS دسترسی پیدا کنیم؟
  • چه زمانی مشکل از شبکه دیتاسنتر یا ارائه‌دهنده VPS است؟
  • و در نهایت، چه زمانی باید با پشتیبانی فروشنده VPS تماس بگیریم؟

این آموزش برای چه سرورهایی مناسب است؟

این راهنما عمدتاً برای VPSهای لینوکسی طراحی شده است.

دستورات و روش‌های این مقاله روی بسیاری از توزیع‌های محبوب لینوکس قابل استفاده هستند، از جمله:

Ubuntu

  • Ubuntu 20.04
  • Ubuntu 22.04
  • Ubuntu 24.04
  • نسخه‌های جدیدتر Ubuntu

Debian

  • Debian 10
  • Debian 11
  • Debian 12
  • Debian 13

توزیع‌های مبتنی بر RHEL

  • Rocky Linux
  • AlmaLinux
  • CentOS
  • RHEL
  • Oracle Linux

سایر توزیع‌ها

  • Fedora Server
  • openSUSE
  • SUSE Linux Enterprise

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


SSH چیست و چرا اهمیت دارد؟

SSH مخفف Secure Shell است و یکی از مهم‌ترین روش‌های مدیریت سرورهای لینوکسی محسوب می‌شود.

با استفاده از SSH می‌توانید بدون داشتن دسترسی فیزیکی به سرور، از راه دور وارد VPS شوید و کارهایی مانند موارد زیر را انجام دهید:

  • نصب نرم‌افزار
  • مدیریت فایل‌ها
  • اجرای دستورات لینوکس
  • مدیریت وب‌سرور
  • مدیریت MySQL و MariaDB
  • نصب PHP
  • مدیریت Docker
  • تنظیم فایروال
  • ایجاد کاربران
  • مدیریت سرویس‌ها
  • مشاهده لاگ‌ها
  • به‌روزرسانی سیستم

به‌صورت معمول اتصال SSH به شکل زیر انجام می‌شود:

ssh root@SERVER_IP

مثلاً:

ssh root@192.168.1.100

پورت پیش‌فرض SSH نیز معمولاً:

22

است.

البته مدیر سرور می‌تواند پورت SSH را تغییر دهد.


روشن بودن VPS به چه معناست؟

وقتی در پنل فروشنده یا ارائه‌دهنده VPS وضعیت سرور را Running / Online / Powered On مشاهده می‌کنید، فقط مشخص است که ماشین مجازی در حال اجراست.

این وضعیت تضمین نمی‌کند که:

  • سیستم‌عامل کاملاً سالم باشد.
  • شبکه درست کار کند.
  • سرویس SSH فعال باشد.
  • پورت SSH باز باشد.
  • فایروال اجازه اتصال بدهد.
  • IP سرور قابل دسترسی باشد.
  • RAM کافی وجود داشته باشد.
  • دیسک پر نشده باشد.

بنابراین ممکن است وضعیت VPS در پنل:

Running

باشد اما SSH پاسخ ندهد.


مرحله اول: بررسی کنید مشکل فقط مربوط به SSH است یا کل سرور

قبل از تغییر تنظیمات سرور، ابتدا باید مشخص کنیم VPS واقعاً در شبکه قابل دسترسی است یا خیر.

تست Ping

در ویندوز Command Prompt یا PowerShell را باز کنید و بزنید:

ping SERVER_IP

مثلاً:

ping 185.10.20.30

اگر Ping پاسخ داد

مثلاً:

Reply from 185.10.20.30

این موضوع نشان می‌دهد که IP سرور از سیستم شما قابل دسترسی است.

اما توجه کنید:

پاسخ دادن Ping به معنی سالم بودن SSH نیست.

ممکن است Ping کار کند اما پورت 22 بسته باشد.


اگر Ping پاسخ نداد

عدم پاسخ Ping می‌تواند دلایل مختلفی داشته باشد.

برای مثال:

  • ICMP روی VPS مسدود شده است.
  • فایروال سرور Ping را مسدود کرده است.
  • فایروال شبکه ارائه‌دهنده VPS فعال است.
  • مشکل شبکه وجود دارد.
  • IP اشتباه وارد شده است.
  • سرور واقعاً از شبکه خارج شده است.

بنابراین Ping به‌تنهایی معیار مناسبی برای تشخیص خرابی VPS نیست.


مرحله دوم: بررسی پورت SSH

ممکن است اینترنت و IP سرور کاملاً سالم باشند اما پورت SSH بسته باشد.

پورت پیش‌فرض SSH:

22

است.

در ویندوز می‌توانید PowerShell را باز کنید و بنویسید:

Test-NetConnection SERVER_IP -Port 22

مثلاً:

Test-NetConnection 185.10.20.30 -Port 22

اگر نتیجه شامل موارد زیر باشد:

TcpTestSucceeded : True

یعنی اتصال TCP به پورت 22 برقرار است.

اگر:

TcpTestSucceeded : False

باشد، باید وضعیت پورت و سرویس SSH را بررسی کنید.


اگر پورت SSH تغییر کرده باشد چه؟

یکی از اشتباهات رایج این است که کاربر تصور می‌کند SSH همیشه روی پورت 22 اجرا می‌شود.

ممکن است مدیر سرور برای افزایش امنیت، پورت SSH را مثلاً به:

2222

تغییر داده باشد.

در این حالت اتصال معمولی:

ssh root@SERVER_IP

کار نمی‌کند.

باید پورت صحیح را مشخص کنید:

ssh -p 2222 root@SERVER_IP

در PuTTY نیز باید پورت صحیح را در قسمت Port وارد کنید.


مرحله سوم: بررسی سرویس SSH از طریق Console

اگر SSH کاملاً قطع شده باشد، نمی‌توانیم از طریق SSH وارد سرور شویم.

در این شرایط باید از امکاناتی مانند:

  • VPS Console
  • VNC
  • Web Console
  • Serial Console
  • KVM

استفاده کنیم؛ البته بسته به امکانات ارائه‌دهنده VPS.

اگر فروشگاه VPS شما برای سرورها Console تحت وب ارائه می‌دهد، این روش یکی از مهم‌ترین راه‌های نجات سرور در زمان قطع شدن SSH است.

پس از ورود به Console، وضعیت سرویس SSH را بررسی کنید.


بررسی SSH در Ubuntu و Debian

در Ubuntu و Debian معمولاً سرویس SSH با یکی از این نام‌ها مدیریت می‌شود:

ssh

یا:

sshd

ابتدا:

systemctl status ssh

را اجرا کنید.

اگر سرویس فعال باشد، چیزی شبیه این مشاهده می‌کنید:

Active: active (running)

اگر سرویس متوقف باشد، ممکن است ببینید:

Active: inactive

در این صورت می‌توانید آن را اجرا کنید:

systemctl start ssh

و برای فعال شدن خودکار پس از ریبوت:

systemctl enable ssh

بررسی SSH در Rocky Linux، AlmaLinux و CentOS

در بسیاری از سیستم‌های مبتنی بر RHEL از سرویس:

sshd

استفاده می‌شود.

وضعیت سرویس:

systemctl status sshd

راه‌اندازی:

systemctl start sshd

فعال‌سازی هنگام بوت:

systemctl enable sshd

اگر SSH بعد از تغییر تنظیمات اجرا نمی‌شود

گاهی کاربر فایل تنظیمات SSH را تغییر می‌دهد و یک اشتباه تایپی باعث می‌شود سرویس SSH دیگر اجرا نشود.

فایل اصلی تنظیمات:

/etc/ssh/sshd_config

است.

قبل از Restart بهتر است تنظیمات را بررسی کنید:

sshd -t

اگر هیچ خروجی‌ای دریافت نکردید، معمولاً یعنی خطای Syntax وجود ندارد.

اگر خطایی نمایش داده شد، ابتدا همان خطا را برطرف کنید.


بررسی پورت SSH با دستور ss

برای اینکه بفهمیم SSH واقعاً روی چه پورتی در حال Listen کردن است، می‌توانیم از ss استفاده کنیم:

ss -lntp | grep ssh

یا:

ss -lntp | grep :22

اگر SSH روی پورت 22 فعال باشد، باید چیزی شبیه Listen شدن روی آن پورت مشاهده کنید.

مثلاً:

LISTEN 0 128 0.0.0.0:22

یا:

LISTEN 0 128 [::]:22

اگر هیچ خروجی وجود نداشت، احتمالاً سرویس SSH روی پورت موردنظر Listen نمی‌کند.


مرحله چهارم: بررسی فایروال

یکی از رایج‌ترین دلایل قطع شدن SSH، فایروال است.

ممکن است SSH کاملاً سالم باشد اما فایروال اتصال ورودی به پورت 22 را مسدود کرده باشد.


بررسی UFW در Ubuntu

اگر از UFW استفاده می‌کنید:

ufw status

اگر SSH اجازه دسترسی نداشته باشد، می‌توانید پورت 22 را باز کنید:

ufw allow 22/tcp

یا:

ufw allow ssh

سپس:

ufw status

را بررسی کنید.

نکته مهم

اگر SSH روی پورت دیگری اجرا می‌شود، مثلاً 2222:

ufw allow 2222/tcp

بررسی Firewalld

در Rocky Linux، AlmaLinux، Fedora و بعضی سیستم‌های دیگر ممکن است firewalld استفاده شود.

وضعیت:

firewall-cmd --state

برای مشاهده قوانین:

firewall-cmd --list-all

برای باز کردن SSH استاندارد:

firewall-cmd --permanent --add-service=ssh

سپس:

firewall-cmd --reload

اگر پورت خاصی دارید:

firewall-cmd --permanent --add-port=2222/tcp

و سپس:

firewall-cmd --reload

بررسی iptables

در بعضی سرورها قوانین فایروال مستقیماً با iptables مدیریت می‌شوند.

برای مشاهده قوانین:

iptables -L -n -v

دنبال قوانینی باشید که پورت SSH را مسدود می‌کنند.

مثلاً:

DROP tcp -- anywhere anywhere tcp dpt:22

می‌تواند نشانه مسدود شدن پورت SSH باشد.

هشدار: قبل از حذف یا تغییر قوانین iptables مطمئن شوید که دقیقاً می‌دانید چه کاری انجام می‌دهید؛ تغییر اشتباه قوانین فایروال می‌تواند دسترسی شبکه به کل VPS را قطع کند.


مرحله پنجم: بررسی Fail2Ban

اگر چند بار رمز عبور را اشتباه وارد کرده باشید، ممکن است Fail2Ban آدرس IP شما را مسدود کرده باشد.

برای بررسی وضعیت:

systemctl status fail2ban

سپس:

fail2ban-client status

اگر Jail مربوط به SSH فعال باشد، می‌توانید وضعیت آن را بررسی کنید.

مثلاً:

fail2ban-client status sshd

در بعضی نسخه‌ها نام Jail ممکن است متفاوت باشد.

اگر IP شما در لیست Ban قرار گرفته باشد، باید آن را از Ban خارج کنید.


مرحله ششم: بررسی پر شدن دیسک

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

برای بررسی:

df -h

اگر پارتیشن اصلی به 100 درصد رسیده باشد، ممکن است مشکلات مختلفی ایجاد شود.

مثلاً:

  • سرویس‌ها اجرا نشوند.
  • SSH با مشکل مواجه شود.
  • لاگ‌ها نوشته نشوند.
  • MySQL متوقف شود.
  • وب‌سرور از کار بیفتد.
  • سیستم رفتار غیرعادی داشته باشد.

مثلاً:

/dev/vda1   100G   100G   0G   100% /

در این وضعیت باید علت پر شدن دیسک را پیدا کنید.


پیدا کردن فایل‌های حجیم

برای مشاهده مصرف فضای دیسک می‌توانید از:

du -sh /*

استفاده کنید.

برای بررسی /var:

du -sh /var/*

و برای لاگ‌ها:

du -sh /var/log/*

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


مرحله هفتم: بررسی RAM

گاهی سرور به دلیل کمبود شدید RAM عملاً پاسخ‌گویی مناسبی ندارد.

برای بررسی:

free -h

همچنین می‌توانید از:

top

یا:

htop

استفاده کنید.

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


بررسی مصرف CPU

دستور:

top

می‌تواند مشخص کند چه پردازشی CPU را مصرف می‌کند.

برای مشاهده سریع‌تر پردازش‌ها:

ps aux --sort=-%cpu | head

ممکن است یک برنامه، اسکریپت، Docker Container یا سرویس معیوب باعث مصرف شدید CPU شده باشد.


مرحله هشتم: بررسی وضعیت شبکه داخل VPS

اگر به Console دسترسی دارید، ابتدا وضعیت Interface شبکه را بررسی کنید:

ip addr

سپس Routing:

ip route

باید Default Route مناسبی وجود داشته باشد.

برای مثال:

default via 192.168.1.1 dev eth0

نام Interface ممکن است متفاوت باشد و الزاماً eth0 نیست.

ممکن است نام‌هایی مانند موارد زیر ببینید:

ens3
ens18
eth0
enp1s0

تست اتصال اینترنت از داخل VPS

پس از بررسی Interface، می‌توانید ابتدا Gateway را تست کنید.

سپس:

ping 8.8.8.8

اگر IP خارجی Ping شود اما:

ping google.com

کار نکند، احتمالاً مشکل DNS وجود دارد.

در چنین شرایطی وضعیت DNS را بررسی کنید.


مرحله نهم: بررسی DNS

اگر VPS می‌تواند به IPها متصل شود اما نام دامنه‌ها را Resolve نمی‌کند، مشکل ممکن است DNS باشد.

مثلاً:

ping 8.8.8.8

کار می‌کند ولی:

ping google.com

کار نمی‌کند.

در این حالت فایل DNS را بررسی کنید:

cat /etc/resolv.conf

البته نحوه مدیریت DNS در نسخه‌های مختلف لینوکس متفاوت است و در سیستم‌های جدید ممکن است systemd-resolved یا NetworkManager مسئول مدیریت DNS باشد.


مرحله دهم: بررسی لاگ‌های SSH

اگر سرویس SSH اجرا نمی‌شود، لاگ‌ها می‌توانند دلیل مشکل را مشخص کنند.

در سیستم‌هایی که از systemd استفاده می‌کنند:

journalctl -u ssh

یا:

journalctl -u sshd

برای مشاهده خطاهای اخیر:

journalctl -u ssh --since "30 minutes ago"

یا:

journalctl -u sshd --since "30 minutes ago"

در بعضی سیستم‌ها نیز اطلاعات SSH در فایل‌های لاگ قرار می‌گیرند.

برای مثال در Debian و Ubuntu ممکن است:

/var/log/auth.log

را بررسی کنید.

در سیستم‌های RHEL-based نیز ممکن است:

/var/log/secure

وجود داشته باشد.


مرحله یازدهم: بررسی تنظیمات SSH

فایل اصلی:

/etc/ssh/sshd_config

است.

برای مشاهده تنظیمات مهم:

grep -E '^(Port|PermitRootLogin|PasswordAuthentication|PubkeyAuthentication|ListenAddress)' /etc/ssh/sshd_config

موارد مهم شامل:

Port

مشخص می‌کند SSH روی چه پورتی اجرا شود.

مثلاً:

Port 22

PermitRootLogin

مشخص می‌کند ورود مستقیم Root مجاز باشد یا خیر.

PasswordAuthentication

مشخص می‌کند احراز هویت با رمز عبور مجاز باشد یا خیر.

PubkeyAuthentication

برای احراز هویت با SSH Key استفاده می‌شود.


اگر رمز عبور درست است ولی SSH می‌گوید Permission denied

این مشکل با «SSH وصل نمی‌شود» کمی متفاوت است.

اگر چنین پیامی دریافت می‌کنید:

Permission denied

ممکن است شبکه و SSH کاملاً سالم باشند و مشکل مربوط به احراز هویت باشد.

دلایل احتمالی:

  • رمز عبور اشتباه
  • ورود Root غیرفعال شده
  • PasswordAuthentication غیرفعال است
  • SSH Key اشتباه است
  • Permission فایل authorized_keys مشکل دارد
  • کاربر غیرفعال شده است
  • Fail2Ban IP شما را Block کرده است

اگر SSH روی پورت 22 است ولی Connection Refused می‌گیرید

پیغام:

Connection refused

معمولاً نشان می‌دهد که مقصد قابل دسترسی است اما سرویسی روی آن پورت اتصال را قبول نمی‌کند یا Firewall/Policy آن را Reject می‌کند.

در VPS ابتدا این موارد را بررسی کنید:

systemctl status ssh

یا:

systemctl status sshd

سپس:

ss -lntp | grep :22

اگر Connection Timed Out دریافت می‌کنید

پیغام:

Connection timed out

معمولاً بیشتر به مسائل شبکه یا فیلتر شدن ترافیک مربوط است.

موارد احتمالی:

  • Firewall
  • Security Group
  • فایروال پنل VPS
  • فیلترینگ شبکه
  • مشکل Route
  • مشکل IP
  • مشکل دیتاسنتر
  • سرویس شبکه VPS
  • قطع شدن کامل شبکه سرور

در این حالت باید علاوه بر خود VPS، تنظیمات شبکه در پنل ارائه‌دهنده را نیز بررسی کنید.


اگر No route to host دریافت می‌کنید

پیغام:

No route to host

می‌تواند نشان‌دهنده مشکل در مسیر شبکه، فایروال یا دسترسی به مقصد باشد.

در این شرایط بررسی موارد زیر مهم است:

  1. IP سرور
  2. Route
  3. Gateway
  4. Firewall
  5. وضعیت شبکه VPS
  6. وضعیت شبکه دیتاسنتر

مرحله دوازدهم: بررسی Security Group یا Firewall پنل VPS

گاهی کاربر داخل لینوکس همه‌چیز را درست تنظیم کرده است، اما در پنل ارائه‌دهنده VPS یک Firewall جداگانه وجود دارد.

برای مثال ممکن است پنل VPS قوانینی مانند:

Inbound TCP 22

داشته باشد.

اگر این Rule حذف شده باشد، حتی اگر UFW داخل لینوکس اجازه SSH بدهد، اتصال ممکن است برقرار نشود.

بنابراین در پنل VPS بررسی کنید:

  • Firewall
  • Security Group
  • Network ACL
  • Port Rules
  • IP Restrictions

مرحله سیزدهم: بررسی IP سرور

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

اطمینان پیدا کنید که IP صحیح VPS را وارد کرده‌اید.

به‌خصوص اگر:

  • VPS جدید ساخته‌اید.
  • IP سرور تغییر کرده است.
  • سرور Reinstall شده است.
  • IPv4 و IPv6 هر دو دارید.
  • چند VPS دارید.

در PuTTY نیز بررسی کنید که IP و Port صحیح وارد شده باشد.


مرحله چهاردهم: بررسی IPv4 و IPv6

ممکن است سیستم شما تلاش کند از IPv6 استفاده کند، در حالی که مسیر IPv6 مشکل دارد.

برای تست می‌توانید مشخصاً IPv4 را امتحان کنید:

ssh -4 root@SERVER_IP

و برای IPv6:

ssh -6 root@SERVER_IP

اگر IPv4 کار کند ولی IPv6 کار نکند، مشکل احتمالاً مربوط به مسیر یا تنظیمات IPv6 است.


مرحله پانزدهم: بررسی تغییرات اخیر

اگر SSH تا چند دقیقه قبل کاملاً سالم بوده، به این فکر کنید که چه تغییری اخیراً انجام شده است.

مثلاً:

  • نصب فایروال
  • تغییر پورت SSH
  • ویرایش sshd_config
  • نصب Fail2Ban
  • تغییر IP
  • تغییر Route
  • نصب Docker
  • تغییر تنظیمات شبکه
  • نصب VPN
  • اجرای اسکریپت امنیتی
  • به‌روزرسانی سیستم

بسیاری از مشکلات SSH دقیقاً بعد از یکی از این تغییرات ایجاد می‌شوند.


اگر بعد از تغییر sshd_config دسترسی قطع شد

یکی از سناریوهای مهم این است:

  1. کاربر فایل SSH را ویرایش می‌کند.
  2. تنظیمات اشتباه می‌شود.
  3. SSH Restart می‌شود.
  4. سرویس دیگر اجرا نمی‌شود.
  5. اتصال SSH قطع می‌شود.

برای جلوگیری از این مشکل، همیشه قبل از Restart تنظیمات را تست کنید:

sshd -t

اگر خطایی نمایش داده شد، ابتدا آن را برطرف کنید.


اگر VPS کاملاً هنگ کرده باشد چه؟

گاهی SSH تنها مشکل نیست.

ممکن است:

  • Ping پاسخ ندهد.
  • SSH پاسخ ندهد.
  • وب‌سایت باز نشود.
  • سرویس‌ها متوقف شوند.
  • Console نیز کند باشد.

در این حالت ممکن است VPS دچار:

  • مصرف شدید CPU
  • کمبود RAM
  • I/O شدید دیسک
  • Kernel Problem
  • مشکل Storage
  • مشکل شبکه
  • Processهای معیوب

شده باشد.

اگر Console همچنان در دسترس است، ابتدا منابع سیستم را بررسی کنید.

اگر Console نیز پاسخ نمی‌دهد، ممکن است نیاز به Restart از پنل VPS باشد.


آیا VPS را Restart کنیم؟

Restart کردن همیشه اولین راه‌حل نیست.

قبل از Restart بهتر است اگر دسترسی Console دارید:

top

و:

free -h

و:

df -h

را بررسی کنید.

همچنین لاگ‌ها را بررسی کنید.

اگر سرور کاملاً قفل شده و هیچ روش دیگری برای بازگرداندن سرویس وجود ندارد، Restart از پنل VPS می‌تواند آخرین راه‌حل باشد.

هشدار: Restart ممکن است باعث قطع سرویس‌های فعال و از دست رفتن اطلاعاتی شود که هنوز روی دیسک نوشته نشده‌اند.


چه زمانی مشکل از ارائه‌دهنده VPS است؟

اگر موارد زیر را بررسی کرده‌اید:

  • IP صحیح است.
  • پورت صحیح است.
  • سرویس SSH فعال است.
  • Firewall داخلی اجازه اتصال می‌دهد.
  • Fail2Ban شما را Ban نکرده است.
  • منابع VPS کافی است.
  • تنظیمات شبکه صحیح است.
  • Route درست است.

اما همچنان SSH از هیچ شبکه‌ای قابل دسترسی نیست، احتمال دارد مشکل در زیرساخت ارائه‌دهنده VPS باشد.

در این شرایط بهتر است اطلاعات زیر را برای پشتیبانی ارسال کنید:

IP سرور:
پورت SSH:
سیستم‌عامل:
زمان شروع مشکل:
پیغام خطا:
آیا Ping پاسخ می‌دهد؟
آیا Console قابل دسترسی است؟
آیا وب‌سایت یا سرویس‌های دیگر فعال هستند؟

این اطلاعات باعث می‌شود تیم پشتیبانی سریع‌تر مشکل را بررسی کند.


چک‌لیست سریع رفع مشکل SSH

اگر عجله دارید، این ترتیب را دنبال کنید:

1. IP را بررسی کنید

آیا IP صحیح است؟

2. پورت را بررسی کنید

Test-NetConnection SERVER_IP -Port 22

3. از Console وارد VPS شوید

اگر SSH کار نمی‌کند، از Console/VNC/KVM استفاده کنید.

4. وضعیت SSH را بررسی کنید

Ubuntu/Debian:

systemctl status ssh

Rocky/Alma/CentOS:

systemctl status sshd

5. تنظیمات SSH را بررسی کنید

sshd -t

6. پورت Listening را بررسی کنید

ss -lntp | grep ssh

7. فایروال را بررسی کنید

Ubuntu:

ufw status

RHEL-based:

firewall-cmd --list-all

8. Fail2Ban را بررسی کنید

fail2ban-client status

9. فضای دیسک را بررسی کنید

df -h

10. RAM را بررسی کنید

free -h

11. شبکه را بررسی کنید

ip addr
ip route

12. لاگ SSH را بررسی کنید

journalctl -u ssh --since "30 minutes ago"

یا:

journalctl -u sshd --since "30 minutes ago"

جدول تشخیص سریع خطاهای SSH

خطا علت احتمالی
Connection refused سرویس SSH یا پورت مشکل دارد
Connection timed out Firewall یا مشکل شبکه
No route to host Route یا Firewall
Permission denied مشکل احراز هویت
Connection reset سرویس، شبکه یا فایروال
Host is down مشکل دسترسی شبکه یا سرور
Could not resolve hostname مشکل DNS یا نام میزبان
Too many authentication failures SSH Key یا محدودیت احراز هویت
Network is unreachable مشکل مسیر شبکه
Connection closed سرویس SSH یا تنظیمات احراز هویت

برای جلوگیری از قطع شدن SSH چه کنیم؟

پیشگیری بسیار بهتر از تعمیر سرور بعد از قطع شدن SSH است.

1. یک روش دسترسی اضطراری داشته باشید

اگر ارائه‌دهنده VPS امکان Console یا VNC دارد، آن را فعال نگه دارید.

2. قبل از تغییر SSH تنظیمات را تست کنید

sshd -t

3. قبل از فعال کردن Firewall اجازه SSH را بدهید

در Ubuntu:

ufw allow ssh

بعد Firewall را فعال کنید.

4. یک Session SSH دوم باز نگه دارید

هنگام تغییر تنظیمات SSH، Session فعلی را نبندید.

یک اتصال SSH دوم ایجاد کنید و بعد تنظیمات جدید را آزمایش کنید.

5. از SSH Key استفاده کنید

احراز هویت با SSH Key معمولاً انتخاب مناسبی برای مدیریت سرور است.

6. Backup داشته باشید

Backup فقط برای زمانی نیست که فایل‌ها حذف شوند؛ در صورت خرابی سیستم‌عامل یا تنظیمات شبکه نیز بسیار مهم است.


اگر مشتری VPS شما هستید و SSH وصل نمی‌شود

اگر VPS شما در فروشگاه ما تهیه شده و با وجود روشن بودن سرور نمی‌توانید با SSH متصل شوید، ابتدا مراحل زیر را بررسی کنید:

  1. IP سرور را کنترل کنید.
  2. پورت SSH را بررسی کنید.
  3. اتصال TCP به پورت را تست کنید.
  4. در صورت دسترسی، Console VPS را باز کنید.
  5. وضعیت سرویس SSH را بررسی کنید.
  6. فایروال سیستم‌عامل را بررسی کنید.
  7. فضای دیسک و RAM را بررسی کنید.
  8. در صورت ادامه مشکل، اطلاعات خطا را برای پشتیبانی ارسال کنید.

هنگام ارسال تیکت پشتیبانی، رمز عبور Root یا SSH Key خصوصی خود را ارسال نکنید.


جمع‌بندی

روشن بودن VPS به این معنی نیست که SSH حتماً باید کار کند.

وقتی سرور روشن است اما SSH وصل نمی‌شود، باید مشکل را مرحله‌به‌مرحله بررسی کرد:

IP → پورت → شبکه → سرویس SSH → تنظیمات SSH → Firewall → Fail2Ban → منابع سیستم → لاگ‌ها → زیرساخت ارائه‌دهنده

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

اگر به Console VPS دسترسی دارید، حتی در زمان قطع بودن SSH نیز معمولاً می‌توانید مستقیماً وارد سیستم‌عامل شوید و مشکل را عیب‌یابی کنید.

به همین دلیل، هنگام خرید VPS بهتر است علاوه بر منابعی مانند CPU، RAM و فضای ذخیره‌سازی، به امکانات مدیریتی مانند Console، VNC، Snapshot و Backup نیز توجه کنید.


نکته مهم

این آموزش برای VPSهای لینوکسی نوشته شده است. دستورات اصلی آن برای Ubuntu، Debian، Rocky Linux، AlmaLinux، CentOS، Fedora، RHEL و بسیاری از توزیع‌های لینوکس کاربرد دارند.

در VPSهای Windows Server، روش عیب‌یابی متفاوت است و معمولاً به‌جای SSH باید سرویس Remote Desktop (RDP)، Windows Firewall، Remote Desktop Services و تنظیمات شبکه بررسی شوند.

🖥️

سرور لینوکس قدرتمند برای پروژه‌های شما

برای میزبانی وب‌سایت، اجرای برنامه‌ها و مدیریت سرویس‌های خود، می‌توانید پلن‌های سرور مجازی ایرانیکا سرور را بررسی کنید و متناسب با نیازتان انتخاب کنید.

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

🚀 همین حالا سفارش دهید⚡ راه‌اندازی سریع و بدون دردسر

🎯 چالش آموزشی
مباحثی که در این مقاله یاد گرفتید را در عمل پیاده‌سازی کنید و نتیجه را با ما به اشتراک بگذارید.
شروع چالش

💬 دیدگاه‌ها 0

هنوز دیدگاهی ثبت نشده است. اولین نفری باشید که نظر می‌دهید!

✍️ دیدگاه خود را بنویسید