چرا باید پورت SSH را در سرور مجازی تغییر دهیم؟ پورت SSH، دروازه ورود امن به سرور لینوکسی شماست. اما چون پورت پیش‌فرض آن 22 است، اولین هدف هکرها در حملات Brute-force به حساب می‌آید. با تغییر پورت SSH در سرور مجازی، احتمال شناسایی و نفوذ خودکار را به‌شدت کاهش می‌دهید.
اگر از یک وی پی اس ایران استفاده می‌کنید، اهمیت این کار دوچندان است؛ چون امنیت شبکه داخلی و دسترسی پایدار برای کسب‌وکار شما حیاتی است. در این مقاله از بلاگ وب داده موارد زیر را می آموزیدپس تا انتها همراه ما باشید.

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

پورت SSH چیست و چرا باید آن را تغییر دهیم؟

پورت SSH چیست؟ وقتی شما از طریق ترمینال (یا نرم‌افزاری مثل PuTTY یا Termius) به یک سرور لینوکسی متصل می‌شوید، این اتصال از طریق یک پروتکل خاص به نام SSH (Secure Shell) برقرار می‌شود.
SSH وظیفه دارد داده‌ها، دستورات و رمز عبور شما را به‌صورت رمزگذاری‌شده بین کامپیوتر شما و سرور منتقل کند تا هیچ‌کس در مسیر نتواند اطلاعات را بخواند. اما برای اینکه سیستم بداند «کدام سرویس در حال گوش دادن به درخواست‌هاست»، از مفهومی به نام پورت (Port) استفاده می‌شود.هر پورت در شبکه مثل یک در ورودی است که بسته‌های اطلاعاتی از طریق آن وارد یا خارج می‌شوند.
پورت 22 به‌ صورت پیش‌ فرض برای سرویس SSH در همه‌ی سیستم‌عامل‌های لینوکسی رزرو شده است. به زبان ساده‌تر، وقتی شما می‌نویسید:

ssh [email protected]
در واقع، سیستم شما به‌ طور خودکار روی پورت 22 تلاش می‌کند به SSH وصل شود (مگر اینکه پورت دیگری تعیین کنید). یعنی پورت 22 همان در اصلی ورود از راه دور به سرور شماست.

🚨چرا باید پورت SSH را تغییر دهیم؟

از آنجا که پورت 22 در همه‌ی سرورها یکسان است، هکرها و ربات‌ ها به‌طور خودکار کل اینترنت را برای پیدا کردن سرورهایی با پورت 22 اسکن می‌کنند. وقتی چنین سروری را پیدا کنند، بلافاصله شروع به امتحان کردن رمزهای عبور مختلف می‌کنند ( یعنی حملات Brute Force).
وقتی شما پورت SSH را به عنوان مثال از 22 به 2222 تغییر می‌دهید، ربات ها نمی توانند به صورت خودکار پورت را تشخیص دهند و حملات از طریق این پورت کاهش پیدا می کند.
پس از جمله دلایل تغییر پورت SSH یا همان پورت 22 می تواند به موارد زیر اشاره کرد:
  1. جلوگیری از حملات Brute-force (تلاش‌های ورود مکرر به سرور).
  2. کاهش لاگ‌های امنیتی غیر ضروری.
  3. افزایش امنیت در سطح شبکه بدون نیاز به ابزارهای اضافی.
📌 نکته: تغییر پورت SSH، به‌تنهایی جایگزین فایروال یا احراز هویت کلید عمومی نیست، بلکه یکی از مراحل اولیه سخت‌سازی (Hardening) سرور است.

پیش‌نیازهای تغییر پورت SSH در سرور

پیش از تغییر پورت، باید چند اقدام حیاتی انجام دهید تا از قطع اتصال جلوگیری کنید.

1. ورود به سرور با دسترسی root

ابتدا با دسترسی root یا معادل آن(Sudo) به سرور مجازی شوید. می توانید از دستور زیر SSH بزنید.
ssh root@your-server-ip

2. بررسی دسترسی VNC به سرور

قبل از تغییر پورت SSH، لازم است اطمینان حاصل کنید که به سرور خود از طریق دسترسی VNC متصل می‌شوید. در صورتی که در فرآیند تغییر پورت SSH خطایی رخ دهد و اتصال شما قطع شود، تنها راه بازیابی دسترسی به سرور، استفاده از کنسول VNC است.
VNC در واقع محیطی گرافیکی برای مدیریت مستقیم سرور است که بدون نیاز به پورت SSH کار می‌کند و امکان ویرایش فایل‌ها یا بازگردانی تنظیمات را در صورت بروز خطا برایتان فراهم می‌کند. برای استفاده از آن:
1️⃣از طریق پنل مجازی‌سازی یا کنترل‌پنل سرور خود، گزینه VNC Console را باز کنید.
2️⃣وارد سرور شوید و فایل تنظیمات SSH (/etc/ssh/sshd_config) را در صورت نیاز ویرایش کنید.
3️⃣و پس از رفع خطا، سرویس SSH را مجدداً راه‌اندازی نمایید.

