راهنمای کامل اتصال RDP به سرور ویندوز: مراحل اتصال از ویندوز، مک، اندروید و iOS، فعال‌سازی ریموت دسکتاپ روی سرور، خطاهای رایج و امن‌سازی پورت RDP.

آموزش اتصال RDP به سرور ویندوز از ویندوز، مک و موبایل

RDP (Remote Desktop Protocol) پروتکل استاندارد مایکروسافت برای اتصال از راه دور به محیط دسکتاپ گرافیکی سرورهای ویندوزی است. برخلاف SSH که یک محیط متنی می‌دهد، RDP کل دسکتاپ سرور را — دقیقاً مثل نشستن پشت آن سیستم — در اختیارتان می‌گذارد.

در عمل، اتصال RDP سه بخش دارد که اغلب کاربران فقط بخش اول را می‌شناسند: خودِ اتصال از کلاینت، آماده بودن سرویس روی سرور، و مسیر شبکه‌ای که این دو را به هم می‌رساند. بیشتر خطاهایی که ادمین‌ها گزارش می‌کنند در بخش دوم و سوم اتفاق می‌افتد. در این مقاله هر سه بخش را جدا می‌کنیم و در پایان سراغ امن‌سازی می‌رویم، چون پورت RDP باز روی اینترنت یکی از پرحمله‌ترین سطوح در دنیای سرور است.

پیش از اتصال چه چیزهایی باید داشته باشید

قبل از باز کردن هر کلاینتی، این چهار مورد را کنار هم بگذارید. نبودِ هرکدام، خطایی تولید می‌کند که ظاهرش شبیه مشکل شبکه است ولی نیست.

  • آدرس IP سرور: همان IPv4 عمومی که هنگام تحویل سرور به شما داده شده است.
  • پورت RDP: به‌صورت پیش‌فرض 3389. اگر سرویس‌دهنده یا خودتان آن را تغییر داده‌اید، باید عدد جدید را بدانید.
  • نام کاربری: روی سرورهای ویندوز معمولاً Administrator، مگر اینکه کاربر دیگری برای شما ساخته شده باشد.
  • رمز عبور: رمز تحویلی. اولین کاری که بعد از ورود انجام می‌دهید تغییر همین رمز است.
  • یک راه دسترسی جایگزین: کنسول یا VNC پنل مدیریت سرور. اگر RDP قطع شود، تنها راه بازگرداندن آن همین است.

نکته‌ای که خیلی‌ها دیر متوجه می‌شوند: دسترسی کنسول را همان روز اول تست کنید، نه روزی که RDP از کار افتاده. تفاوت یک قطعی ده‌دقیقه‌ای با یک قطعی چندساعته معمولاً همین است.

اتصال از ویندوز

ویندوز کلاینت RDP را به‌صورت داخلی دارد و نیازی به نصب چیزی نیست.

  1. در نوار جست‌وجوی ویندوز عبارت Remote Desktop Connection را جست‌وجو کنید (یا کلیدهای Win+R را زده و mstsc را اجرا کنید).
  2. آدرس IP سرور را در فیلد Computer وارد کنید. اگر پورت غیرپیش‌فرض دارید، آن را با دو نقطه بعد از IP بنویسید؛ مثلاً 203.0.113.10:33890
  3. روی Show Options کلیک کنید تا تنظیمات بیشتر باز شود. در تب Local Resources می‌توانید کلیپ‌بورد و درایوهای سیستم خودتان را برای انتقال فایل به سرور فعال کنید.
  4. در تب Display اگر اینترنت‌تان ضعیف است، عمق رنگ را روی 16 bit بگذارید؛ تفاوت روانی تصویر محسوس است.
  5. روی Connect کلیک کنید، نام کاربری و رمز عبور را وارد کنید و در پیام گواهی، اتصال را تأیید کنید.

اگر روزانه به چند سرور وصل می‌شوید، به‌جای وارد کردن دستی اطلاعات، اتصال را با Save As به یک فایل rdp. ذخیره کنید. همچنین می‌توانید مستقیم از خط فرمان اتصال بگیرید:

mstsc /v:203.0.113.10:33890 /w:1600 /h:900

اتصال از مک، اندروید، iOS و لینوکس

روی macOS اپلیکیشن رسمی Windows App (نام قبلی آن Microsoft Remote Desktop بود) را از App Store نصب کنید، با دکمه + یک PC جدید بسازید، در فیلد PC name آدرس و پورت را به شکل IP:PORT وارد کنید و در بخش User account اطلاعات ورود را ذخیره کنید. تنظیمات تصویر و اشتراک پوشه در تب‌های Display و Folders همان اپلیکیشن قرار دارد.

