📄 محتوای کامل
وقتی Remote Desktop به ویندوز سرور ۲۰۱۹ وصل نمی شود، اولین واکنش خیلی ها این است که پورت را عوض کنند، فایروال را خاموش کنند یا چند مقدار رجیستری را تغییر دهند. این کارها گاهی مشکل را بدتر می کند و حتی ممکن است دسترسی باقی مانده به سرور را هم از بین ببرد. راه درست این است که اول بفهمیم اختلال از خود سرور است، از شبکه است یا از نام کاربری و مجوزها.
در این راهنما مرحله به مرحله بررسی می کنیم چرا اتصال RDP برقرار نمی شود، چطور پورت ۳۳۸۹ و فایروال را تست کنیم، چه زمانی سراغ سرویس ها و Group Policy برویم و با خطاهای ورود، صفحه سیاه یا قطع شدن ناگهانی چه کنیم. دستورها برای Windows Server ۲۰۱۹ نوشته شده اند. برای دستورهایی که روی سرور اجرا می شوند، از کنسول مدیریتی هاست یا KVM استفاده کنید؛ اگر ریموت فعلی قطع باشد، PowerShell محلی روی سرور در دسترس نیست.
پاسخ کوتاه: اول روشن بودن سرور را از کنسول هاست بررسی کنید، بعد از کامپیوتر خودتان با Test-NetConnection SERVER-IP -Port 3389 پورت RDP را تست کنید. اگر تست ناموفق است، پورت واقعی، فایروال ویندوز و فایروال شبکه را بررسی کنید. اگر تست موفق است، سراغ فعال بودن Remote Desktop، حساب مجاز، NLA و Listener بروید.
نکته امنیتی: برای اینکه هنگام عیب یابی دسترسی مدیریتی را از دست ندهید، تغییرات شبکه و فایروال را از کنسول ارائه دهنده سرور انجام دهید. پورت RDP را بی دلیل برای تمام اینترنت باز نکنید. Microsoft استفاده از VPN را به باز کردن مستقیم دسترسی RDP به اینترنت ترجیح می دهد. راهنمای رسمی Microsoft برای دسترسی از بیرون شبکه
قبل از شروع، مشخص کنید دقیقا چه خطایی می بینید
نوع خطا سرنخ مهمی است. اگر پنجره Remote Desktop مدت زیادی روی Connecting می ماند یا می گوید رایانه در دسترس نیست، بیشتر باید شبکه، فایروال و Listener را بررسی کنید. اگر صفحه ورود باز می شود اما نام کاربری یا رمز پذیرفته نمی شود، اتصال شبکه احتمالا برقرار شده و باید حساب کاربری، فرمت نام کاربری و مجوز ورود را بررسی کنید. اگر پس از ورود صفحه سیاه می بینید، مشکل می تواند در نشست ویندوز، کش تصویر یا ارتباط شبکه باشد.
در همان ابتدا این اطلاعات را یادداشت کنید: متن دقیق خطا، زمان شروع مشکل، اینکه اتصال از شبکه دیگری هم ناموفق است یا نه، اینکه IP مستقیم جواب می دهد یا نام دامنه، و اینکه اخیرا فایروال، Group Policy، آنتی ویروس یا پورت سرور تغییر کرده است یا نه. این اطلاعات از آزمون و خطای بی هدف جلوگیری می کند.
مرحله ۱: مطمئن شوید سرور روشن و در شبکه قابل دسترس است
وارد پنل شرکت هاستینگ یا کنسول KVM/VNC سرور شوید و بررسی کنید ماشین روشن است و صفحه ورود ویندوز را نشان می دهد. اگر سرور خاموش، در حال راه اندازی مجدد، متوقف یا در حالت بازیابی است، Remote Desktop تا زمان رفع همان وضعیت وصل نمی شود. در صورت امکان از کنسول ارائه دهنده وارد ویندوز شوید؛ این مسیر حتی وقتی RDP خراب است، راه دسترسی پشتیبان شماست.
از کامپیوتر خودتان، ابتدا با IP عمومی سرور تست کنید. اگر با IP وصل می شوید اما با نام دامنه نه، به احتمال زیاد باید DNS یا رکورد مربوط به نام سرور را بررسی کنید. اگر هر دو ناموفق اند، ادامه مراحل شبکه و فایروال را انجام دهید.
مرحله ۲: اتصال پورت RDP را از کامپیوتر خود تست کنید
روی کامپیوتر ویندوزی خودتان PowerShell را باز کنید و این دستور را بزنید. به جای SERVER-IP-OR-NAME، IP عمومی یا نام میزبان سرور را بنویسید:
Test-NetConnection -ComputerName SERVER-IP-OR-NAME -Port 3389
اگر در خروجی مقدار TcpTestSucceeded : True را می بینید، ارتباط TCP تا پورت ۳۳۸۹ برقرار است. این نتیجه ثابت نمی کند نام کاربری، رمز یا سرویس Remote Desktop درست است؛ فقط می گوید مسیر شبکه تا آن پورت باز است. اگر مقدار False است، یکی از این موارد را بررسی کنید: فایروال ویندوز، فایروال شبکه یا پنل هاست، پورت سفارشی، خاموش بودن سرور، یا نبودن Listener روی سرور. دستور رسمی Microsoft برای بررسی اتصال شبکه نیز همین آزمون پورت را پیشنهاد می کند. جزئیات عیب یابی اتصال در Microsoft Learn
پورت پیش فرض RDP معمولا TCP و UDP شماره ۳۳۸۹ است، اما مدیر سرور می تواند آن را تغییر دهد. در این راهنما ابتدا TCP را تست می کنیم، چون برای تشخیص اولیه اتصال کافی است. اگر پورت سرور عوض شده باشد، باید به جای ۳۳۸۹ همان شماره واقعی را در دستور وارد کنید. فهرست پورت های Remote Desktop Services
تفسیر سریع:
Trueو خطای ورود: حساب، رمز، مجوز یا NLA را بررسی کنید.Falseو اتصال با IP هم ناموفق: فایروال یا مسیر شبکه را بررسی کنید.- اتصال با IP درست و با نام دامنه غلط: DNS را بررسی کنید.
- پورت سفارشی: همان پورت را هم در برنامه Remote Desktop و هم در فایروال استفاده کنید.
مرحله ۳: فعال بودن Remote Desktop را در Windows Server بررسی کنید
از کنسول سرور وارد ویندوز شوید. کلیدهای Win + R را فشار دهید، دستور SystemPropertiesRemote.exe را وارد کنید و Enter بزنید. در پنجره System Properties، زبانه Remote را باز کنید. در بخش Remote Desktop، گزینه Allow remote connections to this computer باید فعال باشد.
اگر گزینه اجازه اتصال غیرفعال است، آن را فعال کنید و تغییر را ذخیره کنید. اگر گزینه خاکستری است یا بعد از فعال کردن دوباره خاموش می شود، ممکن است یک Group Policy سازمانی این تنظیم را بازنویسی کند. در این حالت بی گدار Policy را تغییر ندهید؛ اول ببینید سرور عضو دامنه است یا نه و سیاست از کدام GPO آمده است.
برای اغلب محیط ها، گزینه Allow connections only from computers running Remote Desktop with Network Level Authentication را روشن نگه دارید. NLA قبل از ساخت نشست دسکتاپ، کاربر را احراز هویت می کند و لایه امنیتی اضافه می کند. فقط اگر کلاینت قدیمی با NLA سازگار نیست، می توانید موقتا آن را برای یک آزمون کوتاه خاموش کنید؛ پس از تست دوباره فعالش کنید. راهنمای فعال سازی RDP و NLA در Microsoft Learn
مرحله ۴: حساب کاربری اجازه ورود از راه دور داشته باشد
عضو گروه Administrators معمولا اجازه اتصال از راه دور دارد. اگر قرار است کاربر دیگری وصل شود، او را به گروه Remote Desktop Users اضافه کنید. در سرور عضو Workgroup، ابزار lusrmgr.msc را از Run باز کنید، وارد Groups شوید، گروه Remote Desktop Users را باز کنید و کاربر موردنظر را اضافه کنید. در سرور عضو دامنه، از حساب دامنه درست استفاده کنید و سیاست های دامنه را هم در نظر بگیرید. روی Domain Controller یا سروری که ابزار Local Users and Groups را ندارد، مدیریت حساب ها را از مسیر مناسب دامنه انجام دهید.
برای نام کاربری محلی، قالب SERVERNAME\username یا .\username را امتحان کنید. برای کاربر دامنه، قالب DOMAIN\username مناسب است. رمز عبور حساب را وارد کنید، نه PIN ویندوز یا کد ورود دستگاه. همچنین بررسی کنید حساب غیرفعال، قفل یا منقضی نشده باشد.
اگر خطا می گوید کاربر اجازه ورود از راه دور ندارد، علاوه بر عضویت در گروه، سیاست Allow log on through Remote Desktop Services و سیاست مقابل آن یعنی Deny log on through Remote Desktop Services را بررسی کنید. وجود کاربر در گروه مجاز، سیاست Deny را خنثی نمی کند. در محیط دامنه، تغییر باید با هماهنگی مدیر سیستم انجام شود.
مرحله ۵: قوانین فایروال Windows و فایروال هاست را بررسی کنید
در سرور، Win + R را بزنید، wf.msc را اجرا کنید و در Windows Defender Firewall with Advanced Security به بخش Inbound Rules بروید. قوانین ورودی مربوط به Remote Desktop را پیدا کنید. معمولا قانون Remote Desktop – User Mode (TCP-In) باید فعال باشد و پروفایل شبکه ای که سرور استفاده می کند را پوشش دهد. قانون UDP می تواند برای بهبود عملکرد استفاده شود، اما برای تشخیص اولیه پورت، تست TCP کافی است.
برای فعال کردن گروه قوانین از PowerShell با دسترسی Administrator می توانید استفاده کنید:
Get-NetFirewallRule -DisplayGroup "Remote Desktop" | Set-NetFirewallRule -Enabled True
نام گروه ممکن است در ویندوز غیر انگلیسی متفاوت باشد. اگر دستور هیچ قانونی پیدا نکرد، از رابط گرافیکی فایروال استفاده کنید یا نام محلی گروه را بررسی کنید. صرفا برای تست، فایروال را به طور کامل خاموش نکنید؛ این کار سرور را بی دفاع می کند و ممکن است علت واقعی را هم پنهان کند.
اگر فایروال خود ویندوز اجازه می دهد ولی Test-NetConnection هنوز False است، در پنل ارائه دهنده سرور، فایروال ابری، Security Group یا ACL شبکه را بررسی کنید. قانون ورودی باید به پورت فعلی RDP اشاره کند. اگر امکان دارد منبع را فقط به IP ثابت یا محدوده IP خودتان محدود کنید. در یک پیکربندی چند لایه ممکن است هم قانون ویندوز و هم قانون پنل هاست لازم باشد.
مرحله ۶: اگر پورت سفارشی دارید، همان شماره را همه جا به کار ببرید
برخی مدیران پورت پیش فرض RDP را تغییر می دهند. از کنسول سرور، PowerShell را با دسترسی Administrator باز کنید و مقدار پورت Listener را بخوانید:
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name PortNumber
در مقدار خروجی، پورت واقعی Listener دیده می شود. اگر آن را پیدا کردید، از کامپیوتر خودتان همان پورت را تست کنید:
Test-NetConnection -ComputerName SERVER-IP-OR-NAME -Port PORT
در برنامه Remote Desktop، نشانی را به شکل IP-ADDRESS:PORT وارد کنید. قانون فایروال Windows و فایروال پنل هاست نیز باید همان شماره را اجازه دهد. تغییر پورت در رجیستری را در زمان قطعی اتصال و بدون راه دسترسی جایگزین انجام ندهید؛ اشتباه در شماره یا جا انداختن یک فایروال می تواند دسترسی شما را قطع کند.
اگر کاربران باید از اینترنت به منابع داخلی شرکت وصل شوند، راهکار سازمانی مانند VPN یا RD Gateway را بررسی کنید. RD Gateway دسترسی RDP را از مسیر درگاه امن مدیریت می کند و به جای باز کردن مستقیم پورت RDP سرور مقصد روی اینترنت، امکان استفاده از ارتباط HTTPS را فراهم می کند. مستند رسمی نصب و پیکربندی RD Gateway
مرحله ۷: سرویس Remote Desktop و Listener را بررسی کنید
اگر به سرور از طریق کنسول دسترسی دارید، PowerShell را با دسترسی Administrator باز کنید و وضعیت سرویس ها را ببینید:
Get-Service TermService, UmRdpService
سرویس اصلی Remote Desktop Services نام داخلی TermService دارد. سپس در Command Prompt یا PowerShell این دستور را اجرا کنید:
qwinsta
در خروجی باید سطری شبیه rdp-tcp با وضعیت Listen ببینید. اگر چنین Listener وجود ندارد یا سرویس شروع نمی شود، مشکل از مسیر شبکه صرف نیست و باید لاگ های سیستم، Group Policy یا پیکربندی Listener بررسی شود. Microsoft اجرای qwinsta را برای بررسی Listener پیشنهاد می کند. مراحل عمومی عیب یابی RDP در Microsoft Learn
برای دیدن اینکه فرایندی روی پورت ۳۳۸۹ در حالت Listening هست یا نه، دستور زیر را اجرا کنید:
netstat -ano | findstr :3389
اگر پورت سفارشی دارید، عدد ۳۳۸۹ را با همان پورت عوض کنید. خروجی LISTENING یعنی برنامه ای روی آن پورت گوش می دهد، اما به تنهایی سالم بودن کل نشست RDP را ثابت نمی کند. اگر هیچ خروجی ندارید، پورت با این شماره شنونده ندارد یا Listener فعال نیست.
مرحله ۸: Group Policy اجازه اتصال را مسدود نکرده باشد
اگر گزینه Remote Desktop در پنجره تنظیمات خاکستری است، یا پس از فعال کردن دوباره غیرفعال می شود، از Command Prompt با دسترسی Administrator این گزارش را بسازید:
gpresult /H C:\gpresult.html
گزارش را باز کنید و این مسیر را بررسی کنید: Computer Configuration > Administrative Templates > Windows Components > Remote Desktop Services > Remote Desktop Session Host > Connections. تنظیم Allow users to connect remotely by using Remote Desktop Services نباید توسط یک GPO مسدود شده باشد. اگر سرور عضو دامنه است، مقدار موثر و نام GPO برنده را با مدیر دامنه بررسی کنید. تغییر رجیستری برای دور زدن Policy راه حل پایداری نیست؛ Policy ممکن است دوباره مقدار را بازنویسی کند.
مرحله ۹: اگر IP کار می کند اما نام سرور نه، DNS را بررسی کنید
روی کامپیوتر خودتان این دستور را اجرا کنید:
nslookup SERVER-NAME
آدرس برگردانده شده باید با IP فعلی سرور یکی باشد. اگر یکی نیست، رکورد DNS دامنه یا کش DNS را بررسی کنید. بعد از اصلاح رکورد می توانید کش محلی را پاک کنید:
ipconfig /flushdns
اگر نامی که استفاده می کنید فقط در DNS داخلی تعریف شده است، از خارج شبکه شاید قابل resolve نباشد. در آن حالت با IP عمومی یا نام عمومی درست تست کنید. اگر اتصال با IP و با نام هر دو قطع است، DNS احتمالا علت اصلی نیست و باید به تست پورت و قوانین فایروال برگردید.
مرحله ۱۰: خطای رمز، NLA یا صفحه سیاه را جداگانه حل کنید
اتصال برقرار می شود اما رمز یا ورود رد می شود
فرمت نام کاربری را بررسی کنید و مطمئن شوید حساب اجازه ورود از راه دور دارد. رمز عبور را دستی وارد کنید و از PIN استفاده نکنید. اگر حساب دامنه ای است، وضعیت قفل شدن حساب، انقضای رمز و Policy های ورود را از مدیر دامنه بپرسید. اگر خطا به NLA یا CredSSP اشاره می کند، ابتدا Windows و کلاینت Remote Desktop را به روز کنید و ساعت سیستم ها را بررسی کنید. برای حل عجولانه، سیاست های امنیتی یا NLA را دائمی خاموش نکنید.
پس از ورود صفحه سیاه دیده می شود
کمی صبر کنید تا نشست بارگذاری شود. اگر ادامه داشت، اتصال را ببندید و دوباره امتحان کنید. در تنظیمات برنامه Remote Desktop، رزولوشن نمایشگر را پایین تر بیاورید و از بخش Experience، کیفیت را برای اتصال ضعیف تر تنظیم کنید. در پنجره Remote Desktop Connection، زبانه Experience را باز کنید و اگر فعال بودن Persistent bitmap caching مشکل ایجاد می کند، آن را موقتا خاموش و دوباره تست کنید. اگر از کنسول سرور امکان دسترسی دارید، وضعیت نشست و مصرف CPU و حافظه را بررسی کنید. برای سرور در حال تولید، بدون بررسی نشست کاربران، سرویس یا کل ماشین را Restart نکنید.
پس از ورود بلافاصله قطع می شود
بررسی کنید سرور منابع کافی دارد، نشست قبلی قفل یا گیر نکرده و سیاست زمان محدود نشست باعث Logoff نشده باشد. اگر مشکل برای چند حساب همزمان رخ می دهد، گزارش های Event Viewer در شاخه های Remote Desktop Services و Windows Logs را در همان بازه زمانی بررسی کنید. اگر فقط یک کاربر درگیر است، ابتدا پروفایل و مجوز همان حساب را بررسی کنید.
یک نکته درباره محدودیت دو اتصال و مجوزهای RDS
اتصال Remote Desktop برای مدیریت Windows Server با استقرار Remote Desktop Services چندکاربره یکی نیست. اگر چندین کاربر باید همزمان از دسکتاپ یا برنامه های منتشرشده استفاده کنند، طراحی نقش های RDS و مجوزهای مناسب RDS CAL لازم است. اضافه کردن پورت یا تغییر رجیستری محدودیت مجوز را برطرف نمی کند. برای معماری چندکاربره، مستندات نمای کلی Remote Desktop Services را ببینید.
پرسش های متداول درباره ریموت ویندوز سرور ۲۰۱۹
پورت پیش فرض ریموت ویندوز سرور ۲۰۱۹ چیست؟
پورت پیش فرض RDP معمولا TCP و UDP شماره ۳۳۸۹ است. مدیر سرور می تواند این پورت را تغییر دهد؛ بنابراین اگر ۳۳۸۹ پاسخ نمی دهد، شماره تنظیم شده در Listener و پنل فایروال را بررسی کنید.
پورت ۳۳۸۹ باز است اما هنوز نمی توانم وارد سرور شوم؛ علت چیست؟
باز بودن پورت فقط رسیدن ارتباط TCP را نشان می دهد. Remote Desktop هم باید فعال باشد، Listener باید در وضعیت Listen باشد و حساب شما باید اجازه ورود داشته باشد. در مرحله بعد، نام کاربری، رمز، NLA و سیاست های ورود را بررسی کنید.
آیا خاموش کردن Windows Firewall مشکل RDP را حل می کند؟
خاموش کردن کامل فایروال را توصیه نمی کنیم. به جای آن قانون ورودی Remote Desktop را فعال کنید و جداگانه فایروال پنل هاست را بررسی کنید. اگر برای آزمون کوتاه نیاز به تغییر دارید، فقط از کنسول امن و با برنامه بازگردانی روشن انجام دهید.
آیا لازم است برای وصل شدن به RDP پورت را تغییر بدهم؟
خیر. تغییر پورت به تنهایی راهکار امنیتی کامل نیست و می تواند با تنظیم ناهماهنگ فایروال باعث قطع دسترسی شود. برای دسترسی اینترنتی، VPN یا RD Gateway و محدودسازی IPهای مجاز را در اولویت قرار دهید.
چرا با IP وصل می شوم اما با نام دامنه نه؟
این الگو معمولا به DNS مربوط است. با nslookup بررسی کنید نام سرور به IP فعلی اشاره کند. اگر فقط در شبکه داخلی نام تعریف شده، از بیرون شبکه باید از نام عمومی معتبر یا IP درست استفاده کنید.
اگر صفحه سیاه می بینم یعنی RDP قطع است؟
نه لزوما. ممکن است اتصال برقرار شده باشد اما نمایش نشست یا بارگذاری دسکتاپ گیر کرده باشد. رزولوشن را کاهش دهید، تنظیمات Experience و Bitmap Caching کلاینت را آزمایش کنید و از کنسول، وضعیت نشست و منابع سرور را بررسی کنید.
چک لیست سریع رفع مشکل ریموت ویندوز سرور ۲۰۱۹
- سرور در پنل هاست روشن است و از کنسول قابل مشاهده است.
- Remote Desktop روی خود Windows Server فعال است.
- کاربر با فرمت درست وارد می شود و مجوز اتصال دارد.
- پورت واقعی RDP مشخص است؛ لزوما همیشه ۳۳۸۹ نیست.
- تست
Test-NetConnectionروی پورت واقعی موفق است. - قانون ورودی Windows Firewall و فایروال پنل هاست فعال است.
- سرویس
TermServiceاجرا می شود و Listener درqwinstaوضعیت Listen دارد. - اگر IP کار می کند ولی نام نه، رکورد DNS اصلاح می شود.
- NLA روشن می ماند، مگر برای آزمون کوتاه و کنترل شده.
- دسترسی RDP از اینترنت عمومی به IPهای غیرلازم باز نیست.
چه زمانی با شرکت هاستینگ یا ادمین سرور تماس بگیریم؟
اگر سرور در کنسول روشن است اما به پورت RDP دسترسی ندارید، از پشتیبانی هاست بخواهید وضعیت فایروال شبکه، IP عمومی، تغییرات اخیر و دسترسی کنسول را بررسی کند. اگر qwinsta Listener را نشان نمی دهد، سرویس شروع نمی شود، یا Group Policy سازمانی گزینه را قفل کرده است، از مدیر ویندوز یا مدیر دامنه کمک بگیرید. تغییرات پیشرفته رجیستری، بازسازی RDP-Tcp و دستکاری گواهی را بدون نسخه پشتیبان و مسیر دسترسی جایگزین انجام ندهید.
برای ارسال تیکت، متن خطا، زمان وقوع، خروجی Test-NetConnection بدون اطلاعات حساس، پورت مورد استفاده و نتیجه اتصال از کنسول را ضمیمه کنید. رمز عبور، فایل خصوصی گواهی، کلید SSH یا کدهای ورود را برای پشتیبانی ارسال نکنید.
منابع رسمی
- Remote Desktop Can’t Connect to the Remote Computer
- General Remote Desktop connection troubleshooting
- Ports that are used by Remote Desktop Services
- Enable Remote Desktop on your PC
- Remote Desktop access from outside your network
- Deploy the Remote Desktop Gateway role
یادداشت تصویر برای ویراستار: پیش از انتشار، چهار جایگاه تصویر بالا را با اسکرین شات های واقعی Windows Server ۲۰۱۹ و پنل سرور خودتان جایگزین کنید. اگر تصویر واقعی ندارید، پاراگراف های جای تصویر را از نسخه منتشرشده حذف کنید؛ تصویر عمومی یا ساختگی را به عنوان اسکرین شات همان سرور معرفی نکنید.