
آموزش تغییر پورت سرور ویندوز؛ تغییر پورت RDP از ۳۳۸۹ به پورت دلخواه
اگر برای مدیریت سرور ویندوز از Remote Desktop یا RDP استفاده می کنید، پورت پیش فرض این سرویس معمولاً 3389 است. در بسیاری از سرورها، مدیر سیستم برای کاهش اسکن های خودکار اینترنتی یا هماهنگی با سیاست های شبکه، پورت RDP را به یک پورت دیگر تغییر می دهد.
در این آموزش یاد می گیرید چگونه پورت RDP سرور ویندوز را تغییر دهید، پورت جدید را در Windows Firewall باز کنید، سرویس Remote Desktop را بررسی کنید و قبل از بستن اتصال فعلی مطمئن شوید که پورت جدید به درستی کار می کند.
هشدار مهم: قبل از تغییر پورت RDP، اتصال فعلی Remote Desktop را نبندید. ابتدا پورت جدید را تنظیم و تست کنید و فقط بعد از اطمینان از دسترسی، Session فعلی را ببندید.
پورت پیش فرض Remote Desktop در ویندوز چیست؟
سرویس Remote Desktop Protocol یا RDP در Windows Server به صورت پیش فرض از پورت TCP 3389 استفاده می کند.
بنابراین وقتی در Remote Desktop Connection فقط IP سرور را وارد می کنید، ویندوز معمولاً به شکل زیر متصل می شود:
SERVER-IP:3389
اگر پورت RDP را به مثلاً 45221 تغییر دهید، برای اتصال باید شماره پورت را نیز مشخص کنید:
SERVER-IP:45221
یا در پنجره Remote Desktop Connection:
45221
را بعد از IP سرور قرار دهید.
چرا پورت RDP سرور ویندوز را تغییر دهیم؟
تغییر پورت RDP به تنهایی یک راهکار امنیتی کامل نیست، اما می تواند حجم زیادی از اسکن های ساده و خودکار روی پورت استاندارد ۳۳۸۹ را کاهش دهد.
دلایل رایج تغییر پورت عبارت اند از:
- کاهش اسکن های خودکار روی پورت ۳۳۸۹
- کاهش لاگین های ناموفق و تلاش های خودکار
- استفاده از پورت اختصاصی در زیرساخت سازمان
- جلوگیری از تداخل با سیاست های شبکه
- هماهنگی با Firewall یا Port Forwarding
- مدیریت چند سرور پشت یک IP یا NAT
- استانداردسازی پورت های زیرساخت
با این حال، تغییر پورت جایگزین امنیت واقعی RDP نیست.
برای امنیت بهتر باید از مواردی مانند رمز عبور قوی، NLA، Firewall، محدود کردن IPهای مجاز، MFA در زیرساخت های مناسب و به روزرسانی Windows Server نیز استفاده کنید.
قبل از تغییر پورت سرور ویندوز چه چیزهایی لازم است؟
قبل از شروع، موارد زیر را آماده کنید:
- دسترسی Administrator به Windows Server
- دسترسی فعلی از طریق RDP
- شماره پورت جدید
- دسترسی به Windows Firewall
- امکان اجرای PowerShell یا Command Prompt با Administrator
- امکان تست پورت جدید از سیستم دیگری
اگر سرور شما از طریق NAT، Firewall سخت افزاری، Security Group یا فایروال دیتاسنتر به اینترنت متصل است، باید Rule مربوط به پورت جدید را در آن لایه نیز بررسی کنید.
انتخاب پورت مناسب برای RDP
می توانید پورت RDP را تغییر دهید، اما بهتر است قبل از انتخاب شماره، بررسی کنید پورت موردنظر توسط سرویس دیگری استفاده نشده باشد.
برای مثال:
45221
یا:
50122
می تواند نمونه ای از پورت های غیرپیش فرض باشد.
از انتخاب پورت های معروف سرویس های دیگر خودداری کنید.
همچنین بهتر است پورت انتخابی در محدوده ای باشد که با سرویس های موجود روی سرور تداخل نداشته باشد.
روش اول؛ تغییر پورت RDP از Registry
یکی از روش های اصلی تغییر پورت Remote Desktop، تغییر مقدار PortNumber در Windows Registry است.

