Dariush Tasdighi - داریوش تصدیقی
Dariush Tasdighi - داریوش تصدیقی
خواندن ۳ دقیقه·۳ سال پیش

راه‌اندازی Desktop بر روی Linux Ubuntu Server و اتصال به آن از طریق Remote Desktop

توجه: این مقاله به مرور زمان، ویرایش و یا تکمیل می‌شود!
تقاضا: در صورتی که با مشکل تایپی، دستوری و یا مفهومی در این مقاله برخورد کردید، از شما دوست عزیز و گرامی، صمیمانه تقاضا می‌کنم که اینجانب را مطلع کرده، تا نسبت به تصحیح و یا تکمیل آن، در اسرع وقت، اقدام نمایم.
با کمال تشکر
داریوش تصدیقی
کلیه اطلاع تماس: https://DTAT.ir
نسخه مقاله: ۱.۰ - تاریخ بروزرسانی: ۱۴۰۱/۰۱/۲۱

برای این منظور، به ترتیب مراحل ذیل را در Terminal انجام می‌دهیم:

sudo -i apt update -y apt upgrade -y apt install nano -y apt install xrdp -y

ما Desktop های متنوعی می‌توانیم نصب کنیم. ولی یکی از سبک‌ترین آن‌ها xfce4 می‌باشد. لذا با استفاده از دستور ذیل اقدام به نصب آن می‌کنیم:

https://www.xfce.org/

apt install xfce4 -y

نصب بسته ذیل، الزامی نمی‌باشد و صرفا ابزارهای اضافه‌ای در محیط Desktop فوق ایجاد می‌کند. لذا در صورت تمایل می‌توانیم بسته ذیل را نیز نصب نماییم:

apt install xfce4-goodies -y

می‌توانیم برای مشاهده اجزای بسته xfce4-goodies، به نشانی ذیل مراجعه نماییم:

https://packages.debian.org/stretch/xfce/xfce4-goodies

در هنگام نصب، از ما سوال می‌کند که از چه Display Manager ای می‌خواهیم استفاده کنیم، که ما همان گزینه پیش‌فرض gdm3 را انتخاب می‌کنیم.

نکته: gdm3 نسبت به ligthdm سبک‌تر می‌باشد.

نکته مهم: اصولا راه‌اندازی سرویس RDP‌ برای روی Server، چندان کار هوشمندانه‌ای نمی‌باشد و امنیت Server را تا حد زیادی پایین آورده و آن‌را به خطر می‌اندازد، ولی برای این‌که کمی ریسک راه‌اندازی این سرویس را کم نماییم، می‌توانیم Port پیش‌فرض این پروتکل را تغییر دهیم. ضمنا باید توجه داشته باشیم که اگر Server‌ ما به صورت WSL 1‌ یا WSL 2 در سیستم Windows ما راه‌اندازی شده باشد، مجبوریم که این Port را تغییر دهیم، در غیر این صورت، سرویس پیش‌فرض Remote Desktop ویندوز ما به مشکل خواهد خورد!

برای این منظور، باید فایل xrdp.ini را تغییر دهیم.

همیشه توصیه می‌شود که قبل از تغییر فایل‌های تنظیمات، از آن‌ها یک Backup بگیریم. برای این منظور از دستور ذیل استفاده می‌کنیم:

cp /etc/xrdp/xrdp.ini /etc/xrdp/xrdp.ini.bak

حال با استفاده از دستور nano، فایل مذکور را باز کرده و تغییرات ذیل را اعمال می‌کنیم:

Nano /etc/xrdp/xrdp.ini
port=3389 (TO) port=3390

سرویس xrdp، برای اجرای X Session، از فایل startwm.sh استفاده می‌کند. در صورتی که بخواهیم از یک X Window Desktop دیگری استفاده نماییم، می‌توانیم محتوای این فایل را نیز تغییر دهیم.

قبل از تغییر این فایل نیز مجددا یک Backup فایل می‌گیریم:

cp /etc/xrdp/startwm.sh /etc/xrdp/startwm.sh.bak

حال با استفاده از دستور nano، وارد فایل startwm.sh شده:

nano /etc/xrdp/startwm.sh

و سپس دو خط انتهایی را Comment می‌کنیم:

#test -x /etc/X11/Xsession && exec /etc/X11/Xsession
#exec /bin/sh /etc/X22/Xsession

و خط ذیل را به انتهای فایل اضافه می‌کنیم:

startxfce4

فایل را با استفاده از دکمه‌های ترکیبی CTRL+X ذخیره کرده و از محیط nano، خارج می‌شویم.

برای راه‌اندازی سرویس xrdp‌، می‌توانیم یکی از دو دستور ذیل را استفاده نماییم:

/etc/init.d/xrdp start

OR

service xrdp start
* Starting Remote Desktop Protocol server

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

/etc/init.d/xrdp status

OR

service xrdp status

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

نکته: هرگاه هر فایلی که مربوط به تنظیمات یک سرویس می‌باشد را تغییر می‌دهیم، برای این‌که این تغییرات اعمال شود، باید سرویس را یک‌بار Stop/Start و یا Restart نماییم.

/etc/init.d/xrdp restart

OR

service xrdp restart

برای متوقف کردن سرویس xrdp، می‌توانیم یکی از دو دستور ذیل را استفاده نماییم:

/etc/init.d/xrdp stop

OR

service xrdp stop

برای این‌که هرگاه Server‌ را مجددا راه‌اندازی (Reboot) کردیم، سرویس xrdp، به طور خودکار راه‌اندازی شود،‌ می‌توانیم از دستور ذیل استفاده نماییم:

نکته: در صورتی که لینوکس با فناوری WSL2 راه‌اندازی شده باشد، دستور ذیل کار نمی‌کند!

systemctl enable xrdp

اساسا توصیه نمی‌گردد که با کاربر root و از طریق Remote Desktop وارد Server شویم. لذا ابتدا یک کاربر، مثلا به نام rdpuser ایجاد کرده:

adduser rdpuser

و سپس این کاربر را عضو گروه sudo می‌کنیم:

usermod -aG sudo rdpuser

در صورتی که بر روی Server، Firewall نصب شده باشد (که البته قطعا باید نصب و راه‌اندازی شده باشد)، با استفاده از یکی از دو دستور ذیل Port مذکور را آزاد می‌کنیم:

ufw allow 3390

OR

ufw allow from any to any port 3390 proto tcp

حال از طریق برنامه Remote Desktop Windows آدرس Server را با Port جدیدی که اعلام کرده‌ایم وارد کرده و وارد Server می‌شویم:

[SERVER_IP]:3390

OR

localhost:3390

زمانی که وارد Server می‌شویم و بر روی مرورگر (Browser) کلیک می‌کنیم، به ما خطا می‌دهد که هیچ مرورگری در حال حاضر وجود ندارد. برای حل این مشکل، در داخل Server، وارد Terminal شده و دستور ذیل را برای نصب فایرفاکس اجرا می‌کنیم:

apt install firefox -y

پایان

xfcexrdpRemote Desktoplinux ubuntu servergui
محقق، معمار، مشاور، مدرس و برنامه‌نویس حوزه فن‌آوری اطلاعات - تحلیل‌گر و فعال بازار بورس و سرمایه
شاید از این پست‌ها خوشتان بیاید