روی اندروید و iOS همان اپلیکیشن رسمی مایکروسافت در Play Store و App Store موجود است. تجربه کار با ماوس مجازی روی موبایل خسته‌کننده است؛ برای کارهای طولانی تبلت با کیبورد بلوتوث یا لپ‌تاپ گزینه معقول‌تری است. موبایل را به‌عنوان راه اضطراری نگه دارید: «اپلیکیشن‌پول» is mangled. Write it as: «ری‌استارت یک سرویس، بررسی یک لاگ، یا استارت دوباره یک Application Pool در IIS.»

روی لینوکس، Remmina (با پلاگین RDP) یا FreeRDP کار را انجام می‌دهند. با FreeRDP اتصال از ترمینال چنین شکلی دارد:

xfreerdp /v:203.0.113.10:33890 /u:Administrator /size:1600x900 /clipboard /dynamic-resolution

اگر روی لینوکس با خطای گواهی مواجه شدید، دلیلش self-signed بودن گواهی RDP سرور است و طبیعی است؛ در اولین اتصال آن را بپذیرید و اثر انگشت گواهی را برای دفعات بعد به خاطر بسپارید تا اگر روزی تغییر کرد متوجه شوید.

فعال‌سازی RDP روی خود سرور

روی سرورهای ویندوزی که آماده تحویل داده می‌شوند، RDP معمولاً از قبل فعال است. اما اگر ویندوز را خودتان نصب کرده‌اید، یا تنظیمات به هم ریخته و فقط از طریق کنسول دسترسی دارید، فعال‌سازی از رابط گرافیکی در این مسیر است: Server Manager > Local Server > Remote Desktop و تغییر آن به Enabled.

از PowerShell سریع‌تر است. این دو دستور سرویس را فعال و قوانین فایروال مربوط به آن را باز می‌کنند:

Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server' -Name fDenyTSConnections -Value 0
Enable-NetFirewallRule -DisplayGroup "Remote Desktop"
Get-Service TermService

برای اطمینان از اینکه سرویس واقعاً روی پورت مورد نظر گوش می‌دهد:

Get-NetTCPConnection -LocalPort 3389 -State Listen
Get-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name PortNumber

اگر خروجی دستور اول خالی بود یعنی مشکل از سمت سرور است و بی‌فایده است که دنبال ایراد در کلاینت یا اینترنت خودتان بگردید.

خطاهای رایج و علت واقعی آن‌ها

پیام‌های خطای RDP عمداً مبهم هستند تا اطلاعاتی به مهاجم ندهند. این جدول ذهنی کمک می‌کند سریع‌تر به علت برسید.

  • This computer can't connect to the remote computer: یا سرویس RDP بالا نیست، یا پورت اشتباه است، یا فایروال سرور مسیر را بسته است. اول با کنسول وارد شوید و وضعیت TermService را ببینید.
  • اتصال بی‌پاسخ می‌ماند و بعد timeout می‌شود: بسته‌ها اصلاً به سرور نمی‌رسند. مسیر شبکه، فایروال سخت‌افزاری یا محدودیت IP مبدأ را بررسی کنید. اگر IP خانگی شما داینامیک است و قانون فایروال را به IP قبلی بسته‌اید، همین اتفاق می‌افتد.
  • The logon attempt failed: نام کاربری یا رمز اشتباه است. اگر مطمئنید درست است، احتمال دارد حساب به‌دلیل تلاش‌های ناموفق قفل شده باشد.
  • خطای CredSSP یا Authentication error: عدم تطابق سطح احراز هویت بین کلاینت و سرور، معمولاً به‌دلیل آپدیت نبودن یکی از دو طرف. راه‌حل درست، آپدیت کردن است؛ غیرفعال کردن NLA راه‌حل نیست.
  • The remote session was disconnected because there are no Remote Desktop License Servers: مهلت آزمایشی نقش Remote Desktop Services تمام شده است. اگر نقش RDS را عمداً نصب نکرده‌اید، حذف آن مشکل را برطرف می‌کند.
  • سشن باز می‌شود ولی صفحه سیاه می‌ماند: معمولاً مشکل درایور گرافیک مجازی یا حافظه پر. با یک بار disconnect و اتصال دوباره، یا ری‌استارت سرویس، رفع می‌شود.

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

امن‌سازی RDP؛ چهار لایه‌ای که باید فعال باشد