مرحله اول: باز کردن Registry Editor
کلیدهای زیر را فشار دهید:
Win + R
سپس بنویسید:
regedit
و Enter بزنید.
اگر User Account Control نمایش داده شد، با حساب Administrator تأیید کنید.
مرحله دوم: رفتن به مسیر Remote Desktop
در Registry Editor به مسیر زیر بروید:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
مسیر را می توانید مستقیماً در نوار بالای Registry Editor وارد کنید.
مرحله سوم: پیدا کردن PortNumber
در سمت راست پنجره، مقدار زیر را پیدا کنید:
PortNumber
روی آن دوبار کلیک کنید.
در پنجره بازشده، مقدار پورت را تغییر دهید.
مثلاً:
45221
نکته مهم این است که مقدار PortNumber معمولاً به صورت Decimal قابل مشاهده و تنظیم است.
بنابراین گزینه:
Decimal
را انتخاب کنید و سپس پورت موردنظر را وارد کنید.
مثلاً:
45221
در نهایت روی OK کلیک کنید.
روش دوم؛ تغییر پورت RDP با PowerShell
اگر ترجیح می دهید تغییرات را از طریق Terminal انجام دهید، می توانید PowerShell را با دسترسی Administrator اجرا کنید.
برای تغییر پورت RDP به 45221:
Set-ItemProperty `
-Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" `
-Name "PortNumber" `
-Value 45221
برای بررسی مقدار فعلی:
Get-ItemProperty `
-Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" `
-Name "PortNumber"
خروجی باید مقدار پورت جدید را نشان دهد.
تغییر پورت RDP با Command Prompt
اگر از CMD استفاده می کنید، می توانید از reg add نیز استفاده کنید.
مثلاً:
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber /t REG_DWORD /d 45221 /f
این دستور مقدار PortNumber را به 45221 تغییر می دهد.
برای اطمینان از تغییر مقدار:
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber
مرحله مهم؛ باز کردن پورت جدید در Windows Firewall
تغییر Registry به تنهایی کافی نیست.
اگر Windows Firewall پورت جدید را اجازه ندهد، ممکن است بعد از تغییر پورت دیگر نتوانید از طریق RDP به سرور متصل شوید.
فرض کنیم پورت جدید:
45221
است.
PowerShell را با Administrator باز کنید و دستور زیر را اجرا کنید:
New-NetFirewallRule `
-DisplayName "RDP Custom Port 45221" `
-Direction Inbound `
-Protocol TCP `
-LocalPort 45221 `
-Action Allow
اکنون Windows Firewall اجازه دریافت اتصال TCP روی این پورت را خواهد داشت.
آیا باید UDP را هم باز کنیم؟
بسته به نسخه Windows و نحوه استفاده از Remote Desktop، RDP می تواند از TCP و UDP استفاده کند.
اگر زیرساخت شما به UDP برای RDP نیاز دارد، Rule مربوط به UDP را نیز می توانید ایجاد کنید:
New-NetFirewallRule `
-DisplayName "RDP Custom Port 45221 UDP" `
-Direction Inbound `
-Protocol UDP `
-LocalPort 45221 `
-Action Allow
اما اگر هدف شما فقط راه اندازی اتصال پایه RDP است، ابتدا TCP را بررسی کنید.
روش ساده تر برای باز کردن پورت با Windows Firewall
می توانید از دستور netsh نیز استفاده کنید:
netsh advfirewall firewall add rule name="RDP Custom Port 45221" dir=in action=allow protocol=TCP localport=45221
برای حذف همین Rule در آینده:
netsh advfirewall firewall delete rule name="RDP Custom Port 45221"
آیا لازم است سرویس Remote Desktop را Restart کنیم؟
بعد از تغییر PortNumber، برای اعمال تغییرات در بسیاری از سناریوها باید سرویس Remote Desktop یا سیستم را Restart کنید.
قبل از Restart کردن، حتماً Rule فایروال را ایجاد کنید.
برای بررسی سرویس:
Get-Service TermService
در صورت نیاز می توانید سرویس را Restart کنید:
Restart-Service TermService
اما در سرور Production توصیه می شود قبل از Restart سرویس، شرایط Session فعلی و تأثیر آن روی کاربران دیگر را بررسی کنید.
اگر نمی خواهید ریسک قطع اتصال داشته باشید، می توانید بعد از اعمال تنظیمات، در زمان مناسب سرور را Restart کنید.
بررسی اینکه RDP روی پورت جدید Listen می کند
بعد از اعمال تنظیمات، یکی از مهم ترین مراحل این است که بررسی کنید Windows واقعاً روی پورت جدید در حال Listen است.
برای مثال:
netstat -ano | findstr :45221
اگر RDP روی این پورت Listen کند، خروجی مشابه زیر خواهید دید:
TCP 0.0.0.0:45221 0.0.0.0:0 LISTENING
ممکن است آدرس IPv6 نیز نمایش داده شود.
بررسی پورت RDP با PowerShell
روش دیگر استفاده از PowerShell است:
Get-NetTCPConnection -LocalPort 45221 -State Listen
اگر خروجی دریافت شد، یعنی سیستم روی این پورت در وضعیت Listen قرار دارد.
تست پورت RDP از یک کامپیوتر دیگر
بهترین روش این است که پورت جدید را از خارج از خود سرور تست کنید.
روی کامپیوتر دیگری که به سرور دسترسی شبکه ای دارد، PowerShell را باز کنید و بزنید:
Test-NetConnection SERVER-IP -Port 45221
مثلاً:
Test-NetConnection 203.0.113.10 -Port 45221
اگر نتیجه شامل موارد زیر باشد:
TcpTestSucceeded : True
یعنی اتصال TCP به پورت موردنظر برقرار شده است.
اگر:
TcpTestSucceeded : False
بود، باید Firewall، NAT، مسیر شبکه، پورت و سرویس RDP را بررسی کنید.
اتصال به RDP با پورت جدید
بعد از اطمینان از فعال بودن پورت، برنامه Remote Desktop Connection را باز کنید.
در قسمت Computer بنویسید:
SERVER-IP:45221
مثلاً:
203.0.113.10:45221
سپس Connect را بزنید.
اگر از نام دامنه استفاده می کنید:
server.example.com:45221
نیز امکان پذیر است.
اتصال به RDP با دستور mstsc
می توانید مستقیماً از CMD یا Run استفاده کنید:
mstsc /v:203.0.113.10:45221
یا:
mstsc /v:server.example.com:45221
با این روش Remote Desktop Connection مستقیماً با پورت مشخص شده باز می شود.
اگر بعد از تغییر پورت دیگر به سرور وصل نشدیم چه کنیم؟
این یکی از مهم ترین مشکلات هنگام تغییر پورت RDP است.
اگر بعد از تغییر پورت اتصال قطع شد، این موارد را بررسی کنید:
۱. پورت Registry
مطمئن شوید مقدار زیر درست تغییر کرده است:
PortNumber
مسیر:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
۲. Windows Firewall
بررسی کنید Rule مربوط به پورت جدید وجود داشته باشد:
Get-NetFirewallRule | Where-Object DisplayName -Like "*45221*"
۳. سرویس Remote Desktop
بررسی کنید:
Get-Service TermService
و وضعیت سرویس Running باشد.
۴. Listen شدن پورت
بررسی کنید:
netstat -ano | findstr :45221
اگر هیچ خروجی وجود ندارد، مشکل احتمالاً قبل از Firewall و در تنظیمات سرویس یا اعمال نشدن تغییرات است.
۵. Firewall خارجی
اگر سرور در دیتاسنتر یا Cloud قرار دارد، ممکن است علاوه بر Windows Firewall، یک Firewall خارجی نیز وجود داشته باشد.
برای مثال:
- Firewall دیتاسنتر
- Cloud Firewall
- Security Group
- NAT
- Router
- Firewall سخت افزاری
در چنین شرایطی باید پورت جدید در آن لایه نیز مجاز شود.
اگر RDP روی پورت جدید Listen نمی کند
اگر:
netstat -ano | findstr :45221
هیچ نتیجه ای ندارد، موارد زیر را بررسی کنید:
- مقدار
PortNumber - سرویس
TermService - Restart شدن سرویس یا سرور
- تنظیمات Remote Desktop
- Event Viewer
- خطاهای مربوط به Terminal Services
برای مشاهده وضعیت Remote Desktop می توانید سرویس را بررسی کنید:
Get-Service TermService
چگونه پورت فعلی RDP را پیدا کنیم؟
اگر نمی دانید RDP روی چه پورتی تنظیم شده، می توانید Registry را بررسی کنید:
Get-ItemProperty `
-Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" `
-Name PortNumber
همچنین می توانید پورت های Listen شده را مشاهده کنید:
netstat -ano | findstr LISTENING
تغییر پورت RDP در سرور پشت NAT
اگر Windows Server پشت NAT قرار دارد، فقط تغییر پورت داخل ویندوز کافی نیست.
فرض کنید:
Public IP: 203.0.113.10
Private IP: 192.168.1.100
RDP Port: 45221
باید روی Router یا Firewall نیز Port Forwarding مناسب تعریف شود:
203.0.113.10:45221
↓
192.168.1.100:45221
اگر فقط Registry ویندوز را تغییر دهید ولی Port Forwarding همچنان روی ۳۳۸۹ باشد، اتصال خارجی برقرار نخواهد شد.
آیا تغییر پورت ۳۳۸۹ امنیت سرور را افزایش می دهد؟
تا حدی، اما نه به عنوان یک راهکار امنیتی اصلی.
تغییر پورت می تواند تعداد زیادی از اسکن های ساده ای را که فقط پورت ۳۳۸۹ را بررسی می کنند کاهش دهد؛ اما یک مهاجم می تواند پورت های دیگر را نیز اسکن کند.
بنابراین نباید تصور کرد:
تغییر 3389 → امنیت کامل RDP
امنیت واقعی باید چندلایه باشد.
راهکارهای مهم برای امن کردن RDP
برای یک Windows Server اینترنتی، بهتر است علاوه بر تغییر پورت موارد زیر را نیز در نظر بگیرید:
استفاده از رمز عبور قوی
رمز عبور حساب Administrator و سایر حساب های دارای دسترسی RDP باید قوی و غیرقابل حدس باشد.
فعال بودن Network Level Authentication
NLA یکی از قابلیت های مهم امنیتی Remote Desktop است.
در تنظیمات Remote Desktop، گزینه مربوط به Network Level Authentication را در صورت سازگاری محیط خود فعال نگه دارید.
محدود کردن IPهای مجاز
اگر فقط از چند IP مشخص برای مدیریت سرور استفاده می کنید، بهترین کار این است که دسترسی RDP را فقط برای همان IPها مجاز کنید.
این روش از تغییر ساده پورت بسیار مؤثرتر است.
استفاده از VPN یا شبکه مدیریتی
در زیرساخت های حساس بهتر است RDP مستقیماً روی اینترنت عمومی در دسترس نباشد و دسترسی مدیریتی از طریق VPN یا شبکه مدیریتی کنترل شده انجام شود.
جلوگیری از Brute Force
تعداد Loginهای ناموفق را در Event Viewer بررسی کنید و در صورت نیاز از راهکارهای مناسب برای محدود کردن تلاش های مکرر استفاده کنید.
تغییر پورت RDP در Windows Server ۲۰۱۹، ۲۰۲۲ و ۲۰۲۵
منطق تغییر پورت RDP در نسخه های مختلف Windows Server مشابه است.
مراحل کلی:
Registry
↓
PortNumber
↓
Windows Firewall
↓
Restart / Apply
↓
netstat
↓
Test-NetConnection
↓
RDP Connection
بنابراین در نسخه های مختلف Windows Server، اصل کار تغییر نمی کند؛ اما تنظیمات امنیتی و سیاست های سازمانی ممکن است متفاوت باشند.
اشتباهات رایج هنگام تغییر پورت RDP
اشتباه اول: تغییر Registry بدون باز کردن Firewall
این کار باعث می شود سرویس روی پورت جدید تنظیم شود ولی Firewall اتصال را مسدود کند.
اشتباه دوم: بستن Session قبل از تست
اگر اتصال جدید کار نکند، ممکن است دسترسی خود را به سرور از دست بدهید.
اشتباه سوم: تغییر پورت بدون تغییر NAT
در سرورهای پشت Router یا Firewall، Port Forwarding نیز باید اصلاح شود.
اشتباه چهارم: تصور امنیت کامل بعد از تغییر پورت
تغییر شماره پورت فقط یکی از اقدامات کاهش سطح حمله است.
اشتباه پنجم: استفاده از پورت سرویس دیگری
ممکن است پورت انتخاب شده قبلاً توسط برنامه دیگری استفاده شده باشد.
چک لیست نهایی تغییر پورت سرور ویندوز
قبل از خروج از Session فعلی این موارد را بررسی کنید:
- مقدار
PortNumberتغییر کرده است. - پورت جدید در Windows Firewall مجاز شده است.
- سرویس
TermServiceفعال است. - Windows روی پورت جدید Listen می کند.
- پورت از یک سیستم دیگر تست شده است.
- در صورت وجود NAT، Port Forwarding تغییر کرده است.
- Firewall خارجی پورت جدید را اجازه می دهد.
- اتصال RDP با
IP:PORTتست شده است. - بعد از موفقیت اتصال جدید، Session قبلی بسته شده است.
تبریک میگوئییم این اموزش هم تمام شد!
برای تغییر پورت سرور ویندوز و Remote Desktop، مهم ترین بخش کار تغییر مقدار PortNumber در Registry نیست؛ بلکه باید کل مسیر اتصال را در نظر بگیرید.
ابتدا پورت RDP را تغییر دهید، سپس Rule مربوط به Windows Firewall را ایجاد کنید. بعد با netstat یا PowerShell بررسی کنید که سرویس روی پورت جدید Listen می کند و در نهایت از یک سیستم دیگر با Test-NetConnection پورت را تست کنید.
بهتر است تا زمانی که اتصال جدید را آزمایش نکرده اید، Remote Desktop فعلی را نبندید.
در نهایت نیز به خاطر داشته باشید که تغییر پورت ۳۳۸۹ یک اقدام کاهش دهنده ریسک است، نه یک راهکار امنیتی کامل. برای سرورهای اینترنتی، ترکیب Firewall، NLA، رمز عبور قوی، محدودسازی IP، به روزرسانی سیستم عامل و در صورت امکان VPN یا شبکه مدیریتی، امنیت بسیار بهتری ایجاد می کند.