تثبيت وتكوين xrdp لاستخدام سطح المكتب البعيد مع Ubuntu

ينطبق على: ✔️ أجهزة Linux الظاهرية ✔️ مجموعات توسعة مرنة

عندما يكون جديدا على Linux، أو لسيناريوهات استكشاف الأخطاء وإصلاحها بسرعة، قد يكون استخدام سطح المكتب البعيد أسهل من الوصول إلى Secure Shell (SSH). توضح هذه المقالة بالتفصيل كيفية تثبيت بيئة سطح مكتب (xfce) وسطح المكتب البعيد (xrdp) وتكوينها لجهاز Linux الظاهري الذي يعمل بنظام Ubuntu.

تمت كتابة المقالة واختبارها باستخدام جهاز ظاهري إصدار Ubuntu 18.04.

ملاحظة

سيؤدي استخدام سطح المكتب البعيد عبر الإنترنت إلى تقديم "تأخر" ملحوظ (زمن انتقال الإدخال) عند مقارنتها باستخدام سطح المكتب المحلي. يمكن أن يتأثر هذا بعوامل متعددة بما في ذلك سرعة الإنترنت المحلية والمسافة من مركز البيانات حيث تتم استضافة الجهاز الظاهري. لا يعكس هذا التأخير عادة أداء الجهاز الظاهري نفسه.

المتطلبات الأساسية

تتطلب هذه المقالة جهاز Ubuntu 18.04 LTS أو Ubuntu 20.04 LTS VM موجود في Azure. إذا كنت بحاجة إلى إنشاء جهاز ظاهري، استخدم إحدى الطرق التالية:

تثبيت بيئة سطح مكتب على جهاز Linux الظاهري خاصتك

لا تحتوي معظم أجهزة Linux الظاهرية في Azure على بيئة سطح مكتب مثبتة بشكل افتراضي. تتم إدارة أجهزة Linux الظاهرية عادة باستخدام اتصالات SSH بدلا من بيئة سطح المكتب، ولكن هناك العديد من بيئات سطح المكتب التي يمكنك اختيار تثبيتها. اعتمادا على اختيارك لبيئة سطح المكتب، فإنها تستهلك ما يصل إلى 2 غيغابايت من مساحة القرص وتستغرق ما يصل إلى عشر دقائق لتثبيت جميع الحزم المطلوبة وتكوينها.

يقوم المثال التالي بتثبيت بيئة سطح المكتب xfce4 الخفيفة على جهاز Ubuntu الظاهري. تختلف أوامر التوزيعات الأخرى اختلافاً طفيفاً (استخدم yum للتثبيت على Red Hat Enterprise Linux وتكوين قواعد selinux مناسبة، أو استخدمها zypper للتثبيت على SUSE، على سبيل المثال).

أولاً، SSH إلى جهازك الظاهري. يتصل المثال التالي بالجهاز الظاهري المُسمى myvm.westus.cloudapp.azure.com باسم مستخدم azureuser. استخدم قيمك الخاصة:

ssh azureuser@myvm.westus.cloudapp.azure.com

إذا كنت تستخدم Windows وتحتاج إلى مزيد من المعلومات حول استخدام SSH، فراجع كيفية استخدام مفاتيح SSH مع Windows.

بعد ذلك، قم بتثبيت xfce باستخدام apt :

sudo apt-get update
sudo DEBIAN_FRONTEND=noninteractive apt-get -y install xfce4
sudo apt install xfce4-session

تثبيت خادم سطح مكتب بعيد وتكوينه

الآن بعد أن تم تثبيت بيئة سطح مكتب، قم بتكوين خدمة سطح مكتب بعيد للاستماع إلى اتصالات الوصول عن بعد الواردة. xrdp هو خادم بروتوكول سطح المكتب البعيد (RDP) مصدر مفتوح متوفر على معظم توزيعات Linux ويعمل بشكل جيد مع xfce. بادر بتثبيت xrdp على جهازك الظاهري Ubuntu خاصتك على النحو التالي:

sudo apt-get -y install xrdp
sudo systemctl enable xrdp

في Ubuntu 20، تحتاج إلى منح الشهادة حق الوصول إلى مستخدم xrdp:

sudo adduser xrdp ssl-cert

أخبر xrdp ببيئة سطح المكتب التي يجب استخدامها عند بدء جلسة العمل خاصتك. تكوين xrdp لاستخدام xfce كبيئة سطح المكتب خاصتك كما يلي:

echo xfce4-session >~/.xsession

أعِد تشغيل خدمة xrdp لتصبح التغييرات سارية المفعول كما يلي:

sudo service xrdp restart

تعيين كلمة مرور حساب مستخدم محلي

إذا أنشأت كلمة مرور لحساب المستخدم خاصتك عند إنشاء الجهاز الظاهري، فتجاوز هذه الخطوة. إذا كنت تستخدم مصادقة مفتاح SSH فقط ولم يكن لديك مجموعة كلمة مرور حساب محلي، فحدد كلمة مرور قبل استخدام xrdp لتسجيل الدخول إلى الجهاز الظاهري الخاص بك. لا يمكن ل xrdp قبول مفاتيح SSH للمصادقة. يحدد المثال التالي كلمة مرور لحساب المستخدم azureuser:

sudo passwd azureuser

ملاحظة

لا يؤدي تحديد كلمة مرور إلى تحديث تكوين SSHD خاصتك للسماح بتسجيل الدخول باستخدام كلمة المرور إذا لم يكن الأمر كذلك حالياً. من منظور الأمان، قد ترغب في الاتصال بجهازك الظاهري باستخدام نفق SSH باستخدام المصادقة المستندة إلى المفتاح ثم الاتصال بـ xrdp. إذا كان الأمر كذلك، فتجاوز الخطوة التالية عند إنشاء قاعدة مجموعة أمان الشبكة للسماح بحركة مرور سطح المكتب البعيد.

إنشاء قاعدة مجموعة أمان الشبكة لحركة مرور سطح المكتب البعيد

للسماح لحركة مرور سطح المكتب البعيد بالوصول إلى جهاز Linux الظاهري، يجب إنشاء قاعدة مجموعة أمان الشبكة التي تسمح لبروتوكول TCP على المنفذ 3389 بالوصول إلى جهازك الظاهري. لمزيد من المعلومات عن قواعد مجموعة أمان الشبكة، راجع ما المقصود بمجموعة أمان الشبكة؟ يمكنك أيضاً استخدام مدخل Azure لإنشاء قاعدة مجموعة أمان الشبكة.

ينشئ المثال التالي قاعدة مجموعة أمان الشبكة باستخدام az vm open-portعلى المنفذ 3389. من Azure CLI، وليس جلسة عمل SSH إلى جهازك الظاهري، افتح قاعدة مجموعة أمان الشبكة التالية:

az vm open-port --resource-group myResourceGroup --name myVM --port 3389

توصيل جهازك الظاهري الذي يعمل بنظام Linux خاصتك بكمبيوتر عميل سطح المكتب البعيد

افتح كمبيوتر عميل سطح المكتب البعيد المحلي واتصل بعنوان IP أو اسم DNS الخاص بجهازك الظاهري الذي يعمل بنظام Linux.

لقطة شاشة لكمبيوتر عميل سطح المكتب البعيد.

أدخِل اسم المستخدم وكلمة المرور لحساب المستخدم على جهازك الظاهري على النحو التالي:

لقطة شاشة لشاشة تسجيل الدخول xrdp

بعد المصادقة، سيتم تحميل بيئة سطح المكتب xfce وتبدو مشابهة للمثال التالي:

بيئة سطح المكتب xfce من خلال xrdp

إذا كان عميل RDP المحلي خاصتك يستخدم مصادقة مستوى الشبكة (NLA)، فقد تحتاج إلى تعطيل إعداد الاتصال هذا. XRDP لا يدعم حالياً مصادقة NLA. يمكنك أيضاً الاطلاع على حلول RDP البديلة التي تدعم NLA، مثل FreeRDP.

استكشاف الأخطاء وإصلاحها

إذا لم تتمكن من الاتصال بجهاز Linux الظاهري الخاص بك باستخدام عميل سطح المكتب البعيد، فاستخدم netstat على جهاز Linux الظاهري للتحقق من أن الجهاز الظاهري الخاص بك يستمع لاتصالات RDP على النحو التالي:

sudo netstat -plnt | grep rdp

يوضح المثال التالي استماع الجهاز الظاهري على منفذ TCP 3389 كما هو متوقع:

tcp     0     0      127.0.0.1:3350     0.0.0.0:*     LISTEN     53192/xrdp-sesman
tcp     0     0      0.0.0.0:3389       0.0.0.0:*     LISTEN     53188/xrdp

إذا كانت خدمة xrdp-sesman لا تستمع، على جهاز Ubuntu الظاهري أعد تشغيل الخدمة كما يلي:

sudo service xrdp restart

راجع سجلات الدخول /var/log على جهازك الظاهري Ubuntu للحصول على مؤشرات حول سبب عدم استجابة الخدمة. يمكنك أيضاً مراقبة syslog أثناء محاولة اتصال سطح المكتب البعيد لعرض أية أخطاء:

tail -f /var/log/syslog

قد يكون لتوزيعات Linux الأخرى مثل Red Hat Enterprise Linux وSUSE طرق مختلفة لإعادة تشغيل الخدمات ومواقع ملفات السجل البديلة لمراجعتها.

إذا لم تتلق أي استجابة في عميل سطح المكتب البعيد ولا ترى أي أحداث في سجل النظام، يشير هذا السلوك إلى أن نسبة استخدام الشبكة لسطح المكتب البعيد لا يمكن أن تصل إلى الجهاز الظاهري. راجع قواعد مجموعة أمان الشبكة لديك للتأكد من أن لديك قاعدة للسماح ببروتوكول TCP على المنفذ 3389. لمزيد من المعلومات، راجع استكشاف مشكلات اتصال التطبيق وإصلاحها.

الخطوات التالية

لمزيد من المعلومات عن إنشاء مفاتيح SSH واستخدامها مع الأجهزة الظاهرية التي تعمل بنظام التشغيل Linux، راجع إنشاء مفاتيح SSH للأجهزة الظاهرية التي تعمل بنظام Linux في Azure.

للحصول على معلومات حول استخدام SSH من Windows، راجع كيفية استخدام مفاتيح SSH مع Windows.