سرور مجازی روشن است ولی 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
میتواند نشاندهنده مشکل در مسیر شبکه، فایروال یا دسترسی به مقصد باشد.
در این شرایط بررسی موارد زیر مهم است:
- IP سرور
- Route
- Gateway
- Firewall
- وضعیت شبکه VPS
- وضعیت شبکه دیتاسنتر
مرحله دوازدهم: بررسی 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 دسترسی قطع شد
یکی از سناریوهای مهم این است:
- کاربر فایل SSH را ویرایش میکند.
- تنظیمات اشتباه میشود.
- SSH Restart میشود.
- سرویس دیگر اجرا نمیشود.
- اتصال 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 متصل شوید، ابتدا مراحل زیر را بررسی کنید:
- IP سرور را کنترل کنید.
- پورت SSH را بررسی کنید.
- اتصال TCP به پورت را تست کنید.
- در صورت دسترسی، Console VPS را باز کنید.
- وضعیت سرویس SSH را بررسی کنید.
- فایروال سیستمعامل را بررسی کنید.
- فضای دیسک و RAM را بررسی کنید.
- در صورت ادامه مشکل، اطلاعات خطا را برای پشتیبانی ارسال کنید.
هنگام ارسال تیکت پشتیبانی، رمز عبور 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
هنوز دیدگاهی ثبت نشده است. اولین نفری باشید که نظر میدهید!
✍️ دیدگاه خود را بنویسید