اختار الكاتب صندوق الإغاثة لمكافحة فيروس كورونا (COVID-19) لتلقي تبرع كجزء من برنامج اكتب للتبرع.
المقدمة
بروتوكول سطح المكتب عن بُعد (RDP) هو بروتوكول شبكي تطوير شركة مايكروسوفت يسمح للمستخدمين بالوصول والتفاعل عن بعد مع واجهة المستخدم الرسومية لخادم Windows عن بُعد. يعمل RDP على نموذج العميل والخادم، حيث يتم تثبيت عميل RDP على الجهاز المحلي، ويتم تثبيت خادم RDP على الخادم البعيد.
يُستخدم RDP على نطاق واسع لاتصالات Windows عن بُعد، ولكن يمكنك أيضًا الوصول والتفاعل مع واجهة المستخدم الرسومية لخادم Linux عن بُعد باستخدام أداة مثل xrdp، وهو تنفيذ مفتوح المصدر لخادم RDP.
في هذا البرنامج التعليمي، ستقوم بتثبيت وتكوين خادم RDP باستخدام xrdp على خادم Ubuntu 22.04 والوصول إليه باستخدام عميل RDP من جهازك المحلي. ستفهم كيفية إنشاء وصول إلى خادم Linux عن بُعد عن طريق تكوين واستخدام اتصال RDP.
قم بنشر تطبيقات الواجهة الأمامية الخاصة بك من GitHub باستخدام منصة DigitalOcean App. دع DigitalOcean تركز على توسيع تطبيقك.
المتطلبات الأساسية
لإكمال هذا البرنامج التعليمي، ستحتاج إلى:
-
خادم Ubuntu 22.04 واحد مع مستخدم غير جذري يمتلك امتيازات
sudo
وجدار ناري وذاكرة عشوائية بحجم 1 غيغابايت على الأقل، يمكنك إعداده عن طريق اتباع دليل إعداد الخادم الأولي لـ Ubuntu 22.04. -
جهاز كمبيوتر محلي مع تثبيت عميل RDP. يتم توفير قائمة بعملاء RDP المتاحة لأنظمة التشغيل المختلفة أدناه:
- على نظام التشغيل Windows، يمكنك استخدام تطبيق الاتصال البعيد الافتراضي الخاص به.
- على macOS، يمكنك استخدام تطبيق Microsoft Remote Desktop.
- على Linux، يمكنك استخدام FreeRDP، أو Remmina.
الخطوة 1 — تثبيت بيئة سطح مكتب على أوبونتو
في هذه الخطوة، ستقوم بتثبيت وتكوين بيئة سطح مكتب على خادم أوبونتو الخاص بك. بشكل افتراضي، يأتي خادم أوبونتو مع بيئة الطرفية فقط. سيتعين تثبيت بيئة سطح المكتب للوصول إلى واجهة مستخدم.
من الخيارات المتاحة لأوبونتو، ستقوم بتثبيت بيئة سطح المكتب Xfce. Xfce يقدم بيئة سطح مكتب خفيفة الوزن وسهلة الاستخدام لأنظمة Linux.
للبدء، قم بالاتصال بخادمك باستخدام SSH وتحديث قائمة الحزم المتاحة باستخدام الأمر التالي:
- sudo apt update
بعد ذلك، قم بتثبيت الحزم xfce
و xfce-goodies
على خادمك:
- sudo apt install xfce4 xfce4-goodies -y
سيُطلب منك اختيار مدير العرض، وهو برنامج يدير آليات تسجيل الدخول الرسومية وجلسات المستخدم. يمكنك اختيار أي خيار من قائمة مديري العرض المتاحة، ولكن هذا البرنامج التعليمي سيركز على استخدام gdm3
.
بعد تثبيت بيئة سطح المكتب، ستقوم الآن بتثبيت xrdp على الخادم الخاص بك.
الخطوة ٢ — تثبيت xrdp على أوبونتو
xrdp هو تنفيذ مفتوح المصدر لخادم RDP الذي يسمح باتصالات RDP لخوادم تعتمد على نظام Linux. في هذه الخطوة، ستقوم بتثبيت xrdp على خادم أوبونتو الخاص بك.
لتثبيت xrdp، قم بتشغيل الأمر التالي في الطرفية:
- sudo apt install xrdp -y
بعد تثبيت xrdp، قم بالتحقق من حالة 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 لقبول الاتصالات من العملاء عن بُعد.
الخطوة ٣ — تكوين xrdp وتحديث جدار الحماية الخاص بك
في هذه الخطوة، ستقوم بمراجعة تكوين الافتراضي لـ xrdp، الذي يتم تخزينه تحت /etc/xrdp/xrdp.ini
، وسوف تقوم بإضافة تكوين لاتصال RDP. ستقوم أيضًا بتحديث إعدادات جدار الحماية.
xrdp.ini
هو ملف التكوين الافتراضي لإعدادات اتصال RDP إلى خادم xrdp. يمكن تعديل وتخصيص ملف التكوين لتلبية متطلبات اتصال RDP.
افتح الملف باستخدام محرر النص nano
أو أي محرر تفضله:
- sudo nano /etc/xrdp/xrdp.ini
يحتوي الملف التكوين على أقسام مختلفة:
- Globals يعرف بعض إعدادات التكوين العامة لـ xrdp.
- Logging يعرف معلمات نظام تسجيل السجلات للسجلات.
- Channels يعرف معلمات القناة المتعددة التي يدعمها RDP.
- أنواع الجلسات تعرف أنواع الجلسات المدعومة بواسطة xrdp. يتم تعريف تكوين كل نوع جلسة كقسم منفصل تحت اسم نوع الجلسة الخاص به محاط بأقواس مربعة، مثل
[Xorg]
و[XVnc]
. لا توجد عنوان[Sessions types]
في الملف؛ بدلاً من ذلك، يتم كتابته كتعليق.
في ملف التكوين، انتقل إلى قسم أنواع الجلسات
. ستجد العديد من أنواع الجلسات المدعومة وقائمة معلماتها:
Output...
;
; 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 الأولي بالخادم ، ستكون التكوين الافتراضي كافيًا.
احفظ وأغلق الملف عند الانتهاء.
الآن انتقل إلى دليل المستخدم الخاص بك إذا لم تكن هناك بالفعل:
- 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 على المنفذ 3389
TCP/IP. للوصول إلى الخادم عن بعد عبر RDP ، يجب عليك السماح بالمنفذ 3389
في جدار الحماية الخاص بك.
أولاً ، ابحث عن عنوان IP العام لجهاز الكمبيوتر المحلي الخاص بك:
- curl ifconfig.me
على نظام التشغيل Windows، استخدم سطر أوامر Windows لتشغيل هذا الأمر.
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
يجب أن يبدو الناتج على النحو التالي:
OutputStatus: Active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
3389 ALLOW your_local_ip
OpenSSH (v6) ALLOW Anywhere (v6)
...
لقد قمت الآن بتمكين المنفذ 3389
لقبول الاتصالات من عنوان IP العام الخاص بك. فيما يلي، ستقوم باختبار اتصال RDP من جهازك المحلي بخادمك عن بعد.
الخطوة 4 — اختبار اتصال RDP
في هذه الخطوة، ستقوم باختبار اتصال RDP من جهازك المحلي. تتضمن الأقسام أدناه إجراءات اختبار الاتصال على أجهزة الكمبيوتر بنظامي Windows و macOS و Linux.
اختبار اتصال RDP على نظام Windows
لاختبار الاتصال باستخدام تطبيق Remote Desktop Connection على نظام Windows، قم أولاً بتشغيل تطبيق Remote Desktop Connection.
أدخل عنوان IP العام للخادم البعيد واسم المستخدم في الحقول القابلة للتعبئة لـ الكمبيوتر و اسم المستخدم. قد تحتاج إلى الضغط على السهم الأسفل لـ عرض الخيارات لإدخال اسم المستخدم:
اضغط على زر الاتصال. إذا تلقيت تنبيهًا بأن سطح المكتب عن بُعد لا يمكن الاتصال بالكمبيوتر البعيد
، تحقق من أنك قمت بتفعيل خيار سطح المكتب عن بُعد في إعدادات النظام الخاصة بك.
اضغط على نعم إذا تلقيت نافذة تحقق الهوية:
ثم، أدخل اسم مستخدم الخادم البعيد الخاص بك (sammy
) وكلمة المرور التي أنشأتها لمستخدم sammy
أثناء إعداد الخادم الأولي. اضغط على موافق.
بمجرد تسجيل الدخول، يجب أن تتمكن من الوصول إلى بيئة سطح المكتب Ubuntu الخاصة بك:
باستخدام RDP، قمت بالاتصال بنجاح بخادم Ubuntu البعيد الخاص بك من جهازك المحلي. يمكنك إغلاقه بزر الخروج عند الانتهاء من استخدام سطح المكتب الرسومي الخاص بك.
اختبار اتصال RDP على macOS
لاختبار الاتصال باستخدام عميل Remote Desktop Connection على macOS، قم أولاً بتشغيل تطبيق Microsoft Remote Desktop Connection.
اضغط على إضافة جهاز كمبيوتر، ثم أدخل عنوان IP العام للخادم البعيد في المربع القابل للتعبئة:
يمكنك إضافة حساب مستخدم عند إعداد الاتصال:
إذا لم تقم بإضافة مستخدم أثناء الإعداد، ستُطلب منك إدخال بيانات تسجيل الدخول الخاصة بالمستخدم:
اضغط نعم لتجاوز نافذة التحقق من الهوية:
بمجرد تسجيل الدخول، يمكنك الوصول إلى سطح مكتب Ubuntu عن بعد. يمكنك إغلاقه باستخدام زر الخروج عند الانتهاء من استخدام سطح المكتب الرسومي.
اختبار اتصال RDP على Linux
ستحتاج إلى عميل RDP لاختبار اتصال RDP على جهاز Linux محلي. أولاً، قم بتثبيت عميل RDP remmina
لـ Ubuntu:
- sudo apt install remmina
حدد y
إذا طُلب منك ذلك لإكمال التثبيت. سيقوم هذا الأمر بتثبيت Remmina، وهو عميل سطح مكتب عن بعد مفتوح المصدر على نظام Ubuntu الخاص بك باستخدام apt
. بالنسبة لتوزيعات Linux الأخرى، يمكنك مراجعة توثيق Remmina للتثبيت.
بمجرد التثبيت، قم بتشغيل تطبيق remmina
على جهاز Linux المحلي الخاص بك وأدخل عنوان IP العام لخادمك عن بعد في المربع القابل للتعبئة. اضغط Enter على لوحة المفاتيح الخاصة بك للاتصال بسطح مكتبك عن بعد.
ثم، أدخل اسم مستخدم خادمك عن بعد (في هذا البرنامج التعليمي، اسم المستخدم هو sammy
) وكلمة المرور التي أنشأتها للمستخدم أثناء إعداد الخادم الأولي. اضغط موافق.
قد تحتاج إلى إدخال كلمة مرور المستخدم الخاصة بك مرة أخرى لفتح سطح المكتب عن بُعد.
بمجرد تسجيل الدخول، يجب أن تكون قادرًا على الوصول إلى بيئة سطح مكتب Ubuntu الخاصة بك.
باستخدام RDP ، قمت بالاتصال بنجاح بخادم Ubuntu البعيد الخاص بك من جهاز الكمبيوتر المحلي. يمكنك إغلاقه باستخدام زر الخروج عند الانتهاء من استخدام سطح المكتب الخاص بك.
بمجرد التأكد من أن الاتصال البعيد يعمل، يمكنك استخدام هذا التسلسل كلما كنت بحاجة إلى استخدام واجهة الرسومات لخادم Linux البعيد الخاص بك.
الختام
في هذا المقال، قمت بتكوين xrdp للاتصال بسطح مكتب رسومي لخادم Ubuntu البعيد الخاص بك عبر اتصال RDP من جهاز محلي.
الآن، يمكنك محاولة تكوين اتصال VNC لخادم Linux الخاص بك باستخدام كيفية تثبيت وتكوين VNC على Ubuntu 20.04. VNC هو خيار آخر للاتصال البعيد بسطح مكتب Linux.