CH-J Server Managerمدیریت سرور از طریق SSH
منو
همهٔ راهنماها و مقاله‌ها ←

سرور آنلاین است اما پورت SSH 22 پاسخ نمی‌دهد

کلاینت، شبکه، فایروال و sshd را به‌ترتیب بررسی کنید تا مشخص شود چرا سرور پاسخ می‌دهد اما SSH نه.

خود پورت را آزمایش کنید

پاسخ به ping یا کار کردن وب‌سایت چیزی دربارهٔ SSH نشان نمی‌دهد، چون هرکدام از پروتکل یا پورت متفاوتی استفاده می‌کنند. پورت TCP را مستقیماً از کلاینت آزمایش کنید. Connection refused یعنی چیزی پاسخ داده، اما هیچ سرویسی اتصال را نپذیرفته است. timeout یعنی هیچ پاسخی دریافت نشده و معمولاً به فایروال، مسیریابی یا دستگاهی با بار بیش از حد اشاره دارد.

nc -vz -w 5 server.example 22
ssh -v -o ConnectTimeout=5 user@server.example

Connection refused: بررسی sshd از کنسول

از کنسول ارائه‌دهنده یا هایپروایزر استفاده کنید، نه SSH. بررسی کنید که سرویس در حال اجرا باشد، روی کدام آدرس و پورت گوش می‌دهد و آیا پیکربندی معتبر است. در نسخه‌های جدید Ubuntu، سرویس SSH از طریق ssh.socket راه‌اندازی می‌شود، پس واحد socket را هم بررسی کنید. در توزیع‌های دیگر ممکن است نام سرویس sshd باشد.

sudo systemctl status ssh.service ssh.socket
sudo ss -lntp | grep -E ':22\b|sshd'
sudo sshd -t
sudo journalctl -u ssh -n 50 --no-pager

Timeout: فایروال‌ها را بررسی کنید

فایروال روی سرور و هر فیلتر خارج از آن، مانند گروه امنیتی ابری، روتر یا پنل ارائه‌دهنده را بررسی کنید. برای اینکه ببینید اصلاً بسته‌ای می‌رسد یا نه، هنگام تلاش برای اتصال، tcpdump را روی سرور اجرا کنید. اگر چیزی دیده نشد، مسدودسازی پیش از رسیدن به سرور رخ می‌دهد. اگر بسته‌ها می‌رسند ولی پاسخی خارج نمی‌شود، علت را روی سرور جست‌وجو کنید.

sudo ufw status verbose
sudo nft list ruleset | less
sudo tcpdump -ni any tcp port 22

مسدود شدن به‌دلیل fail2ban یا تغییر پورت

پس از ورودهای ناموفق، ممکن است fail2ban آدرس شما را مسدود کرده باشد؛ در این حالت فقط اتصال از آدرس شما با timeout یا رد اتصال روبه‌رو می‌شود. آزمایش از شبکه‌ای دیگر این موضوع را سریع روشن می‌کند. همچنین بررسی کنید آیا پورت با Port تغییر کرده یا با ListenAddress به یک آدرس محدود شده است؛ این تنظیمات ممکن است در sshd_config یا فایلی در مسیر زیر باشند: /etc/ssh/sshd_config.d.

sudo fail2ban-client status sshd
sudo sshd -T | grep -E '^(port|listenaddress) '

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

اگر اتصال TCP موفق است ولی پیام آغازین SSH هرگز نمی‌رسد، sshd فقط تا حدی فعال است یا سیستم زیر بار بیش از حد قرار دارد. حافظه، فضای دیسک و بار سیستم را از کنسول بررسی کنید. پر شدن دیسک یا تمام شدن حافظه می‌تواند مانع ایجاد نشست‌های جدید شود، در حالی که سرویس‌های موجود همچنان پاسخ می‌دهند.

uptime
free -h
df -h

بررسی با CH-J Server Manager

ابزار Server Diagnostics می‌تواند ping، اتصال TCP و رشتهٔ شناسایی SSH را بدون ورود، برای IPv4 و IPv6 آزمایش کند تا ببینید کدام مرحله شکست می‌خورد. این ابزار فقط از رایانهٔ شما کار می‌کند. نمی‌تواند داخل سرور را ببیند یا مشخص کند کدام فایروال بسته را دور انداخته است، بنابراین برای بررسی‌های بالا همچنان به کنسول نیاز دارید.

مستندات مفصل

OpenSSH: sshd ←

man: ss ←

باز کردن قفل بیومتریک و امنیت ←