در این مقاله قصد داریم به شما نحوه رفع خطا پورت ریموت دسکتاپ یا RDP را آموزش دهیم. زمانی که یک رایانه نمی تواند به رایانه راه دور دیگری از طریق ریموت دسکتاپ متصل شود، این خطا رخ می دهد. چرا که شما سعی می کنید با استفاده از سرویس گیرنده داخلی Windows RDP (mstsc.exe) به یک رایانه راه دور Windows یا میزبان ویندوز سرور که نقش سرویس های ریموت دسکتاپ (RDS) را اجرا می کند، متصل شوید. بنابراین وقتی می خواهید از طریق پورت ریموت دسکتاپ به سرور/دسکتاپ راه دور ویندوز متصل شوید، پنجره ای با خطای RDP به صورت زیر ظاهر می شود:
اول از همه، بررسی کنید که آیا رایانه ریموت از طریق شبکه قابل دسترسی است. یعنی باید بررسی کنید پورت پیش فرض دسکتاپ، از راه دور پاسخ می دهد و توسط فایروال ها مسدود نشده است. بنابراین، باید مطمئن شوید که آدرس DNS میزبان RDP راه دور به درستی از طریق سیستم شما تنظیم شده است.
برای این کار، از دستورات زیر استفاده کنید:
nslookup rdp_server_name1
ping rdp_server_name1
اگر نام DNS به درستی قرار نگرفته باشد، باید تنظیمات DNS خود را بررسی کنید یا سعی کنید با استفاده از آدرس IP به یک میزبان ریموت متصل شوید. به علاوه حتما محتویات فایل میزبان Local را بررسی کنید. این فایل نباید حاوی ورودی های ثابت برای نام یا آدرس IP سرور مجازی شما باشد. ورودی های اضافی را از فایل میزبان حذف کنید. با استفاده از PowerShell و دستور زیر می توانید محتویات فایل میزبان را فهرست کنید:
Get-Content $env:SystemRoot\System32\Drivers\etc\hosts
می توانید در دسترس بودن پورت ریموت دسکتاپ را در یک سرور ریموت، از طریق workstation کلاینت با استفاده از PowerShell 4.0 و بالاتر با دستور زیر تشخیص دهید:
Test-NetConnection rdp_server_name1 -Port 3389 -InformationLevel Quiet
توجه داشته باشید. اگر این دستور True را برگرداند، پورت ریموت دسکتاپ روی سرور پاسخ می دهد و مسدود نمی شود.
اگر به طور مثال پورت 3389 در دسترس نیست، باید بررسی کنید که آیا Remote Connection در سرور راه دور فعال است یا خیر. برای این کار مسیر زیر را دنبال کنید Start > Settings > System > Remote Desktop > Enable Remote Desktop.
اگر Remote Desktop فعال است، در مرحله بعد باید تنظیمات را بررسی کنید، تا حداکثر تعداد اتصالات همزمان کاربران را به یک Remote Desktop تعیین کنید. tsadmin.msc mmc را باز کنید (Administrative tools > Remote Desktop Services > Remote desktop Session Host Configuration). روی RDP-TCP کلیک کنید و مقدار ویژگی Maximum connections را در تب Network Adapter بررسی کنید.
tsadmin.msc در نسخههای مدرن ویندوز (مانند Windows 10 یا Windows Server 2016) وجود ندارد، بنابراین باید تنظیمات سرویس RDP را با استفاده از Group Policies تنظیم کنید. برای این کار مراحل زیر را دنبال کنید.
4. همچنین بررسی کنید که آیا Remote Desktop Services تعداد اتصالات همزمان به سرور را محدود می کند یا خیر. حداکثر تعداد اتصالات پورت ریموت دسکتاپ را می توان در بخش Connections با استفاده از خط مشی Limit number of connections مشخص کرد. اتصالات نامحدود را با وارد کردن 999999 در گزینه RD Maximum Connections تنظیم کنید.
از دستور netstat برای بررسی اینکه آیا پورت TCP 3389 در وضعیت Listening است یا خیر استفاده کنید. command promp را باز کنید و دستور زیر را اجرا کنید:
netstat -a -o|find "LIST"
همان طور که می بینید، در این مثال ، پورت 3389 در وضعیت listening قرار دارد.
TCP 0.0.0.0:3389 DESKTOP-JOPF9:0 LISTENING 1096
سعی کنید سرویس Remote Desktop Services را مجددا راه اندازی کنید. می توانید این عمل را با استفاده از کنسول services.msc یا با دستور زیر در PowerShell انجام دهید:
get-service TermService| Restart-Service -force -Verbose
در برخی موارد، مدیر می تواند شماره پورت ریموت دسکتاپ را به طور مثال از 3389 پیش فرض به چیز دیگری تغییر دهد (اگرچه مایکروسافت این را توصیه نمی کند). برای بررسی پورت فعلی که سرویس Remote Desktop روی رایانه در وضعیت Listening قرار دارد، ویرایشگر رجیستری (regedit.exe) را باز کنید و به registry key بروید:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
به مقدار پارامتر PortNumber توجه کنید. این پارامتر پورت فعلی TCP را نشان می دهد که به سرویس RDP اختصاص داده شده است. در مثالی که زدیم، این مقدار 3389 است. اگر پورت دیگری دارید، می توانید آن را به 3389 (به صورت اعشاری) تغییر دهید و کامپیوتر را مجددا راه اندازی کنید.
می توانید شماره پورت listening ریموت دسکتاپ را با استفاده از دستور زیر در PowerShell بررسی کنید:
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -name "PortNumber"
برای بررسی پورت ریموت دسکتاپ در یک کامپیوتر راه دور، از دستور Invoke-Command استفاده کنید:
Invoke-Command -ComputerName computername1 {Get-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp -Name PortNumber | select PortNumber}
اگر یک پورت غیر استاندارد برای Remote Desktop در رایانه راه دور پیکر بندی شده است، هنگام اتصال به رایانه از طریق سرویس گیرنده Remote Desktop Connection، باید شماره پورتی را مشخص کنید که با یک دو نقطه جدا شده است. برای مثال rdp_server_name1:3320.
همچنین، بررسی کنید که دسترسی که به اتصالات RDP ورودی اجازه می دهد، در Windows Defender Firewall settings فعال باشد.
شما می توانید قانون built-in firewall را برای سرویس ریموت دسکتاپی که روی پورت TCP/3389 اجرا می شود با استفاده از کد زیر در PowerShell فعال کنید:
Enable-NetFirewallRule -DisplayGroup "Remote Desktop"
اگر قانون built-in firewall وجود ندارد، می توانید یک قانون جدید با استفاده از دستور زیر ایجاد کنید:
New-NetFirewallRule -DisplayName "AllowRDP_connection" -Direction Inbound -Protocol TCP –LocalPort 3389 -Action Allow
نمایه اتصال شبکه خود را بررسی کنید. اگر نمایه عمومی برای مکان شبکه شما پیکربندی شده باشد، ممکن است با خطاهای مختلف اتصال RDP مواجه شوید. سعی کنید آن را به خصوصی تغییر دهید. می توانید وضعیت شبکه را با استفاده از کنترل پنل (Network and Internet > Status > Connection Properties) یا با PowerShell تغییر دهید.
برای بررسی نمایه اتصال شبکه فعلی از دستور زیر استفاده کنید:
Get-NetConnectionProfile
اکنون با استفاده از دستور زیر نمایه اتصال شبکه را به خصوصی تغییر دهید:
Set-NetConnectionProfile -InterfaceIndex 14 -NetworkCategory Private
اگر از فایروال یا آنتی ویروس استفاده می کنید، مطمئن شوید که اتصالات پورت ریموت دسکتاپ را مسدود نمی کند. می توانید نرم افزار آنتی ویروس خود را به طور موقت غیرفعال کنید.
سپس، properties اتصال شبکه خود را بررسی کنید. بررسی کنید که آیا وضعیت اتصال شبکه روی عمومی تنظیم شده است یا خیر. در صورت نیاز آن را از خصوصی به عمومی تغییر دهید (Settings > Network & Internet > Status > Network status > Change connection properties).
در برخی موارد، باید تنظیمات winsock و پشته IP را برای آداپتور شبکه در رایانه ریموت باز نشانی کنید. یک command promp با administrator باز کنید و دستورات زیر را اجرا کنید:
netsh winsock reset
netsh int ip reset
ipconfig /release
ipconfig /renew
ipconfig /flushdns
در ویندوز 10 گزینه خاصی برای بازنشانی تنظیمات شبکه در Settings > Network and Internet > Status > Network reset وجود دارد.
پس از بازنشانی تنظیمات شبکه، باید ویندوز را ریبوت کنید.
یکی دیگر از دلایل احتمالی خطا پورت ریموت دسکتاپ ممکن است سطح بالایی از امنیت باشد که توسط نسخه های قدیمی کلاینت RDP پشتیبانی نمی شود. در این حالت، تب General را در پنجره properties RDP-Tcp باز کنید و Security را از پیش فرض Negotiate به لایه امنیتی با امنیت کمتر تغییر دهید.
سطح امنیت RDP را می توان با استفاده از خط مشی به نام Require user of specific layer security for remote (RDP) برای اتصالات مشخص کرد. این خط مشی را فعال کنید و در منوی کشویی سطح امنیت RDP را انتخاب کنید. با این کار لایه امنیتی Remote Desktop از Negotiate پیش فرض به RDP با امنیت کمتر تغییر می کند.
تغییرات را ذخیره کنید، تنظیمات GPO را با استفاده از دستور “gpupdate /force” به روز کنید، و Remote Desktop Service را مجددا راه اندازی کنید:
net stop TermService && net start TermService
در برخی موارد، هنگام اتصال با ویندوز 10 به دسکتاپ مجازی، ریموت دسکتاپ قطع می شود و خطایی مشابه آن چه در تصویر زیر می بینید نمایش داده می شود.
برای رفع این مشکل، باید مراحل زیر را در سرویس گیرنده پورت ریموت دسکتاپ انجام دهید:
پارامتر RDGClientTransport کلاینت ها را مجبور می کند که از اتصالات RPC/HTTP به جای HTTP/UDP برای اتصال به سرور استفاده کنند. اگر راه حل فوق خطای اتصال RDP را برطرف نکرد، سعی کنید تنظیمات مجموعه را در سمت سرور RDSH تغییر دهید. properties برنامه خود را باز کنید، به تب Security بروید و تیک گزینه “Allow connections only from computers running Remote Desktop with Network Level Authentication” را بردارید.
اگر خطای RemoteApp Disconnected فقط روی یک رایانه متصل به غیر دامنه رخ دهد، ممکن است تنظیمات مختلف خط مشی LAN Manager/NTLM در میزبان RDSH و رایانه دسکتاپ استفاده شود. اغلب، این می تواند باعث مشکلات احراز هویت شود.
با استفاده از دستور gpresult /r c:\tmp\gpreport.html (فایل html را بررسی کنید) یا با استفاده از rsop.msc تنظیمات خطمشی سطح احراز هویت LAN Manager را در RSDH بررسی کنید (این خط مشی در بخش Computer Configuration > Windows Settings > Security Settings > Local Policies > Security Options قرار دارد). اگر پروتکل های LM و NTLMv1 در سرور RDSH شما غیر فعال هستند، باید تنظیمات خط مشی مناسب را در سمت کلاینت تغییر دهید.
خطای دیگری در ارتباط با Remote Desktop Gateway وجود دارد که برای ارائه RemoteApps به کاربران استفاده می شود:
در این حالت رایانه شما نمی تواند به رایانه ریموت متصل شود زیرا آدرس سرور ریموت دسکتاپ غیرقابل دسترس یا نادرست است. اگر با خطای بالا روبرو هستید، به احتمال زیاد، مشکل این است که رایانه شما نمی تواند نام عمومی FQDN سرور Remote Desktop Gateway را تعیین کند. در برخی موارد، نام عمومی RDGW نمی تواند با نام میزبان مطابقت داشته باشد.
برای رفع این مشکل:
iisreset
همچنین، گواهی RDGW خود را بررسی کنید. گواهی شما نباید منقضی شده باشد.
می توانید اطلاعات گواهی SSL خود را با رفتن بهServer Manager > Remote Desktop Services > Collections > Your_Collection > Tasks > Edit Deployment Properties > Certificates > RD Gateway > View Details پیدا کنید و تاریخ انقضای گواهینامه را بررسی کنید.
لینک مرتبط
اکنون اتصال باید با موفقیت برقرار شود.
در نسخه های مدرن ویندوز 10/11 و ویندوز سرور 2016/2019/2022، ممکن است با خطای رایجی با کد خطا 0x904 روبرو شوید.
این اتفاق اغلب، هنگام اتصال به RDP در یک اتصال شبکه ناپایدار (پهنای باند کافی، گم شدن بسته ها، عدم تطابق رمز گذاری رمز و غیره) یا زمانی که اتصال VPN شما به یک شبکه شرکتی بسیار کند است رخ می دهد. سعی کنید دوباره به VPN خود متصل شوید یا ISP خود را تغییر دهید.
در این پست به تمام مواردی که منجر به ایجاد خطا پورت ریموت دسکتاپ می شد اشاره کردیم. در ادامه نحوه رفع خطای RDP را برای هر یک از دلایل بروز این خطا به صورت گام به گام آموزش دادیم. امیدواریم این آموزش در این زمینه به شما کمک کرده باشد.
منبع: theitbros.com