Remove the specific timeframe and the absolute claim: «پورت 3389 باز روی اینترنت خیلی زود هدف تلاش‌های ورود خودکار قرار می‌گیرد. این چیزی نیست که «شاید» اتفاق بیفتد؛ هر IP عمومی دیر یا زود این ترافیک را می‌بیند.» چهار لایه زیر را به ترتیب اهمیت اجرا کنید.

1. رمز عبور قوی و تغییر نام کاربری پیش‌فرض

مهم‌ترین لایه، ساده‌ترین لایه است. رمز تحویلی سرور را بلافاصله عوض کنید و رمزی طولانی و تصادفی بگذارید. اگر می‌توانید، به‌جای Administrator یک حساب مدیریتی با نام دیگر بسازید و حساب پیش‌فرض را غیرفعال کنید — Drop the fabricated proportion. Replace with: «این کار بخش زیادی از تلاش‌های خودکار را بی‌اثر می‌کند، چون بسیاری از آن‌ها فقط نام Administrator را امتحان می‌کنند.» (also update the matching text/html pair if edited in a block that has both). قفل شدن حساب پس از چند تلاش ناموفق هم لایه ارزانی است:

net accounts /lockoutthreshold:5 /lockoutduration:30 /lockoutwindow:30

2. محدود کردن IP مبدأ در فایروال

Soften to a defensible statement: «از نظر عملی، این لایه بیشترین اثر را دارد.» or «این لایه بیشتر از بقیه جلوی تلاش‌های خودکار را می‌گیرد.» اگر IP ثابت دارید یا از یک IP مشخص کار می‌کنید، دسترسی به پورت RDP را فقط برای همان باز بگذارید. در این حالت اسکنرها حتی به صفحه ورود هم نمی‌رسند:

203.0.113.10 is used earlier in the article as the SERVER's IP (mstsc /v:203.0.113.10, xfreerdp /v:203.0.113.10), so reusing it here as the admin's source IP is confusing and misreadable as "allow the server to itself". Use a different documentation IP for the client side, e.g. -RemoteAddress 198.51.100.25 (and 198.51.100.25,198.51.100.26 in the following Set-NetFirewallRule line), and keep the following sentence's «IPهای نمونه بالا را با IP واقعی خودتان جایگزین کنید».
Set-NetFirewallRule -DisplayName "RDP-Restricted" -RemoteAddress 203.0.113.10,198.51.100.25

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

3. تغییر پورت پیش‌فرض

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

Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name PortNumber -Value 33890
New-NetFirewallRule -DisplayName "RDP-Custom" -Direction Inbound -Protocol TCP -LocalPort 33890 -Action Allow
Restart-Service TermService -Force

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

4. فعال نگه داشتن NLA و آپدیت‌های ویندوز

NLA (Network Level Authentication) کاری می‌کند که کاربر پیش از ایجاد سشن گرافیکی احراز هویت شود. نتیجه‌اش این است که تلاش‌های ورود، منابع سرور را مصرف نمی‌کنند و سطح حمله کوچک‌تر می‌شود. این گزینه باید روشن باشد:

Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name UserAuthentication -Value 1

آپدیت ویندوز را هم فعال نگه دارید. چند آسیب‌پذیری جدی مربوط به سرویس ریموت دسکتاپ در سال‌های گذشته منتشر شده که تنها راه بستن‌شان نصب وصله رسمی است؛ هیچ تنظیم فایروالی جای آن را نمی‌گیرد. برای دیدن تصویر کامل‌تر از سخت‌سازی سرور، چک‌لیست امنیت سرور لینوکس هم منطق مشابهی دارد که بیشترش قابل‌تعمیم به ویندوز است.

کدام سرور برای کار با RDP مناسب‌تر است

کیفیت تجربه RDP بیش از هر چیز به تأخیر شبکه (ping) وابسته است، نه به قدرت CPU. یک سرور قدرتمند با تأخیر بالا، کند و کش‌دار حس می‌شود؛ یک سرور معمولی با تأخیر پایین، روان. معیارهای انتخاب:

  • اگر کاربران و اپراتورها داخل ایران هستند: سرور ایران با تأخیر پایین انتخاب درست است. کار روزمره با نرم‌افزار حسابداری، ریموت به یک اپلیکیشن دسکتاپ یا مدیریت روزانه، روی تأخیر پایین کاملاً محسوس است.
  • اگر پروژه به ترافیک خروجی بین‌المللی سنگین نیاز دارد: سرور خارج با ترافیک نامحدود منطقی‌تر است، هرچند تأخیر بالاتر، کار مداوم با دسکتاپ را خسته‌کننده می‌کند.
  • اگر منابع اختصاصی و پایدار می‌خواهید: وقتی چند کاربر همزمان روی یک سرور ویندوز کار می‌کنند، مصرف رم به‌سرعت بالا می‌رود؛ سرور اختصاصی یا پلن با رم بیشتر را در نظر بگیرید.
  • اگر فقط برای مدیریت گاه‌به‌گاه است: نیازی به پلن بزرگ نیست؛ پایین‌ترین پلن با دیسک کافی برای ویندوز پاسخ‌گوست.

