آموزشی لینوکس

چرا SSH بعد از تغییر پورت وصل نمی‌شود؟ راهنمای کامل نجات VPS

تغییر پورت پیش‌فرض SSH یکی از اقدامات رایج مدیران سرور برای کاهش حملات خودکار، اسکن پورت‌ها و افزایش امنیت است. به‌عنوان مثال ممکن است پورت SSH را از 22 به عددی مانند 2222، 2200 یا یک پورت سفارشی تغییر دهید.اما یک اشتباه کوچک هنگام تغییر تنظیمات می‌تواند باعث شود بعد از خروج از سرور، دیگر نتوانید با SSH وارد VPS شوید.

اگر بعد از تغییر پورت SSH با خطاهایی مانند Connection refused، Connection timed out، No route to host یا حتی قطع کامل اتصال مواجه شده‌اید، نگران نباشید. در بیشتر موارد خود VPS خاموش نشده است و می‌توان مشکل را از طریق کنسول، فایروال یا پنل مدیریت سرور برطرف کرد.

در این راهنما مرحله‌به‌مرحله بررسی می‌کنیم که چرا SSH بعد از تغییر پورت کار نمی‌کند و چگونه دسترسی به VPS را دوباره برگردانیم.

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

🔹 Ubuntu 20.04، 22.04، 24.04 و نسخه‌های جدیدتر

🔹 Debian 10، 11، 12 و 13

🔹 Rocky Linux، AlmaLinux، CentOS، RHEL

🔹 Oracle Linux، Fedora Server

🔹 openSUSE و SUSE Linux Enterprise

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

چرا بعد از تغییر پورت SSH اتصال قطع می‌شود؟

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

برای مثال اگر پورت SSH را از 22 به 2222 تغییر داده‌اید، باید موارد زیر را بررسی کنید:

🔹 تنظیمات سرویس SSH

🔹 فعال بودن سرویس SSH

🔹 باز بودن پورت در فایروال لینوکس

🔹 باز بودن پورت در فایروال یا Security Group ارائه‌دهنده VPS

🔹 استفاده از پورت صحیح هنگام اتصال

🔹 صحت فایل تنظیمات SSH

🔹 وضعیت SELinux در بعضی توزیع‌ها

🔹 وجود سرویس دیگری روی پورت جدید

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

اولین اشتباه رایج؛ فراموش کردن پورت جدید

اگر پورت SSH را تغییر داده‌اید، هنگام اتصال دیگر نباید از پورت 22 استفاده کنید.

مثلاً اگر پورت SSH شما 2222 است، دستور صحیح:

ssh root@SERVER_IP -p 2222

برای مثال:

ssh root@192.168.1.100 -p 2222

در PuTTY نیز باید پورت را روی مقدار جدید قرار دهید.

اگر در PuTTY همچنان پورت 22 را وارد کنید، اتصال به سرویس SSH جدید برقرار نمی‌شود.

⚠️ قبل از خروج از SSH یک نکته بسیار مهم

یکی از مهم‌ترین اصول هنگام تغییر پورت SSH این است که جلسه SSH فعلی را فوراً نبندید.

فرض کنید وارد سرور شده‌اید و پورت را به 2222 تغییر داده‌اید.

بهتر است یک ترمینال یا پنجره SSH دوم باز کنید و اتصال با پورت جدید را آزمایش کنید:

ssh root@SERVER_IP -p 2222

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

این کار یک روش ساده برای جلوگیری از قفل شدن خودتان خارج از VPS است.

بررسی فایل تنظیمات SSH

فایل اصلی تنظیمات SSH معمولاً این مسیر است:

/etc/ssh/sshd_config

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

nano /etc/ssh/sshd_config

به دنبال خطی مانند این بگردید:

Port 2222

اگر خط Port وجود ندارد، ممکن است SSH همچنان روی پورت پیش‌فرض 22 کار کند.

همچنین ممکن است خط زیر به شکل کامنت باشد:

#Port 22