📌 نکته: همیشه پیش از اعمال تغییرات در پورت SSH، مطمئن شوید دسترسی VNC فعال و قابل استفاده است تا در صورت بروز مشکل، اتصال خود را از دست ندهید.

3. باز کردن پورت جدید در فایروال

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

در Ubuntu / Debian :

اگر از Ubuntu یا Debian استفاده می‌کنید و فایروال UFW فعال است، باید پورت جدید را در آن allow کنید تا ارتباط SSH شما قطع نشود. برای مثال، اگر قصد دارید پورت 2222 را به‌عنوان پورت جدید تنظیم کنید، کافی است دستور زیر را وارد کنید:
# بررسی وضعیت فایروال در اوبونتو:

sudo ufw status

# دستور اضافه کردن پورت جدید به فایروال:

sudo ufw allow 2222/tcp
🔶در صورتی که فایروال UFW در وضعیت غیرفعال (inactive) است، نیازی به انجام این مرحله ندارید و می‌توانید مستقیما تغییر پورت را در فایل تنظیمات SSH انجام دهید.

در AlmaLinux / Rocky / CentOS:

# بررسی firewalld و زون فعال:

sudo systemctl is-active firewalld

#افزودن پورت جدید (برای زون پیش‌فرض، معمولاً public):

sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload
📌 نکته: پورت جدید را بین 1024 تا 65535 انتخاب کنید و از پورت‌های پرکاربرد (مثل 8080 یا 3306) پرهیز کنید.
جدول محدوده پورت ها و نوع آنها برای انتخاب پورت جدید:
محدوده پورت نوع پورت توضیح
0–1023 System Ports رزرو برای سرویس‌های سیستمی
1024–49151 Registered Ports قابل استفاده برای سرویس‌های اختصاصی
49152–65535 Dynamic Ports موقت و تصادفی

آموزش تغییر پورت SSH در سرور لینوکس

برای تغییر شماره پورت SSH در سرورهای لینوکسی مراحل زیر را به صورت گام به گام انجام دهید.
📌 نکته: همیشه پیش از تغییر، از فایل کانفیگ SSH بکاپ بگیرید:
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup

گام 1- ویرایش فایل کانفیگ SSH و تغییر پورت

فایل پیکربندی اصلی که تمامی تنظیمات SSH در آن ذخیره می شود معمولاً در مسیر /etc/ssh/sshd_config قرار دارد. این فایل (sshd_config) مثل یک دفترچه تنظیمات است که به سرویس SSH می‌گوید چطور کار کند، از چه پورتی استفاده کند، چه کسانی می‌توانند وارد شوند و غیره.

🔶برای ویرایش آن در ترمینال لینوکس با دسترسی root از دستور زیر استفاده کنید:

sudo nano /etc/ssh/sshd_config

🔶پس از وارد کردن دستور بالا وارد محتویات فایل می شوید و امکان ویرایش آن را خواهید داشت. می بایست در این فایل سطر زیر را پیدا کنید یعنی Port 22 .
عدد 22 پورت پیش‌فرض SSH است ، برای پیدا کردن سریع‌تر این خط، در ویرایشگر nano کلیدهای Ctrl + W را همزمان بزنید و کلمه Port را تایپ کنید.

#Port 22
تغییر پورت SSH در سرور مجازی

🔶پس از اینکه پورت را پیدا کردید باید علامت # را حذف کرده و عدد پورت را به پورت جدید تغییر دهید. (ما 2222 را وارد کردیم ولی شما می توانید پورت جدید دلخواه خود را جایگزین کنید.)

Port 2222
تغییر پورت SSH در سرور لینوکس

🔶در انتها پس از تغییر پورت SSH در سرور مجازی در ویرایشگر کلیدهای Ctrl + O را بزنید و برای تایید Enter را بزنید و در ادامه Ctrl + X را بزنید تا از محیط ویرایشگر خارج شوید.
🔶سپس سرویس SSH را ری‌ استارت کنید. برای این کار دستور زیر را در ترمینال لینوکس وارد کرده و Enter کنید.

sudo systemctl restart ssh

# یا 

sudo systemctl restart sshd
انتخاب پورت جدید SSH برای VPS

