نرم افزار XRDP یک ابزار اوپن سورس در لینوکس که شبیه به ریموت دسکتاپ مایکروسافت (Remote Desktop Protocol) میباشد. زمانیکه XRDP روی یک ماشین لینوکس (Debian/Ubuntu/Mint/Kali) نصب باشد کاربران میتوانند به صورت ریموت به دسکتاپ لینوکسی با استفاده از یک کلاینت RDP که در ادامه این مقاله به آن میپردازیم میتوانند وصل شوند. این نرم افزار کاملا رایگان میباشد و شما میتوانید همانند این مقاله Xrdp را روی سرورهای دبیان - اوبونتو - مینت و کالی لینوکس نصب و راه اندازی کنید. خب بریم نرم افزار XRDP را روی Ubuntu 20.04 و 18.04 نصب کنیم.
پیشنیازها :
در این پست ما فرض میکنیم که شما از قبل یک نسخه از Ubuntu 20.04 یا Ubuntu 18.04 دسکتاپ را روی سیستم تان نصب دارید اگر شما یک نصب مینیمال و بدون دسکتاپ انجام داده اید در نتیجه باید محیط دسکتاپ مثل GNOME را به عنوان پیشنهاد نصب کنید. برای نصب محیط دسکتاپ اوبونتو دستور زیر را اجرا کنید.
مرحله 1 : نصب XRDP روی اوبونتو 20.04
برای شروع کردن کافیست ترمینال تان را درون سیستم/سرور ریموت باز کنید و دستور زیر را برای نصب XRDP روی سیستم تان استفاده کنید.
زمانیکه در هنگام نصب دستور به شما پیام Do you want to continue را داد کلید Y را وارد کنید و برای ادامه نصب Enter را فشار دهید.
سرویس Xrdp به صورت اتوماتیک در هنگام نصب خودش استارت میشه شما میتوانید وضعیت سرویس را با استفاده از دستور زیر بررسی کنید.
خروجی دستور بالا به شما تایید میدهد بی شک سرویس XRDP در حال حاضر فعال است.
مرحله 2 : تنظیمات XRDP روی اوبونتو 20.04
زمانیکه Xrdp نصب شد یک کلید گواهینامه SSL که SSLssl-cert-snakeoil.key هست در پوشه /etc/ssl/private/ قرار میگیرد. ما نیاز داریم که یوزر xrdp را به گروه SSL-Cert اضافه کنیم تا بتوانیم این فایل را برای این یوزر با استفاده از دستور زیر قابل خواندن کنیم.
Xrdp روی پورت 3389 لیسن میکند و اگر شما پشت یک فایروال UFW هستید شما نیاز دارید که پورت را برای ترافیک ورودی از سمت کلاینت RDP باز کنید. در مثال زیر من با دستور اول امکان دسترسی از کل سابنت نتورک خودم را به سمت سیستم اوبونتو باز خواهم کرد. همچنین اگر ip خاصی مد نظر دارید که بخواهید فقط دسترسی را از آن آدرس ip به سمت سیستم اوبونتو خود باز کنید میتوانید از دستور دوم استفاده کنید.
سپس فایروال را ریلود کرده و مطمئن شوید که پورت مورد نظر به درستی باز شده.
مرحله 3 : دسترسی ریموت به اوبونتو دسکتاپ با استفاده از کلاینت RTP
در این مرحله ما قصد داریم به سیستم اوبونتو دسکتاپ مان از طریق ویندوز 10 و با استفاده از کلاینت ریموت دسکتاپ دسترسی پیدا کنیم. اما قبل از اینکه این کار را انجام دهیم باید مطمئن شویم که ابتدا از اوبونتو 20.04 مان لاگ اوت کنیم و این به این خاطر هست که XRDP تنها یک session را پشتیبانی میکند. سپس نرم افزار کلاینت خودتان را باز کنید و ip سیستم ریموت اوبونتو خود را وارد کنید و روی دکمه Connect کلیک کنید.
در این پنجره ابتدا نیاز هست که شمار روی سیستم ریموت احراز هویت شوید و پیام زیر را نادیده بگیرید و روی کلید Yes کلیک کنید تا بتوانید ادامه برقراری ارتباط را انجام دهید.
روی صفحه لاگین Xrdp اطلاعات احراز هویتی خودتان را که شامل یوزر و پسورد هست وارد کنید و روی Ok کلیک کنید.
نکته : در اینجا شما ممکن است به جای اینکه محیط دسکتاپ سرور اوبونتو خود را مشاهده کنید با یک صفحه سیاه خالی مواجه شوید. من چندین بار با این مشکل مواجه شدم مخصوصا زمانیکه قصد داشتم از طریق کلاینت ریموت دسکتاپ سیستم Debian خود (مانند نرم افزارهای Remmina و KRDC) به سیستم اوبونتو خود ریموت بزنم که بعد از یکسری بررسی ها متوجه شدم که مشکل از کجا هست.
رفع مشکل صفحه سیاه اوبونتو
راه حل کاملا ساده هست. وارد سیستم ریموت شوید و اسکریپت /etc/xrdp/startwm.sh را با استفاده از یک ویرایشگر متن لینوکس باز کنید.
خط های زیر را قبل از خط هایی که مربوط به تست و اجرای xsession همانند تصویر زیر است اضافه کنید. یعنی این خط های زیر را به فایل اضافه میکنید و مکانش هم باید دقیقا قبل از جایی باشه که در مورد تست و اجرای xsession صحبت شده است.
فایل را ذخیره کنید و از آن خارج شوید سپس سرویس Xrdp را ریستارت کنید.
سپس مجددا ارتباط را برقرار میکنیم. بعد از احراز هویت اولیه شما نیاز هست که مجدد همانند چیزی که در تصویر زیر نمایش داده میشه احراز هویت شوید.
اطلاعات یوزر و پسورد خودتان را وارد کنید و سپس روی Authenticate کلیک کنید و در نهایت شما را به صفحه دسکتاپ ماشین اوبونتو ریموت همانند زیر هدایت میکند.
ما دوست داریم نظرات و کامنت های شما را ببینیم و ما را به چالش بکشید. امیدوارم این مقاله برای شما مفید واقع شده باشد.
پیشنیازها :
در این پست ما فرض میکنیم که شما از قبل یک نسخه از Ubuntu 20.04 یا Ubuntu 18.04 دسکتاپ را روی سیستم تان نصب دارید اگر شما یک نصب مینیمال و بدون دسکتاپ انجام داده اید در نتیجه باید محیط دسکتاپ مثل GNOME را به عنوان پیشنهاد نصب کنید. برای نصب محیط دسکتاپ اوبونتو دستور زیر را اجرا کنید.
کد PHP:
$ sudo apt install ubuntu-desktop
مرحله 1 : نصب XRDP روی اوبونتو 20.04
برای شروع کردن کافیست ترمینال تان را درون سیستم/سرور ریموت باز کنید و دستور زیر را برای نصب XRDP روی سیستم تان استفاده کنید.
کد PHP:
$ sudo apt install xrdp
زمانیکه در هنگام نصب دستور به شما پیام Do you want to continue را داد کلید Y را وارد کنید و برای ادامه نصب Enter را فشار دهید.
سرویس Xrdp به صورت اتوماتیک در هنگام نصب خودش استارت میشه شما میتوانید وضعیت سرویس را با استفاده از دستور زیر بررسی کنید.
کد PHP:
$ sudo systemctl status xrdp
خروجی دستور بالا به شما تایید میدهد بی شک سرویس XRDP در حال حاضر فعال است.
مرحله 2 : تنظیمات XRDP روی اوبونتو 20.04
زمانیکه Xrdp نصب شد یک کلید گواهینامه SSL که SSLssl-cert-snakeoil.key هست در پوشه /etc/ssl/private/ قرار میگیرد. ما نیاز داریم که یوزر xrdp را به گروه SSL-Cert اضافه کنیم تا بتوانیم این فایل را برای این یوزر با استفاده از دستور زیر قابل خواندن کنیم.
کد PHP:
$ sudo adduser xrdp ssl-cert
Xrdp روی پورت 3389 لیسن میکند و اگر شما پشت یک فایروال UFW هستید شما نیاز دارید که پورت را برای ترافیک ورودی از سمت کلاینت RDP باز کنید. در مثال زیر من با دستور اول امکان دسترسی از کل سابنت نتورک خودم را به سمت سیستم اوبونتو باز خواهم کرد. همچنین اگر ip خاصی مد نظر دارید که بخواهید فقط دسترسی را از آن آدرس ip به سمت سیستم اوبونتو خود باز کنید میتوانید از دستور دوم استفاده کنید.
کد PHP:
$ sudo ufw allow from 192.168.2.0/24 to any port 3389
OR
$ sudo ufw allow from 151.243.15.4 to any port 3389
کد PHP:
$ sudo ufw reload
$ sudo ufw status
مرحله 3 : دسترسی ریموت به اوبونتو دسکتاپ با استفاده از کلاینت RTP
در این مرحله ما قصد داریم به سیستم اوبونتو دسکتاپ مان از طریق ویندوز 10 و با استفاده از کلاینت ریموت دسکتاپ دسترسی پیدا کنیم. اما قبل از اینکه این کار را انجام دهیم باید مطمئن شویم که ابتدا از اوبونتو 20.04 مان لاگ اوت کنیم و این به این خاطر هست که XRDP تنها یک session را پشتیبانی میکند. سپس نرم افزار کلاینت خودتان را باز کنید و ip سیستم ریموت اوبونتو خود را وارد کنید و روی دکمه Connect کلیک کنید.
در این پنجره ابتدا نیاز هست که شمار روی سیستم ریموت احراز هویت شوید و پیام زیر را نادیده بگیرید و روی کلید Yes کلیک کنید تا بتوانید ادامه برقراری ارتباط را انجام دهید.
روی صفحه لاگین Xrdp اطلاعات احراز هویتی خودتان را که شامل یوزر و پسورد هست وارد کنید و روی Ok کلیک کنید.
نکته : در اینجا شما ممکن است به جای اینکه محیط دسکتاپ سرور اوبونتو خود را مشاهده کنید با یک صفحه سیاه خالی مواجه شوید. من چندین بار با این مشکل مواجه شدم مخصوصا زمانیکه قصد داشتم از طریق کلاینت ریموت دسکتاپ سیستم Debian خود (مانند نرم افزارهای Remmina و KRDC) به سیستم اوبونتو خود ریموت بزنم که بعد از یکسری بررسی ها متوجه شدم که مشکل از کجا هست.
رفع مشکل صفحه سیاه اوبونتو
راه حل کاملا ساده هست. وارد سیستم ریموت شوید و اسکریپت /etc/xrdp/startwm.sh را با استفاده از یک ویرایشگر متن لینوکس باز کنید.
کد PHP:
$ sudo vim /etc/xrdp/startwm.sh
کد PHP:
unset DBUS_SESSION_BUS_ADDRESS
unset XDG_RUNTIME_DIR
فایل را ذخیره کنید و از آن خارج شوید سپس سرویس Xrdp را ریستارت کنید.
کد PHP:
$ sudo systemctl restart xrdp
اطلاعات یوزر و پسورد خودتان را وارد کنید و سپس روی Authenticate کلیک کنید و در نهایت شما را به صفحه دسکتاپ ماشین اوبونتو ریموت همانند زیر هدایت میکند.
ما دوست داریم نظرات و کامنت های شما را ببینیم و ما را به چالش بکشید. امیدوارم این مقاله برای شما مفید واقع شده باشد.
کامنت