علامت # یعنی این خط فعال نیست.

قبل از Restart حتماً تنظیمات SSH را بررسی کنید

یکی از خطرناک‌ترین اشتباهات این است که بعد از تغییر فایل sshd_config، بدون بررسی تنظیمات، سرویس SSH را Restart کنیم.

ابتدا تنظیمات را تست کنید:

sshd -t

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

اما اگر خطایی مشاهده کردید، قبل از Restart آن را برطرف کنید.

مثلاً ممکن است اشتباهی مانند این وجود داشته باشد:

Port abc

که معتبر نیست.

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

اگر به دنبال یک VPS پایدار با منابع اختصاصی CPU و RAM، دیسک NVMe پرسرعت، پهنای باند نامحدود و آپ‌تایم بالا هستید، ایرانیکاسرور بهترین انتخاب است. سرورهای مجازی ما با پشتیبانی ۲۴/۷ و امکان مدیریت کامل پورت SSH، امنیت و انعطاف‌پذیری را برای شما فراهم می‌کنند.

همین حالا سرور مجازی مناسب خود را انتخاب کنید و تجربه‌ای بدون قطعی داشته باشید.

تماس با پشتیبانی: 91302460021- | ایرانیکاسرور

بررسی کنید SSH روی چه پورتی در حال Listen است

پس از تغییر تنظیمات، باید بررسی کنید SSH واقعاً روی پورت موردنظر در حال گوش دادن است.

دستور:

ss -lntp | grep ssh

یا:

ss -lntp | grep :2222

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

LISTEN 0 128 0.0.0.0:2222

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

بررسی وضعیت سرویس SSH

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

systemctl status ssh

در برخی توزیع‌ها نام سرویس ممکن است sshd باشد:

systemctl status sshd

اگر سرویس متوقف شده باشد، وضعیت آن باید بررسی شود.

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

journalctl -u ssh –no-pager -n 100

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

journalctl -u sshd –no-pager -n 100

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

مشکل بسیار مهم: فایروال پورت جدید را بسته است

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

فرض کنید SSH را از 22 به 2222 تغییر داده‌اید.

اگر فایروال فقط پورت 22 را اجازه دهد، ممکن است SSH روی 2222 اجرا شود اما اتصال خارجی به آن مسدود شود.

بررسی UFW

در Ubuntu و Debian ممکن است UFW فعال باشد.

وضعیت آن را ببینید:

ufw status

اگر پورت 2222 باز نیست، می‌توانید آن را اضافه کنید:

ufw allow 2222/tcp

سپس:

ufw status

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

⚠️ مراقب UFW باشید!

اگر هنوز با SSH متصل هستید، قبل از بستن اتصال فعلی باید پورت جدید را در فایروال باز کنید.

برای مثال:

ufw allow 2222/tcp

سپس در یک پنجره جدید آزمایش کنید:

ssh root@SERVER_IP -p 2222

اگر اتصال موفق بود، می‌توانید درباره حذف پورت قدیمی تصمیم بگیرید.

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

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

وضعیت آن:

firewall-cmd –state

برای باز کردن پورت 2222:

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

سپس تنظیمات را Reload کنید:

firewall-cmd –reload

و بررسی کنید:

firewall-cmd –list-ports

مشکل SELinux در تغییر پورت SSH

در بعضی سیستم‌ها، به‌خصوص توزیع‌های مبتنی بر RHEL، ممکن است SELinux اجازه استفاده SSH از پورت جدید را ندهد.

ابتدا وضعیت SELinux را بررسی کنید:

getenforce

اگر خروجی Enforcing بود، باید مجاز بودن پورت جدید برای SSH را بررسی کنید.

برای مشاهده پورت‌های مجاز SSH:

semanage port -l | grep ssh

اگر ابزار semanage نصب نباشد، ممکن است لازم باشد بسته مربوط به ابزارهای SELinux را نصب کنید.

برای اضافه کردن پورت 2222:

semanage port -a -t ssh_port_t -p tcp 2222

اگر پورت قبلاً تعریف شده باشد، وضعیت آن را بررسی کنید و از دستور مناسب برای تغییر استفاده کنید.

پورت جدید ممکن است قبلاً توسط سرویس دیگری استفاده شود

فرض کنید پورت SSH را روی 2222 قرار داده‌اید، اما یک سرویس دیگر قبلاً روی این پورت فعال است.

بررسی:

ss -lntp | grep :2222

اگر سرویس دیگری روی این پورت باشد، باید یک پورت آزاد انتخاب کنید.

بررسی پورت از کامپیوتر شخصی

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

در Windows PowerShell:

Test-NetConnection SERVER_IP -Port 2222

مثلاً:

Test-NetConnection 192.168.1.100 -Port 2222

به مقدار TcpTestSucceeded دقت کنید.

اگر True باشد، اتصال TCP به پورت برقرار شده است.

اگر False باشد، باید فایروال، شبکه، سرویس SSH یا پورت موردنظر را بررسی کنید.

خطای Connection refused یعنی چه؟

اگر هنگام اتصال چنین خطایی می‌بینید:

Connection refused

معمولاً یعنی سیستم مقصد قابل دسترسی است اما روی پورت موردنظر سرویس مناسبی در حال پاسخ‌گویی نیست یا اتصال توسط سیستم رد شده است.

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

🔹 پورت را اشتباه وارد نکرده باشید.

🔹 سرویس SSH فعال باشد.

🔹 SSH روی پورت جدید Listen کند.

🔹 فایروال پورت را مسدود نکرده باشد.

🔹 تنظیمات SSH اشتباه نباشد.

خطای Connection timed out یعنی چه؟

اگر با Connection timed out مواجه شدید، ممکن است درخواست شما به پورت مقصد نمی‌رسد یا پاسخ آن توسط یک فایروال یا لایه شبکه مسدود می‌شود.

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

🔹 فایروال VPS

🔹 فایروال ارائه‌دهنده VPS

🔹 Security Group

🔹 Network ACL

🔹 پورت اشتباه

🔹 آدرس IP اشتباه

🔹 مشکل شبکه

اگر کاملاً از VPS خارج شده‌اید چه کار کنیم؟

اگر دیگر هیچ اتصال SSH ندارید، هنوز احتمال زیادی وجود دارد که بتوانید سرور را نجات دهید.

بیشتر ارائه‌دهندگان VPS امکاناتی مانند:

🔹 Console

🔹 Web Console

🔹 VNC

🔹 Serial Console

🔹 KVM

🔹 Rescue Mode

ارائه می‌کنند.

از طریق این ابزارها می‌توانید بدون SSH وارد سرور شوید و تنظیمات را اصلاح کنید.

روش نجات VPS با Console

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

سپس وارد سیستم شوید و فایل SSH را بررسی کنید:

nano /etc/ssh/sshd_config

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

Port 2222

سپس تنظیمات را تست کنید:

sshd -t

اگر خطایی وجود نداشت، سرویس SSH را Restart کنید:

systemctl restart ssh

یا:

systemctl restart sshd

بعد بررسی کنید:

ss -lntp | grep ssh

اگر نمی‌دانید پورت قبلی چه بوده است

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

grep -E ‘^[[:space:]]*Port[[:space:]]+’ /etc/ssh/sshd_config

همچنین ممکن است تنظیمات SSH در فایل‌های داخل این مسیر قرار گرفته باشند:

/etc/ssh/sshd_config.d/

بنابراین بررسی این مسیر نیز می‌تواند مفید باشد:

grep -R “^[[:space:]]*Port[[:space:]]” /etc/ssh/sshd_config /etc/ssh/sshd_config.d/ 2>/dev/null

اگر تنظیمات SSH کاملاً خراب شده است

اگر نمی‌دانید چه تغییری باعث مشکل شده، می‌توانید تنظیمات را به وضعیت صحیح برگردانید.