برای کاربران داخل ایران، سرور مجازی رسپینا در دیتاسنتر تهران با پورت 10 گیگابیت و تحویل آنی از 799 هزار تومان در ماه، گزینه‌ای است که تأخیر پایین لازم برای کار روان با RDP را فراهم می‌کند.

اگر هنوز مطمئن نیستید که اصلاً به ویندوز نیاز دارید یا لینوکس کارتان را راه می‌اندازد، توضیحات سرور مجازی ویندوز چیست را ببینید؛ ویندوز رم بیشتری مصرف می‌کند و برای بار وب معمولاً انتخاب اول نیست.

سوالات متداول

چند نفر می‌توانند همزمان به سرور ویندوز وصل شوند؟

ویندوز سرور به‌صورت پیش‌فرض دو سشن مدیریتی همزمان را می‌پذیرد. اگر می‌خواهید تعداد بیشتری کاربر همزمان کار کنند، باید نقش Remote Desktop Services نصب و لایسنس‌های CAL آن تهیه شود. اگر بدون لایسنس فقط نقش را نصب کنید، بعد از پایان دوره آزمایشی اتصال‌ها قطع می‌شوند.

چطور بین سیستم خودم و سرور فایل جابه‌جا کنم؟

در همان پنجره Remote Desktop Connection به تب Local Resources بروید، روی More کلیک کنید و درایو مورد نظر را تیک بزنید. بعد از اتصال، آن درایو داخل This PC سرور دیده می‌شود. کپی‌پیست معمولی متن هم با فعال بودن گزینه Clipboard کار می‌کند. برای فایل‌های حجیم، انتقال از طریق همین درایو نسبت به کپی‌پیست پایدارتر است.

چرا اتصال کند و کش‌دار است؟

اول تأخیر شبکه را بررسی کنید؛ RDP به تأخیر حساس‌تر است تا به پهنای باند. بعد در تنظیمات کلاینت عمق رنگ را کم کنید، افکت‌های بصری مثل پس‌زمینه دسکتاپ و انیمیشن منو را غیرفعال کنید و رزولوشن را پایین‌تر بگذارید. در نهایت مصرف رم سرور را ببینید؛ اگر ویندوز وارد swap شده باشد، هیچ تنظیم تصویری نجاتش نمی‌دهد.

آیا تغییر پورت RDP امنیت را تضمین می‌کند؟

نه. تغییر پورت فقط سروصدای اسکنرهای خودکار را کم می‌کند. امنیت واقعی از رمز قوی، محدود کردن IP مبدأ، فعال بودن NLA و به‌روز بودن ویندوز می‌آید. تغییر پورت را به‌عنوان لایه مکمل ببینید، نه جایگزین.

بعد از تغییر رمز عبور، اتصال فعلی قطع می‌شود؟

سشن باز معمولاً قطع نمی‌شود، اما اتصال بعدی با رمز جدید انجام می‌شود. اگر رمز را در کلاینت ذخیره کرده‌اید، آن اعتبار ذخیره‌شده را هم به‌روز کنید وگرنه با خطای logon failed مواجه می‌شوید.

جمع‌بندی

اتصال RDP خودش کار پیچیده‌ای نیست: IP، پورت، نام کاربری، رمز. پیچیدگی جایی شروع می‌شود که اتصال برقرار نمی‌شود یا سرور در معرض حملات خودکار قرار می‌گیرد. اگر همان روز اول رمز پیش‌فرض را عوض کنید، دسترسی به پورت را به IPهای خودتان محدود کنید، NLA را روشن نگه دارید و یک راه دسترسی جایگزین از طریق کنسول داشته باشید، عملاً بیشتر مشکلات رایج RDP را از ابتدا حذف کرده‌اید.

اگر در مسیر راه‌اندازی به مشکل خوردید، پشتیبانی 24 ساعته پارس ابر از طریق تلفن 021-79703 و تلگرام t.me/parsabr_com در دسترس است.