دقت داشته باشید که در برخی توزیع‌های لینوکس نام سرویس ممکن است sshd.service باشد.
🔶در مرحله بعد حتما systemctl status ssh بگیرید.
🔶در ادامه در صورتی که سیستم عامل شما Ubuntu24 است پس از ری استارت کردن سرویس SSH می بایست دستور زیر را وارد کنید تا پورت جدید به صورت کامل معرفی شود.

systemctl daemon-reload
 تغییر پورت SSH

گام 2 – افزودن پورت جدید به فایروال (تنظیمات اضافی)

پس از انجام مراحل بالا فقط در صورتی که فایروال سیستم عامل شما فعال باشد می بایست پورت جدید را در فایر وال باز کنید در غیر اینصورت نیازی به انجام به این مرحله ندارید. در صورتی که از سیستم عامل Ubuntu یاDebian استفاده می کنید و فایروال UFW شما فعال است ، دستور زیر را وارد کنید:
# باز کردن پورت جدید

ufw allow 2222/tcp

# بررسی وضعیت

ufw status
🔶در صورتی که سیستم عاملتان CentOS است و فایروال فعال است از دستور زیر استفاده کنید:
# باز کردن پورت جدید
firewall-cmd --add-port=2222/tcp --permanent

# اعمال تغییرات
firewall-cmd --reload

# بررسی
firewall-cmd --list-ports

گام 3- تست اتصال روی پورت جدید پس از تغییر پورت SSH

قبل از بستن پورت قدیمی، باید اتصال روی پورت جدید را تست کنید تا مطمئن شوید که پورت جدید درست کار می کند. اگر این کار را نکنید و مستقیما پورت قدیمی را ببندید، ممکن است دیگر نتوانید به سرور خود وارد شوید! (مثل اینکه در خانه را قفل کنید و کلید جدید قفل را باز نکند.)
برای این کار لازم است با استفاده از دستور زیر به سرور SSH بزنید یا ترمینال جدید باز کنید و در انتها نیز شماره پورت جدید را وارد کنید مانند زیر:

ssh root@your-server-ip -p 2222

در دستور بالا root نام کاربری است که می‌خواهید با آن وارد سرور شوید.
your-server-ip آدرس IP سرور شماست، مثلا 185.88.153.10
p 2222- یعنی از پورت 2222 استفاده کن همان پورتی جدیدی که در مرحله قبل ست کردیم (به جای پورت پیش‌فرض 22).
✅ اگر اتصال موفق بود، سیستم از شما رمزعبور خواسته و سپس وارد سرور می شوید و این به این معناست که همه چیز درست کار می کند.
🔶در این حالت باید پورت قبلی (یعنی پورت 22) را در فایروال ببندید تا امنیت بیشتری داشته باشید. برای این کار بسته به نوع فایروالی که روی سرورتان نصب است، یکی از دستورات زیر را استفاده کنید:
اگر از فایروال رایج در Ubuntu یعنی UFW را استفاده می‌کنید از دستور مربوط به آن و اگر از CentOS/RHEL استفاده می‌کنید از دستور firewall-cmd استفاده کنید:

sudo ufw delete allow 22/tcp

# یا

sudo firewall-cmd --remove-port=22/tcp --permanent
sudo firewall-cmd --reload
❌ اما چنانچه در هنگام اتصال پیغام خطایی مثل “Connection refused” یا “Connection timed out” دریافت کردید یعنی مشکلی وجود دارد و نباید پورت قدیمی را ببندید. به عنوان Connection refused به این معناست که پس از تغییر پورت SSH را Restart نکرده اید.

در آخر جهت تست نهایی، بعد از اینکه همه کارها را انجام دادید، اتصال فعلی خود را قطع کنید و پس از چند دقیقه (تغییرات فایروال ممکن است کمی طول بکشد تا کاملا اعمال شود) دوباره سعی کنید وارد سرور شوید:

ssh  root@your-server-ip -p 2222
📌نکات ایمنی بسیار مهم:
حتما از اتصال VNC به سرور اطمینان حاصل کنید.
قبل از بستن پورت 22 حتما اطمینان کامل داشته باشید که می‌توانید از پورت جدید وارد سرور شوید.
شماره پورت جدید را یادداشت کنید چون دیگر نمی‌توانید با پورت 22 وارد شوید.
اگر از کنترل پنل استفاده می‌کنید (مثل cPanel یا Plesk)، مطمئن شوید که تنظیمات آن هم به‌روزرسانی شده است.

آموزش تغییر پورت SSH در Ubuntu 24

همانند نسخه‌های قبلی اوبونتو/دبیان، معمولا نیاز است که پورت‌های شنود (listening ports) را در فایل sshd_config تغییر دهید و سپس اجازه دسترسی را در فایروال صادر کنید. با این حال، برای نسخه‌های جدیدتر اوبونتو مانند Ubuntu 24، نیاز داریم که تغییراتی در فایل‌های مرتبط با ssh.socket نیز اعمال کنیم. پس در صورتی که از اوبونتو 24 استفاده می کنید برای تغییر پورت SSH مراحل زیر را انجام دهید.

