جدول محتوایی
پروتکل دسکتاپ از راه دور (RDP) یک پروتکل شبکه ای است که توسط مایکروسافت توسعه یافته است که به کاربران اجازه می دهد از راه دور به رابط گرافیکی کاربر یک سرور ویندوز از راه دور دسترسی داشته باشند و با آن تعامل داشته باشند. RDP روی مدل کلاینت-سرور کار می کند، جایی که یک کلاینت RDP روی یک سیستم محلی نصب می شود و یک سرور RDP روی سرور راه دور (vps) نصب می شود. RDP به طور گسترده برای اتصالات راه دور ویندوز استفاده می شود، اما شما همچنین می توانید با استفاده از ابزاری مانند xrdp، یک پیاده سازی منبع باز سرور RDP، به رابط کاربری گرافیکی یک سرور لینوکس راه دور دسترسی داشته باشید و با آن تعامل داشته باشید.
در این آموزش، یک سرور RDP را با استفاده از xrdp روی سرور اوبونتو 22.04 نصب و پیکربندی میکنیم و با استفاده از یک سرویس گیرنده RDP از دستگاه محلی خود به آن دسترسی خواهید داشت. نحوه دسترسی به سرور لینوکس راه دور را با پیکربندی و استفاده از یک اتصال RDP خواهید فهمید.
پیش نیاز ها
- یک سرور اوبونتو 22.04 با امتیازات sudo، فایروال و حداقل 1 گیگابایت رم. می توانید برای خرید سرور مجازی ایران با سخت افزار دلخواه روی بنر زیر کلیک کنید.
- یک سیستم محلی که روی آن یک سرویس گیرنده RDP نصب شده است. لیستی از کلاینت های RDP موجود برای سیستم عامل های مختلف در زیر ارائه شده است:
در ویندوز، میتوانید از برنامه پیشفرض Remote Desktop Connection استفاده کنید.
در macOS، می توانید از برنامه Microsoft Remote Desktop استفاده کنید.
در لینوکس، می توانید از FreeRDP یا Remmina استفاده کنید.
مرحله 1 – نصب یک محیط دسکتاپ در اوبونتو
در این مرحله یک محیط دسکتاپ را روی سرور اوبونتو خود باید نصب و پیکربندی کنید. به طور پیش فرض، سرور اوبونتو فقط با یک محیط ترمینال ارائه می شود. برای دسترسی به رابط کاربری باید یک محیط دسکتاپ نصب شود.
از میان گزینه های موجود برای اوبونتو، محیط دسکتاپ Xfce را میتوانید نصب کنید. Xfce یک محیط دسکتاپ کم حجم و کاربر پسند برای سیستم های مبتنی بر لینوکس ارائه می دهد.
برای شروع، با استفاده از SSH به سرور خود متصل شوید و لیست پکیج های موجود را با استفاده از دستور زیر به روز کنید: (آموزش اتصال به سرور با SSH)
sudo apt update
سپس پکیج های xfce و xfce-goodies را روی سرور خود نصب کنید:
sudo apt install xfce4 xfce4-goodies -y
از شما خواسته می شود یک مدیر نمایش را انتخاب کنید، که برنامه ای است که مکانیسم های ورود گرافیکی و جلسات کاربر را مدیریت می کند. شما می توانید هر گزینه ای را از لیست مدیران نمایش موجود انتخاب کنید. در این آموزش از gdm3 استفاده می کنیم.
پس از نصب محیط دسکتاپ، اکنون xrdp را بر روی سرور خود نصب خواهید کرد.
مرحله 2 – نصب xrdp در اوبونتو
xrdp یک پیاده سازی منبع باز از سرور RDP است که امکان اتصال RDP را برای سرورهای مبتنی بر لینوکس فراهم می کند. در این مرحله xrdp را بر روی سرور اوبونتو خود نصب خواهید کرد.
برای نصب xrdp دستور زیر را در ترمینال اجرا کنید:
sudo apt install xrdp -y
پس از نصب xrdp، وضعیت xrdp را با استفاده از systemctl بررسی کنید:
sudo systemctl status xrdp
این دستور وضعیت را فعال (در حال اجرا) نشان می دهد:
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 اجرا نمی شود، ممکن است مجبور شوید سرویس را به صورت دستی با این دستور راه اندازی کنید:
sudo systemctl start xrdp
پس از اجرای دستور بالا، دوباره وضعیت را بررسی کنید تا مطمئن شوید xrdp در حالت در حال اجرا است.
اکنون 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] تعریف می شود. هیچ عنوان [نوع جلسات] در فایل وجود ندارد. در عوض، به عنوان یک کامنت نوشته شده است.
در فایل پیکربندی، به بخش 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]
...
...
به طور پیشفرض، پارامترهای نام کاربری و رمز عبور به صورت درخواستی تنظیم شدهاند، به این معنی که از کاربر خواسته میشود نام کاربری و رمز عبور خود را برای اتصال از طریق RDP وارد کند. پارامترهایی مانند نام، نام کاربری و رمز عبور را می توان در صورت لزوم تغییر داد. برای اتصال RDP اولیه به سرور، پیکربندی پیش فرض کافی است.
پس از اتمام فایل را ذخیره کرده و ببندید.
اکنون اگر قبلاً آنجا نیستید، به فهرست اصلی کاربر خود بروید:
cd ~
در مرحله بعد، یک فایل 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 خدمت می کند. برای دسترسی به سرور راه دور از طریق RDP، باید پورت 3389 را در فایروال خود مجاز کنید.
ابتدا IP عمومی دستگاه محلی خود را پیدا کنید:
curl ifconfig.me
در ویندوز، از Command Prompt ویندوز برای اجرای این دستور استفاده کنید.
curl درخواستی را در ifconfig.me ارسال می کند که IP عمومی شما را به عنوان خروجی برمی گرداند:
Output ... your_local_ip
سپس، اجازه دسترسی به پورت RDP 3389 را در سرور راه دور خود بدهید و خروجی آخرین دستور را جایگزین your_local_ip کنید:
sudo ufw allow from your_local_ip/32 to any port 3389
وضعیت فایروال UFW خود را بررسی کنید:
sudo ufw status
خروجی باید به شکل زیر باشد:
Status: Active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
3389 ALLOW your_local_ip
OpenSSH (v6) ALLOW Anywhere (v6)
اکنون پورت 3389 را برای پذیرش اتصالات از IP عمومی خود فعال کرده اید. در مرحله بعد، اتصال RDP دستگاه محلی خود را به سرور راه دور خود آزمایش خواهید کرد.
مرحله 4 – تست اتصال RDP
در این مرحله اتصال RDP را از دستگاه محلی خود تست خواهید کرد. بخش زیر شامل اقداماتی برای آزمایش اتصال در دستگاههای ویندوزی است.
تست اتصال RDP در ویندوز
برای آزمایش اتصال با استفاده از کلاینت Remote Desktop Connection در ویندوز، ابتدا برنامه Remote Desktop Connection را اجرا کنید.
IP عمومی و نام کاربری سرور راه دور خود را در کادرهای متنی قابل پر کردن برای رایانه و نام کاربری وارد کنید.
دکمه Connect را فشار دهید. اگر هشداری دریافت کردید که Remote Desktop نمی تواند به رایانه راه دور متصل شود، بررسی کنید که گزینه Remote Desktop را در تنظیمات سیستم خود روشن کرده باشید.
اگر پنجره تأیید هویت را دریافت کردید، Yes را انتخاب کنید:
سپس، نام کاربری سرور راه دور خود (sammy) و رمز عبوری که برای کاربر sammy ایجاد کردهاید را در هنگام راهاندازی اولیه سرور وارد کنید. دکمه OK را فشار دهید.
پس از ورود به سیستم، باید بتوانید به محیط دسکتاپ Ubuntu خود دسترسی پیدا کنید:
با استفاده از RDP، با موفقیت از دستگاه محلی خود به سرور اوبونتو راه دور خود متصل شدید. هنگامی که استفاده از دسکتاپ گرافیکی خود را به پایان رساندید، می توانید آن را با دکمه خروج ببندید.
در این مقاله، xrdp را برای اتصال به یک دسکتاپ گرافیکی برای سرور اوبونتو راه دور خود از طریق اتصال RDP از یک ماشین محلی پیکربندی کردید.