ابتدا از فایل تنظیمات نسخه پشتیبان بگیرید:

cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup

سپس فایل را بررسی و تنظیمات مشکل‌دار را اصلاح کنید.

بعد:

sshd -t

و در صورت تأیید:

systemctl restart ssh

یا:

systemctl restart sshd

آیا باید پورت 22 را دوباره فعال کنیم؟

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

برای مثال:

Port 22
Port 2222

با این روش SSH می‌تواند روی هر دو پورت Listen کند؛ البته فقط در صورتی که فایروال نیز هر دو پورت را اجازه دهد.

پس از اینکه مطمئن شدید پورت جدید کاملاً درست کار می‌کند، می‌توانید پورت قدیمی را حذف کنید.

🛠 رفع مشکل SSH و کانفیگ سرور با ایرانیکاسرور

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

همچنین برای مشاوره رایگان و انتخاب سرور مناسب، با پشتیبانی ما در تماس باشید.

تماس با پشتیبانی: 91302460021- | ایرانیکاسرور

ترتیب صحیح تغییر پورت SSH

برای جلوگیری از این مشکل در آینده، بهتر است تغییر پورت را با این ترتیب انجام دهید:

مرحله 1: انتخاب پورت جدید

مثلاً: 2222

مرحله 2: باز کردن پورت در فایروال

مثلاً در UFW: ufw allow 2222/tcp

مرحله 3: تغییر تنظیمات SSH

nano /etc/ssh/sshd_config و سپس Port 2222

مرحله 4: تست تنظیمات

sshd -t

مرحله 5: Restart سرویس

systemctl restart ssh

مرحله 6: بررسی Listen بودن پورت

ss -lntp | grep :2222

مرحله 7: تست اتصال از یک پنجره جدید

ssh root@SERVER_IP -p 2222

مرحله 8: بستن اتصال قدیمی

فقط زمانی که اتصال جدید با موفقیت برقرار شد.

یک اشتباه بسیار خطرناک

هرگز این کار را انجام ندهید:

تغییر پورت SSH

Restart SSH

بستن Terminal

امتحان کردن اتصال جدید

روش امن‌تر این است:

تغییر پورت

باز کردن پورت در Firewall

بررسی sshd_config

sshd -t

Restart SSH

باز کردن پنجره SSH جدید

تست اتصال با پورت جدید

بستن اتصال قدیمی

چک‌لیست نجات VPS

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

🔹 IP سرور صحیح است

🔹 پورت جدید را درست وارد کرده‌اید

🔹 سرویس SSH فعال است

🔹 فایل sshd_config خطای syntax ندارد

🔹 SSH روی پورت جدید Listen می‌کند

🔹 پورت جدید در UFW باز است

🔹 پورت جدید در firewalld باز است

🔹 Security Group پورت را مسدود نکرده است

🔹 SELinux پورت را مسدود نکرده است

🔹 پورت توسط سرویس دیگری اشغال نشده است

🔹 از Console یا KVM برای بازیابی دسترسی استفاده کرده‌اید

🔹 اتصال جدید را قبل از بستن جلسه قدیمی آزمایش کرده‌اید

جمع‌بندی

قطع شدن SSH بعد از تغییر پورت معمولاً به معنی خراب شدن یا خاموش شدن VPS نیست. در بسیاری از موارد مشکل از هماهنگ نبودن پورت SSH، فایروال، تنظیمات sshd_config یا سرویس SSH است.

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

اگر کاملاً دسترسی SSH را از دست داده‌اید، از Console، KVM، VNC، Serial Console یا Rescue Mode ارائه‌دهنده VPS استفاده کنید و تنظیمات SSH و فایروال را اصلاح کنید.

با رعایت ترتیب صحیح تغییر پورت، می‌توانید احتمال قفل شدن خودتان خارج از VPS را تا حد زیادی کاهش دهید.

پیشنهاد برای انتخاب VPS

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

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

💬 دیدگاه‌ها 0

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

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