تغییرات اخیر

در اینجا اطلاعیه‌ها، نسخه‌ها و تغییرات جدید لیارا فهرست می‌شوند.

اتصال ریموت دسکتاپ (RDP) به اوبونتو با استفاده از xrdp


۱۴ آذر ۱۴۰۴

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

در ادامه خواهید خواند:

  • نکات کلیدی
  • مرحله 1: نصب محیط دسکتاپ در اوبونتو
  • مرحله 2: نصب xrdp در اوبونتو
  • مرحله 3: پیکربندی xrdp و به‌روزرسانی فایروال
  • مرحله 4: آزمایش اتصال RDP
  • پیکربندی چند کاربر یا نشست‌های هم‌زمان در xrdp
  • بهینه‌سازی عملکرد xrdp برای اتصال‌های کند یا با تاخیر بالا
  • درک سازگاری xrdp با Wayland و Xorg
  • مقایسه xrdp با گزینه‌های جایگزین: VNC, TeamViewer و NoMachine
  • جمع بندی
اتصال ریموت دسکتاپ (RDP) به اوبونتو

نکات کلیدی

  • xrdp امکان دسترسی RDP به اوبونتو را فراهم می‌کند: با نصب و پیکربندی xrdp روی سرور Ubuntu، می‌توانید از طریق پروتکل استاندارد RDP به دسکتاپ سرور از ویندوز، macOS یا لینوکس متصل شوید.
  • پیشنهاد استفاده از Xfce برای عملکرد بهتر: محیط دسکتاپ سبک مثل Xfce برای جلسات RDP مناسب است و رابط گرافیکی پاسخگو با کمترین مصرف منابع را ارائه می‌دهد.
  • پیکربندی فایروال ضروری است: برای دسترسی RDP، پورت TCP 3389 باید روی فایروال سرور باز شود و بهتر است دسترسی فقط به IPهای مشخص محدود شود تا امنیت حفظ شود.
  • هر کاربر نیاز به فایل .xsession دارد: برای هر حساب کاربری لینوکس، یک فایل .xsession باید ایجاد شود که جلسه (مثلا xfce4-session) را مشخص کند تا محیط دسکتاپ به‌درستی از طریق RDP اجرا شود.
  • امکان اتصال هم‌زمان چند کاربر وجود دارد: xrdp از جلسات هم‌زمان با محیط‌های جداگانه برای هر کاربر پشتیبانی می‌کند، به شرطی که منابع سیستم کافی باشد و حساب‌های کاربری به درستی پیکربندی شده باشند.
  • Wayland با xrdp سازگار نیست: xrdp برای عملکرد پایدار نیاز به Xorg دارد. اگر سیستم از Wayland استفاده می‌کند، باید آن را غیرفعال کرد (مثلا از طریق تنظیمات gdm3) تا xrdp به درستی کار کند.
  • بهینه‌سازی عملکرد برای اتصال‌های کند: کاهش رزولوشن صفحه و عمق رنگ، غیرفعال کردن جلوه‌های دسکتاپ و فعال کردن فشرده‌سازی سمت کلاینت می‌تواند عملکرد RDP را در شبکه‌های با پهنای باند پایین به‌طور قابل توجهی بهبود دهد.
  • ابزارهای جایگزین نیز وجود دارند: بسته به نیازتان، ابزارهایی مثل VNC, TeamViewer یا X2Go ممکن است عملکرد، قابلیت‌ها یا سازگاری بهتری برای دسترسی ریموت دسکتاپ در لینوکس ارائه دهند.

مرحله 1: نصب محیط دسکتاپ در اوبونتو

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

از بین گزینه‌های موجود برای اوبونتو، محیط دسکتاپ Xfce را نصب خواهید کرد. Xfce یک محیط دسکتاپ سبک و کاربرپسند برای سیستم‌های مبتنی بر لینوکس ارائه می‌دهد.

برای شروع، با استفاده از SSH به سرور متصل شوید و فهرست بسته‌های موجود را با دستور زیر به‌روزرسانی کنید:

sudo apt update

سپس بسته‌های xfce4 و xfce4-goodies را روی سرور نصب کنید:

sudo apt install xfce4 xfce4-goodies -y

در طول نصب، از شما خواسته می‌شود یک Display Manager انتخاب کنید؛ برنامه‌ای که ورود گرافیکی و نشست‌های کاربری را مدیریت می‌کند. برای یک تنظیمات سبک که با XFCE هماهنگ باشد، توصیه می‌شود lightdm را انتخاب کنید. در این آموزش از gdm3 استفاده شده است، اما lightdm نیز یک گزینه عالی محسوب می‌شود.

بعد از نصب محیط دسکتاپ، حالا نوبت نصب xrdp روی سرور می‌رسد.

با سرویس آماده سرور Ubuntu لیارا، زیرساخت پروژه‌هات رو سریع و مطمئن بساز.
✅ نصب فوری و آماده استفاده✅ منابع اختصاصی و پایدار✅ دسترسی کامل SSH
خرید و راه‌اندازی سرور Ubuntu

مرحله 2: نصب xrdp در اوبونتو

xrdp یک پیاده‌سازی متن‌باز از سرور RDP است که امکان برقراری اتصال RDP برای سرورهای لینوکسی را فراهم می‌کند. در این مرحله، شما xrdp را روی سرور Ubuntu خود نصب خواهید کرد.

برای نصب xrdp، دستور زیر را در ترمینال اجرا کنید:

sudo apt install xrdp -y

پس از نصب xrdp، وضعیت آن را با استفاده از systemctl بررسی کنید:

sudo systemctl status xrdp

این دستور وضعیت سرویس را نمایش می‌دهد و باید نتیجه به‌صورت active (running) باشد:

Output● xrdp.service - xrdp daemon
     Loaded: loaded (/lib/systemd/system/xrdp.service; enabled; vendor preset: enabled)
     Active: **active (running)** since Sun 2022-08-07 13:00:44 UTC; 26s ago
       Docs: man:xrdp(8)
             man:xrdp.ini(5)
   Main PID: 17904 (xrdp)
      Tasks: 1 (limit: 1131)
     Memory: 1016.0K
     CGroup: /system.slice/xrdp.service
             └─17904 /usr/sbin/xrdp

اگر وضعیت xrdp در حالت running نبود، باید سرویس را به‌صورت دستی با دستور زیر اجرا کنید:

sudo systemctl start xrdp

بعد از اجرای دستور بالا، دوباره وضعیت را بررسی کنید تا مطمئن شوید xrdp در حالت فعال (running) قرار دارد.

اکنون xrdp روی سرور شما نصب شده است. در مرحله بعد، تنظیمات xrdp را بررسی می‌کنید تا امکان اتصال از کلاینت‌ها راه دور فراهم شود.

مرحله 3: پیکربندی xrdp و به‌روزرسانی فایروال

در این مرحله، شما تنظیمات پیش‌فرض xrdp که در مسیر /etc/xrdp/xrdp.ini ذخیره شده بررسی می‌کنید و یک پیکربندی برای اتصال RDP اضافه می‌کنید. همچنین تنظیمات فایروال را به‌روزرسانی خواهید کرد.

فایل xrdp.ini فایل پیکربندی پیش‌فرض برای راه‌اندازی اتصال‌های RDP به سرور xrdp است. این فایل قابل ویرایش و شخصی‌سازی برای برآورده کردن نیازهای اتصال RDP می‌باشد.

فایل را با ویرایشگر nano یا هر ویرایشگر دیگری باز کنید:

sudo nano /etc/xrdp/xrdp.ini

این فایل پیکربندی شامل بخش‌های مختلفی است:

  • Globals: تنظیمات عمومی xrdp را مشخص می‌کند.
  • Logging: پارامترهای مربوط به ثبت گزارش‌ها را تعریف می‌کند.
  • Channels: پارامترهای مختلف کانال‌هایی که RDP پشتیبانی می‌کند را مشخص می‌کند.
  • Session types: انواع مختلف نشست‌های پشتیبانی‌شده توسط xrdp را معرفی می‌کند. هر نوع نشست به‌صورت یک بخش جداگانه زیر نام خودش و داخل براکت‌ها تعریف می‌شود (مثل [Xorg] یا [XVnc]). در فایل عنوان مستقلی به‌نام [Sessions types] وجود ندارد و فقط به‌صورت توضیح (comment) نوشته شده است.

در بخش Session types، چند نوع نشست و پارامترهای آن‌ها را مشاهده خواهید کرد:

...

;
; Session types
;

; Some session types such as Xorg, X11rdp, and Xvnc start a display server.
; Startup command-line parameters for the display server are configured
; in sesman.ini. See and configure also sesman.ini.
[Xorg]
name=Xorg
lib=libxup.so
username=ask
password=ask
ip=127.0.0.1
port=-1
code=20

[Xvnc]
name=Xvnc
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
port=-1
#xserverbpp=24
#delay_ms=2000

[vnc-any]
...

[neutrinordp-any]
...

...

به‌طور پیش‌فرض، مقدار username و password برابر با ask هستند؛ یعنی هنگام اتصال RDP از کاربر خواسته می‌شود نام کاربری و رمز عبور را وارد کند. پارامترهایی مثل name، username و password در صورت نیاز قابل تغییر هستند، اما برای اولین اتصال RDP به سرور، همان تنظیمات پیش‌فرض کافی خواهد بود.

پس از پایان کار، فایل را ذخیره کرده و ببندید.

سپس یک فایل .xsession در مسیر /home/sammy بسازید و xfce4-session را به‌عنوان مدیر نشست اضافه کنید تا هنگام ورود از آن استفاده شود:

echo "xfce4-session" | tee ~/.xsession

دستور tee متن "xfce4-session" را در فایل .xsession ذخیره می‌کند. این کار باعث می‌شود xfce4-session به‌عنوان مدیر نشست گرافیکی هنگام ورود انتخاب شود. چون شما محیط دسکتاپ XFCE را نصب کرده‌اید، xfce4-session به‌عنوان مدیر نشست آن عمل می‌کند. اگر این اطلاعات در فایل .xsession وارد نشود، مدیر نشست انتخاب نمی‌شود و اتصال RDP به رابط گرافیکی شکست می‌خورد.

حالا سرور xrdp را ری‌استارت کنید:

sudo systemctl restart xrdp

در مرحله بعد، باید فایروال را پیکربندی کنید تا اجازه دسترسی راه دور از طریق IP عمومی شما روی پورت 3389 داده شود. پروتکل RDP از پورت TCP/IP 3389 استفاده می‌کند. بنابراین لازم است این پورت در فایروال باز شود.

ابتدا IP عمومی سیستم محلی خود را پیدا کنید:

curl ifconfig.me

روی ویندوز می‌توانید این دستور را در Command Prompt اجرا کنید.

این دستور یک درخواست به ifconfig.me می‌فرستد و IP عمومی شما را برمی‌گرداند:

Output...
your_local_ip

حالا دسترسی به پورت 3389 را روی سرور راه دور خود باز کنید و به‌جای your_local_ip خروجی دستور قبل را قرار دهید:

sudo ufw allow from your_local_ip/32 to any port 3389

نکته: مطمئن شوید که ufw فعال است (sudo ufw enable) و قبل از اضافه‌کردن قوانین، به‌درستی پیکربندی شده باشد.

وضعیت فایروال UFW را بررسی کنید.

sudo ufw status

خروجی باید مشابه زیر باشد:

OutputStatus: Active
To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                  
3389                       ALLOW       your_local_ip                 
OpenSSH (v6)               ALLOW       Anywhere (v6)  
...

در این مرحله، شما پورت 3389 را باز کرده‌اید تا از طریق IP عمومی خودتان امکان اتصال وجود داشته باشد. در ادامه، اتصال RDP سیستن محلی خود را به سرور راه دور تست خواهید کرد.

با سرویس آماده سرور مجازی لیارا، زیرساخت قدرتمند پروژه‌هات رو بدون دردسر راه‌اندازی کن.
✅ منابع اختصاصی✅ مقیاس‌پذیری فوری✅ دسترسی کامل Root
خرید و راه‌اندازی سرور مجازی

مرحله 4: آزمایش اتصال RDP

در این مرحله، شما اتصال RDP را از سیستم محلی خود تست می‌کنید. در ادامه روش تست اتصال در ویندوز، macOS و لینوکس آورده شده است.

آزمایش اتصال RDP در ویندوز

برای تست اتصال در ویندوز با استفاده از Remote Desktop Connection:

1. برنامه Remote Desktop Connection را اجرا کنید.

2. آدرس IP عمومی سرور راه‌ دور و نام کاربری را در کادرهای Computer و User name وارد کنید. (برای نمایش بخش وارد کردن نام‌ کاربری، ممکن است نیاز باشد روی Show Options کلیک کنید.)

3. روی دکمه Connect کلیک کنید. اگر خطایی دریافت کردید مبنی بر اینکه اتصال ممکن نیست، مطمئن شوید پورت 3389 در فایروال باز است و سرویس xrdp در حال اجرا می‌باشد.

4. اگر پیام تایید هویت (identity verification) ظاهر شد، روی Yes کلیک کنید.

5. سپس نام کاربری (مثلا: sammy) و رمزی که در زمان راه‌اندازی سرور ایجاد کردید را وارد کرده و روی Ok بزنید.

بعد از ورود موفق، محیط دسکتاپ اوبونتو نمایش داده خواهد شد.

حالا شما با موفقیت از ویندوز به سرور Ubuntu خود متصل شده‌اید. هر زمان که کارتان تمام شد، می‌توانمید با دکمه خروج (Exit) اتصال را ببندید.

آزمایش اتصال RDP در macOS

برای تست اتصال در macOS با استفاده از Microsoft Remote Desktop:

1. برنامه Microsoft Remote Desktop را اجرا کنید:

2. روی Add PC کلیک کنید و آدرس IP عمومی سرور راه دور را وارد کنید.

3. در هنگام راه‌اندازی می‌توانید یک حساب کاربری اضافه کنید.

4. اگر حساب کاربری اضافه نکرده باشید، هنگام اتصال از شما نام کاربری و رمز عبور خواسته می‌شود.

5. در صورت نمایش پنجره تایید هویت، روی Yes کلیک کنید.

بعد از ورود موفق، محیط دسکتاپ اوبونتو نمایش داده خواهد شد. برای خروج می‌توانید از دکمه خروج (Exit) استفاده کنید.

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

برای تست اتصال در لینوکس، به یک RDP Client نیاز دارید. در اوبونتو می‌توانید Remmina را نصب کنید:

sudo apt install remmina

اگر پیغامی برای تایید نمایش داده شد، کلید y را بزنید تا نصب شود. این دستور کلاینت متن‌باز Remmina را نصب می‌کند. برای توزیع‌های دیگر لینوکس، می‌توانید مستندات Remmina را مطالعه کنید.

پس از نصب، برنامه Remmina را اجرا کنید و آدرس IP عمومی سرور راه دور ر در کارد مربوطه وارد کرده و Enter بزنید.

در ادامه، نام کاربری (در این آموزش: sammy) و رمز عبور مربوط به آن کاربر را وارد کرده و روی Ok کلیک کنید.

ممکن است برای بازکردن دسکتاپ راه دور دوباره رمز کاربر را وارد کنید.

پس از ورود موفق، محیط دسکتاپ اوبونتو نمایش داده خواهد شد.

با این کار شما توانستید با استفاده از RDP از لینوکس به سرور اوبونتو خود متصل شوید. برای بستن اتصال، می‌‌توانید از دکمه خروج (Exit) استفاده کنید.

پیکربندی چند کاربر یا نشست‌های هم‌زمان در xrdp

به‌صورت پیش‌فرض، xrdp از اتصال هم‌زمان چندکاربر به یک سرور لینوکسی پشتیبانی می‌کند، به شرطی که هر کاربر حساب و نشست (session) جداگانه‌ای داشته باشد. این ویژگی باعث می‌شود که xrdp برای محیط‌های اشتراکی یا تیم‌های توسعه بسیار مناسب باشد.

در ادامه مراحل راه‌اندازی چندکاربر با نشست‌های مستقل در یک سرور Ubuntu آورده شده است.

1. افزودن کاربران جدید

برای اینکه افزاد دیگر بتوانند از طریق RDP وارد شوند، باید یک حساب کاربری جدید در سیستم ایجاد کنید:

sudo adduser alice

پس از اجرای این دستور، از شما خواسته می‌شود برای کاربر یک رمز عبور و (در صورت تمایل) جزئیات اختیاری تعریف کنید.

این روند را برای هر کاربری که نیاز به دسترسی به RDP دارد تکرار کنید.

2. ایجاد پیکربندی نشست برای هر کاربر

هر کابر باید مشخص کند هنگام اتصال از طریق xrdp کدام محیط دسکتاپ اجرا شود. برای این کار به حساب کاربر سوئیچ کنید با با sudo یا فایل .xsession ایجاد کنید:

echo "xfce4-session" | sudo tee /home/alice/.xsession
sudo chown alice:alice /home/alice/.xsession
sudo chmod 644 /home/alice/.xsession

اطمینان حاصل کنید که پوشه home کاربر مجوزهای درستی داشته باشد:

sudo chmod 755 /home/alice

این کار باعث می‌شود که فرآیند xrdp-sesman بتواند فایل شروع نشست کاربر را بخواند.

3. بررسی محدودیت نشست‌های xrdp

به‌صورت پیش‌فرض، xrdp از چندین نشست هم‌زمان پشتیبانی می‌کند (معمولا تا 50 نشست). شما می‌توانید این مقدار را در فایل پیکربندی مدیریت نشست تغییر دهید:

sudo nano /etc/xrdp/sesman.ini

بخش زیر را پیدا کرده و در صورت نیاز تغییر دهید:

MaxSessions=20

سپس فایل را ذخیره کنید و سرویس را ری‌استارت کنید:

sudo systemctl restart xrdp

4. مانیتور کردن نشست‌ها

برای مشاهده نشست‌های فعال xrdp می‌توانید دستور زیر را اجرا کنید:

sudo loginctl list-sessions

همچنین می‌توانید لاگ‌های xrdp را در مسیرهای زیر بررسی کنید تا مشکلات ورود کاربران را برطرف کنید:

/var/log/xrdp-sesman.log
/var/log/xrdp.log

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

با سرویس آماده سرور لینوکس لیارا، پروژه‌هات رو روی بستر سریع، پایدار و امن اجرا کن.
✅ نصب فوری✅ منابع اختصاصی✅ دسترسی کامل SSH
خرید و راه‌اندازی سرور لینوکس

بهینه‌سازی عملکرد xrdp برای اتصال‌های کند یا با تاخیر بالا

اگر به سرور Ubuntu خود از طریق اینترنت کند یا شبکه‌ای با تاخیر بالا (مانند هاست اسپات موبایل، VPN یا ارتباطات بین قاره‌ای) متصل می‌شوید، تنظیمات پیش‌فرض xrdp ممکن است باعث عملکرد ضعیف، کندی یا قطع شدن نشست شود. بیایید روش‌های مختلفی را بررسی کنیم که می‌تواند برای بهینه‌سازی تجربه xrdp خود و بهبود سرعت و کاهش مصرف پهنای باند از آن‌ها استفاده کنید.

انتخاب محیط دسکتاپ سبک

انتخاب محیط دسکتاپ تاثیر ریادی بر سرعت نشست دارد. محیط‌های دسکتاپ سنگین مانند GNOME یا KDE Plasma منابع CPU و حتما بیشتری مصرف می‌کنند و در شرایط شبکه محدود باعث کندی می‌شوندو

همان‌طور که در این آموزش ذکر شد، استفاده از Xfce تعادلی بین مصرف منابع و کارایی ارائه می‌دهد. جایگزین‌هایی مانند LXDE یا MATE می‌توانند مصرف حافظه را بیشتر کاهش دهند و زمان بارگذاری را بهبود دهند:

sudo apt install lxde -y

پس از نصب، فایل .xsession را به‌روزرسانی کنید:

echo "startlxde" > ~/.xsession

غیرفعال کردن افکت‌های تصویری دسکتاپ

بیشتر محیط‌های دسکتاپ شامل افکت‌های بصری مانند ترکیب‌بندی (compositing)، سایه‌ها، انیمیشن پنجره‌ها و شفافیت هستند. این ویژگی‌ها برای دسترسی ریموت ضروری نیستند و پهنای باند بیشتری مصرف می‌کنند.

در Xfce می‌توانید این افکت‌ها را با رفتن به مسیر زیر غیرفعال کنید:

Applications Menu → Settings → Window Manager Tweaks → Compositor Tab → Uncheck “Enable display compositing”

کاهش رزولوشن و عمق رنگ

رزولوشن بالاتر و عمق رنگ 32 بیتی به پهنای باند بیشتری نیاز دارند. کاهش این تنظیمات در سمت کلاینت می‌تواند عملکرد ریموت را به شکل قابل توجهی بهبود دهد.

در Windows RDP Client:

  • پنجره Remote Desktop Connection را باز کنید.
  • به تب Display بروید.
  • رزولوشن صفحه را روی مقدار پایین‌تر (مثل 1024×768) تنظیم کنید.
  • گزینه Color را روی High Color (16-bit) قرار دهید.

در Remmina (Linux):

  • اتصال RDP ذخیره‌شده خود را ویرایش کنید.
  • به تب Display بروید.
  • گزینه Color Depth را روی 16-bit یا 24-bit قرار دهید.
اوبونتو Ubuntu چیست؟ (معرفی کامل کاربردها + ویژگی‌ها)
اوبونتو 

فعال کردن فشرده‌سازی و کش (Caching)

برخی از کلاینت‌های RDP قابلیت کش بیت‌مپ یا کاراکترها و همچنین ویژگی‌های فشرده‌سازی برای بهینه‌سازی انتقال داده را ارائه می‌دهند:

  • Windows RDP Client: در بخش Experience، سرعت اتصال پایین‌تر (مثل 56 Kbps) را انتخاب کنید تا فشرده‌سازی فعال شود و ویژگی‌های تصویری غیرضروری غیرفعال شوند.
  • Remmina: در تب Advanced، گزینه‌های فشرده‌سازی و کش را در صورت پشتیبانی فعال کنید.

این تنظیمات باعث کاهش انتقال داده‌های تکراری می‌شود، برای عناصر ثابت صفحه مانند منوها و پس‌زمینه‌ها.

غیرفعال کردن تصویر پس‌زمینه (Wallpaper)

تصاویر پس‌زمینه منابع زیادی مصرف می‌کنند و برای اکثر نشست‌های ریموت ضروری نیستند. در Xfce پس‌زمینه را غیرفعال کنید:

Settings → Desktop → Background Tab → Style: None

این کار پیچیدگی گرافیکی را کاهش می‌دهد و زمان بازنمایی صفحه را بهبود می‌بخشد.

درک سازگاری xrdp با Wayland و Xorg

Ubuntu و سایر توزیع‌های مدرن لینوکس به‌طور فزاینده‌ای Wayland را به‌عنوان پروتکل پیش‌فرض نمایش انتخاب کرده‌اند و جایگزین سیستم قدیمی‌تر Xorg کرده‌اند. با این حال، در زمان نگارش، Wayland به‌طور کامل با xrdp سازگار نیست. در ادامه تفاوت‌های این دو و نحوه پیکربندی برای بهترین نتیجه را بررسی می‌کنیم.

Xorg چیست؟

  • Xorg (X11) سرور نمایش سنتی لینوکس است.
  • بالغ، پایدار و با اکثر پروتکل‌های دسکتاپ ریموت (از جمله RDP) سازگار است.
  • xrdp با Xorg کار می‌کند تا جلسات دسکتاپ مجازی برای اتصال‌های RDP ایجاد کند و به همین دلیل پایدارترین گزینه برای دسترسی ریموت محسوب می‌شود.

Wayland چیست؟

  • Wayland جایگزین مدرن Xorg است که امنیت و کارایی بیشتری دارد.
  • در نسخه‌های اخیر Ubuntu با محیط دسکتاپ GNOME به‌طور پیش‌فرض فعال است.
  • اما Wayland دسترسی ریموت به سرور نمایش را محدود می‌کند و این موضوع باعث مشکلاتی برای xrdp (و برخی VNC سرورها) می‌شود.
نحوه راه‌اندازی اولیه سرور مجازی با اوبونتو Ubuntu
راه‌اندازی سرور مجازی با اوبونتو

علائم ناسازگاری Wayland

اگر Wayland فعال باشد، احتمالا با مشکلات زیر مواجه می‌شوید:

  • ظاهر شدن صفحه ورود اما عدم شروع جلسه.
  • صفحه سیاه یا خالی پس از احراز هویت RDP.
  • بسته شدن سریع جلسه بلافاصله پس از ورود.

غیرفعال کردن Wayland برای سازگاری با xrdp

برای اطمینان از سازگاری، می‌توانید Wayland را غیرفعال کنید و از Xorg استفاده کنید.

1. فایل تنظیمات GDM را باز کنید:

sudo nano /etc/gdm3/custom.conf

2. خط زیر را از حالت کامنت خارج کرده و مقدار آن را تنظیم کنید:

WaylandEnable=false

3. فایل را ذخیره کنید و خارج شوید.

4. سرویس نمایشگر را ری‌استارت کنید یا سیستم را ریبوت کنید:

sudo systemctl restart gdm3

همچنین می‌توانید از محیط‌های دسکتاپی مثل Xfce, MATE یا LXDE استفاده کنید که به‌طور پیش‌فرض با Xorg اجرا می‌شوند، مخصوصا در محیط‌های سروری یا headless.

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

چگونه یک پایگاه داده ریموت را برای بهینه‌سازی عملکرد سایت با MySQL روی سرور مجازی اوبونتو راه‌اندازی کنیم؟
 پایگاه داده ریموت

    مقایسه xrdp با گزینه‌های جایگزین: VNC, TeamViewer و NoMachine

    در حالی که xrdp راهی راحت برای دسترسی به یک نشست گرافیکی روی سرور لینوکسی از طریق پروتکل Remote Desktop Protocol (RDP) فراهم می‌کند، این تنها گزینه‌ی موجود برای دسترسی از راه دور به دسکتاپ نیست. بسته به نیاز شما، مانند عملکرد، سادگی در راه‌اندازی، سازگاری با پلتفرم‌ها یا امنیت، ابزارهای دیگر ممکن است مناسب‌تر باشند. جدول زیر نشان می‌دهد که xrdp چگونه با جایگزین‌هایی مانند VNC, TeamViewer و NoMachine مقایسه می‌شود:

    ویژگی / ابزارxrdpVNCTeamViewerNoMachine
    پروتکلRDP (پروتکل Remote Desktop مایکروسافت)RFB (پروتکل Remote Framebuffer)اختصاصیNX Protocol (اختصاصی NoMachine)
    متن‌باز بودنبلهبله (بسته به پیاده‌سازی)خیرتا حدی (رایگان برای استفاده شخصی)
    پشتیبانی پلتفرمسرور لینوکس؛ کلاینت‌های RDP روی Windows, macOS، Linuxکراس‌پلتفرم (سرور و کلاینت روی تمام سیستم‌عامل‌ها)Windows, macOS, Linux, Android, iOSWindows, macOS, Linux, Android, iOS
    پیچیدگی راه‌اندازیمتوسط (نیازمند محیط دسکتاپ و پیکربندی)متوسط تا بالا (راه‌اندازی دستی بسته به پیاده‌سازی)خیلی پایین (راه‌اندازی خودکار با رابط گرافیکی)متوسط
    عملکرد روی LANخوب با محیط‌های دسکتاپ سبک مثل Xfce، LXDEمعمولی؛ ممکن است در رزولوشن بالا کند باشدعالیعالی
    عملکرد روی WANقابل قبول با بهینه‌سازیضعیف تا معمولیعالی (NAT traversal, فشرده‌سازی)عالی (فشرده‌سازی تطبیقی)
    انتقال فایلخیر (مگر با پیکربندی جداگانه)بسته به پیاده‌سازیبله (داخلی)بله (داخلی)
    پشتیبانی چندکاربرهبله (نشست‌های جداگانه برای هر کاربر)معمولا نشست مشترک (بسته به پیاده‌سازی)یک نشست در هر اتصالبله (نشست‌های تکی یا چندگانه)
    امنیتوابسته به قوانین SSH/UFWنیازمند تونل SSH برای استفاده امناتصال رمزگذاری‌شده، 2FA، دسترسی مبتنی بر حساببه‌صورت پیش‌فرض رمزگذاری‌شده
    بهترین کاربرددسترسی بومی RDP به لینوکس از Windows یا macOSمشاهده‌ی یک نشست دسکتاپ موجودپشتیبانی از راه دور، دسترسی بدون حضوردسترسی به دسکتاپ و چندرسانه‌ای با کارایی بالا

    جمع بندی

    راه‌اندازی و پیکربندی xrdp روی Ubuntu این امکان را می‌دهد که بدون نیاز به حضور فیزیکی، از راه دور به سرور خود دسترسی گرافیکی داشته باشید. در این آموزش یاد گرفتید که چگونه محیط دسکتاپ نصب کنید، قوانین فایروال را برای دسترسی ایمن تنظیم کنید و از سیستم‌عامل‌های مختلف مثل Windows, macOS و Linux به سرور متصل شوید.

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