🔶برای این کار پس ورود به ترمینال لینوکس با استفاده از دستور وارد محیط ویرایش فایل ssh.socket شوید.

systemctl edit ssh.socket

🔶با اجرای دستور بالا فایل /etc/systemd/system/ssh.socket.d/override.conf برای ویرایش باز می‌ شود. سپس، محتوای زیر را در آن وارد کنید:

[Socket]
ListenStream=
ListenStream=2222

📌توجه داشته باشید که عبارت ListenStream= (بدون هیچ مقداری پس از آن) مورد نیاز است تا مشخص کنیم که دیگر از پورت پیش‌فرض 22 استفاده نخواهیم کرد. مانند تصویر زیر

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

🔶در نهایت کافی است که هر دو سرویس ssh و ssh.socket را به صورت زیر راه‌اندازی مجدد کنید:

systemctl restart ssh
systemctl restart ssh.socket

📌فراموش نکنید که اگر از فایروال استفاده می‌کنید، باید پورت جدید یعنی 2222 را در فایروال مربوطه باز کنید.

🔶در آخر مجدد سعی کنید به سرور SSH بزنید. به یاد داشته باشید که هنگام اتصال از طریق SSH شما شماره پورت را تغییر داده اید، پس هنگام وارد کردن دستور ، پورت جدید را نیز وارد کنید (مانند ssh root@IP -p2222)و یا در صورتی که از طریق نرم افزار پوتی به سرور متصل می شوید پس از وارد کردن IP شماره پورت جدید را وارد کنید.

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

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

  1. از طریق VNC به سرور متصل شوید، فایل /etc/ssh/sshd_config را به حالت قبلی برگردانید. یعنی خطی که تغییر داده بودید را دوباره به حالت قبل برگردانید یعنی Port 2222 را به حالت قبل Port 22# برگردانید و سپس مانند قبل تغییرات را ذخیره کنید و از محیط ویرایشگر خارج شوید.
  2. پورت قدیمی را در فایروال باز کنید. اگر پورت 22 را در فایروال بسته بودید، باید دوباره آن را باز کنید. از دستور زیر استفاده کنید.
ufw allow 22/tcp

# یا 

firewall-cmd --add-port=22/tcp --permanent
firewall-cmd --reload
  1. حالا باید سرویس SSH را مجددا راه‌اندازی (restart) کنید تا تغییرات اعمال شود.
sudo systemctl restart sshd
✅در ادامه برای اطمینان از اینکه سرویس درست کار می‌کند وضعیت سرویس را با دستور زیر بررسی کنید.
sudo systemctl status sshd
✅اگر در خروجی عبارت active (running) را مشاهده کردید، یعنی سرویس به درستی در حال اجرا است.

جمع بندی نحوه تغییر پورت SSH

در انتها می توان گفت تغییر پورت SSH در سرور مجازی، یکی از ساده‌ ترین اما مؤثرترین راه‌ها برای افزایش امنیت دسترسی است. با رعایت اصول بالا، می‌توانید در کمتر از 10 دقیقه، بدون خطر قطع اتصال، پورت را تغییر داده و فایروال را هماهنگ کنید.
در نهایت پیشنهاد می‌شود برای اطمینان از امنیت کامل، احراز هویت مبتنی بر کلید (Key Authentication) را فعال و ورود با رمز عبور را غیرفعال کنید. امنیت، نتیجه مجموعه‌ای از اقدامات کوچک اما هوشمندانه است.
اگر سرور شما روی بستر VPS ایران میزبانی می‌شود، این تغییر نه‌ تنها امنیت اتصال شما را بالا می‌برد، بلکه با تنظیمات شبکه داخلی، سرعت و ثبات بیشتری در دسترسی خواهید داشت. امیدوارم این مقاله از بلاگ وب داده نیز برای شما مفید واقع شده باشد.

سوالات متداول درباره تغییر پورت SSH در سرور مجازی

بهترین پورت برای جایگزینی پورت 22 چیست؟

بین 1024 تا 65535 هر پورتی می‌تواند استفاده شود. معمولاً پورت‌هایی مانند 2222، 2200 یا 2024 امن‌ترند.

📚 منابع و رفرنس‌ها:

  1. Sucuri Security Report 2024 – SSH Attack Trends
  2. DigitalOcean Docs: Changing SSH Port Securely (2025)
  3. Ubuntu Security Guide (2025 Edition)
سارا صالحی ریحانی
سارا صالحی ریحانی

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

مقاله‌ها: 71
پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *