پرش به محتویات

نحوه تغییر پورت SSH روی سرور

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

پورت مثل یک در شماره‌دار روی سرور است. هر سرویس روی پورت خودش منتظر اتصال می‌ماند: SSH به‌طور پیش‌فرض روی ۲۲ و هیدیفای روی ۸۰ و ۴۴۳.

پیش از شروع

  • باید بتوانید با SSH به سرور وصل شوید. آموزش اتصال به سرور با SSH را ببینید.
  • یک شماره پورت جدید بین 1024 تا 65535 انتخاب کنید که سرویس دیگری از آن استفاده نمی‌کند. در این صفحه از 2222 به‌عنوان نمونه استفاده شده است؛ همه‌جا آن را با عدد خودتان جایگزین کنید.
  • پورت‌های 80، 443، 53 و پورت‌هایی را که هیدیفای برای پروکسی‌ها استفاده می‌کند انتخاب نکنید.

پنجره SSH فعلی را باز نگه دارید

همه مراحل را در یک پنجره SSH انجام دهید و تا وقتی از یک پنجره دوم با پورت جدید وارد نشده‌اید، آن را نبندید. اگر مشکلی پیش بیاید، همین پنجره باز تنها راه ورود شماست.

مراحل

همه دستورها را روی سرور و از طریق SSH اجرا کنید.

  1. پورت جدید را در فایروال سرور باز کنید تا پس از جابه‌جا شدن SSH پشت در نمانید:

    sudo iptables -I INPUT -p tcp --dport 2222 -j ACCEPT
    sudo ip6tables -I INPUT -p tcp --dport 2222 -j ACCEPT
    sudo sh -c 'iptables-save > /etc/iptables/rules.v4'
    sudo sh -c 'ip6tables-save > /etc/iptables/rules.v6'
    

    دو خط آخر قوانین را ذخیره می‌کنند تا پس از ری‌استارت سرور باقی بمانند. اگر ip6tables خطا داد، یعنی IPv6 روی سرور خاموش است و می‌توانید آن را نادیده بگیرید.

    اگر شرکت میزبانی شما در داشبورد وب خود هم فایروال دارد (معمولاً با نام «Security group» یا «Firewall»)، پورت TCP شماره 2222 را آنجا هم باز کنید.

  2. پورت جدید را در یک فایل تنظیمات کوچک SSH بنویسید:

    echo "Port 2222" | sudo tee /etc/ssh/sshd_config.d/01-port.conf
    
  3. تنظیمات SSH را از نظر خطا بررسی کنید:

    sudo sshd -t
    

    اگر درست انجام شده باشد، این دستور چیزی چاپ نمی‌کند.

  4. SSH را ری‌استارت کنید. دستور لازم به نسخه اوبونتو بستگی دارد. ابتدا این را اجرا کنید:

    systemctl is-enabled ssh.socket
    
    sudo systemctl daemon-reload
    sudo systemctl restart ssh.socket
    
    sudo systemctl restart ssh
    
  5. بررسی کنید که SSH روی پورت جدید منتظر اتصال است:

    sudo ss -tlnp | grep 2222
    

    اگر درست انجام شده باشد، خطی شامل :2222 می‌بینید.

  6. پورت جدید را آزمایش کنید. روی کامپیوتر خودتان یک پنجره ترمینال جدید باز کنید و این دستور را اجرا کنید:

    ssh -p 2222 root@your_server_ip
    

    اگر درست انجام شده باشد، وارد سرور می‌شوید. از این به بعد هنگام اتصال همیشه -p 2222 را اضافه کنید و پورت را در هر برنامه SSH که استفاده می‌کنید هم تغییر دهید.

اگر با پورت جدید وصل نمی‌شوید

  • پیام «Connection timed out»: یک فایروال پورت را مسدود کرده است. مطمئن شوید مرحله ۱ را انجام داده‌اید، از جمله فایروال داشبورد شرکت میزبانی.
  • پیام «Connection refused»: SSH روی پورت جدید منتظر اتصال نیست. به پنجره SSH باز برگردید و مراحل ۳ تا ۵ را تکرار کنید.
  • برای برگرداندن تغییر، در پنجره باز این فایل را پاک کنید، همان دستور ری‌استارتی را که در مرحله ۴ استفاده کردید دوباره اجرا کنید و دوباره با پورت ۲۲ وصل شوید:

    sudo rm /etc/ssh/sshd_config.d/01-port.conf
    

فایروال هیدیفای

وقتی تنظیم فایروال در پنل هیدیفای روشن باشد، هیدیفای پورت ۲۲ و پورت‌هایی را که خودش لازم دارد باز نگه می‌دارد. قانونی که در مرحله ۱ اضافه کردید، پورت SSH جدید شما را هم باز نگه می‌دارد. آموزش راه‌اندازی فایروال در پنل هیدیفای را ببینید.


اخرین بروزرسانی: 23 اکتبر 2026

نظرات