تفعيل وضع الجلسة المحسّن لنظام Arch Linux- الضيوف في Hyper-V

تفعيل وضع الجلسة المحسّن لنظام Arch Linux- الضيوف في Hyper-V

استخدام الأجهزة الافتراضية على Linux في بيئة Hyper-V، تكون التجربة أقل راحة قليلاً عند استخدامها مباشرةً مقارنةً بالبيئة الضيفية. Windows-الأجهزة. والسبب في ذلك هو أن Hyper-V لم يتم تصميمه في الأصل للاستخدام على أجهزة سطح المكتب؛ فلا يمكنك ببساطة تثبيت حزمة إضافات الضيف والحصول على تسريع رسومات يعمل، وحافظة، ومجلدات مشتركة، ومزايا أخرى، كما هو الحال مع VirtualBox.

يوفر Hyper-V نفسه خدمات تكامل متعددة - لذلك ، يمكن للضيوف استخدام خدمة النسخ الاحتياطي (VSS) للمضيف ، ويمكن للضيوف إرسال إشارة إيقاف التشغيل ، ويمكن للضيوف مزامنة وقت النظام مع مضيف المحاكاة الافتراضية ، ويمكن تبادل الملفات مع الجهاز الظاهري من المضيف (Copy-VMFile في PowerShell). بالنسبة لبعض أنظمة التشغيل الضيفة، والتي تشمل بالطبع Windows، في تطبيق اتصال الجهاز الظاهري (vmconnect.exe) يتوفر وضع الجلسة المحسن ، والذي يعمل عبر بروتوكول RDP ويسمح لك بإعادة توجيه أجهزة القرص والطابعات إلى الجهاز الظاهري ، وكذلك استخدام الحافظة المشتركة.

يعمل وضع الجلسة المحسّن مباشرةً بعد التثبيت. Windows في Hyper-V مباشرة بعد التثبيت. مع تشغيل الأجهزة الافتراضية Linux تحتاج إلى تثبيت خادم RDP يدعم vSock (مساحة عناوين شبكة افتراضية خاصة في Linux(مصمم للتواصل مع برنامج إدارة الأجهزة الافتراضية). إذا كان لـ Ubuntu في تطبيق VMCreate الذي يأتي مع Hyper-V على إصدارات سطح المكتب Windowsيوجد قالب آلة افتراضية مُعد خصيصًا يعمل فيه خادم RDP مع vSock XRDP مثبتة مسبقًا ، ثم مع التوزيعات الأخرى يصبح الأمر أقل وضوحًا - على سبيل المثال ، المؤلف هذا المشنور لقد نجحنا في تفعيل وضع الجلسة المحسّن (ESM) في فيدورا. هنا نقوم أيضًا بتفعيل وضع الجلسة المحسّن للجهاز الظاهري Arch. Linux.

تركيب خدمات التكامل

كل شيء هنا بسيط إلى حد ما ، نحتاج فقط إلى تثبيت الحزمة hyperv من مستودع المجتمع:

% sudo pacman -S hyperv

تمكين تبادل خدمات VSS البيانات الوصفية والملفات:

% for i in {vss,fcopy,kvp}; do sudo systemctl enable hv_${i}_daemon.service; done

تثبيت XRDP

مخزن أدوات لينكس- vm يوفر هذا الموقع نصوصًا برمجية على GitHub تعمل على أتمتة عملية تثبيت وتكوين XRDP لنظام Arch Linux и Ubuntuلنقم بتثبيت Git، إذا لم يكن مثبتًا بالفعل، بالإضافة إلى برنامج تجميعي وبرامج أخرى للبناء اليدوي، ثم نقوم باستنساخ المستودع:

% sudo pacman -S git base-devel
% git clone https://github.com/microsoft/linux-vm-tools.git
% cd linux-vm-tools/arch

في وقت كتابة هذا التقرير ، كان أحدث إصدار من XRDP ، والذي تم تثبيته بواسطة البرنامج النصي makepkg.shالمقترح في المستودع هو 0.9.11 ، فيه كسر الاعراب vsock://-العناوين ، لذلك عليك تثبيت XRDP من Git وبرنامج تشغيل Xorg له من AUR يدويًا. التصحيح الخاص بـ XRDP المقدم في AUR قديم أيضًا ، لذا سيتعين عليك تحرير PKGBUILD والتصحيح يدويًا.

نقوم باستنساخ المستودعات باستخدام PKGBUILDs من AUR (عادةً ما يتم أتمتة هذا الإجراء ، جنبًا إلى جنب مع التجميع ، بواسطة برامج مثل ياي، لكن المؤلف قام بهذا الإجراء بأكمله على نظام نظيف):

% git clone https://aur.archlinux.org/xrdp-devel-git.git
% git clone https://aur.archlinux.org/xorgxrdp-devel-git.git

لنقم بتثبيت XRDP نفسه أولاً. لنفتح الملف PKGBUILD أي محرر نصوص.

دعنا نعدل معلمات البناء. لا يتضمن PKGBUILD لبناء XRDP من Git دعم vsock في البناء ، لذلك دعونا نقوم بتمكينه بأنفسنا:

 build() {
   cd $pkgname
   ./configure --prefix=/usr 
               --sysconfdir=/etc 
               --localstatedir=/var 
               --sbindir=/usr/bin 
               --with-systemdsystemdunitdir=/usr/lib/systemd/system 
               --enable-jpeg 
               --enable-tjpeg 
               --enable-fuse 
               --enable-opus 
               --enable-rfxcodec 
               --enable-mp3lame 
-              --enable-pixman
+              --enable-pixman 
+              --enable-vsock
   make V=0
 }

في التصحيح arch-config.diff، ووحدات الحكم، وبرامج بدء تشغيل XRDP ضمن مسارات الملفات المستخدمة في Arch Linuxيحتوي على تصحيح للبرنامج النصي instfiles/xrdp.shالتي في وقت كتابة هذا التقرير تمت إزالته من توزيع XRDP ، لذلك يجب تحرير التصحيح يدويًا:

  [Install]
  WantedBy=multi-user.target
-diff -up src/xrdp-devel-git/instfiles/xrdp.sh.orig src/xrdp-devel-git/instfiles/xrdp.sh
---- src/xrdp-devel-git/instfiles/xrdp.sh.orig  2017-08-30 00:27:28.000000000 -0600
-+++ src/xrdp-devel-git/instfiles/xrdp.sh   2017-08-30 00:28:00.000000000 -0600
-@@ -17,7 +17,7 @@
- # Description: starts xrdp
- ### END INIT INFO
- 
--SBINDIR=/usr/local/sbin
-+SBINDIR=/usr/bin
- LOG=/dev/null
- CFGDIR=/etc/xrdp
- 
 diff -up src/xrdp-devel-git/sesman/startwm.sh.orig src/xrdp-devel-git/sesman/startwm.sh
 --- src/xrdp-devel-git/sesman/startwm.sh.orig  2017-08-30 00:27:30.000000000 -0600

قم بإنشاء الحزمة وتثبيتها باستخدام الأمر % makepkg --skipchecksums -si (مفتاح --skipchecksums مطلوب لتعطيل التحقق من المجموع الاختباري لملفات المصدر ، نظرًا لأننا قمنا بتحريرها يدويًا).

دعنا نذهب إلى الدليل xorgxrdp-devel-git، وبعد ذلك نقوم ببناء الحزمة بالأمر % makepkg -si.

دعنا نذهب إلى الدليل linux-vm-tools/arch وتشغيل البرنامج النصي install-config.sh، والذي يضبط إعدادات XRDP و PolicyKit و PAM:

% sudo ./install-config.sh

يقوم البرنامج النصي بتثبيت الإعداد القديم use_vsock، والذي تم تجاهله منذ الإصدار 0.9.11 ، فلنعدّل ملف التكوين /etc/xrdp/xrdp.ini يدويا:

 ;   port=vsock://<cid>:<port>
-port=3389
+port=vsock://-1:3389

 ; 'port' above should be connected to with vsock instead of tcp
 ; use this only with number alone in port above
 ; prefer use vsock://<cid>:<port> above
-use_vsock=true
+;use_vsock=true

 ; regulate if the listening socket use socket option tcp_nodelay

أضف إلى ملف ~/.xinitrc بدء تشغيل مدير النوافذ المفضل / بيئة سطح المكتب ، والتي سيتم تنفيذها عند بدء تشغيل خادم X:

% echo "exec i3" > ~/.xinitrc

لنوقف تشغيل الآلة الافتراضية. قم بتمكين نقل vsock للجهاز الظاهري عن طريق تشغيل الأمر التالي في PowerShell كمسؤول:

PS Admin > Set-VM -VMName НАЗВАНИЕ_МАШИНЫ -EnhancedSessionTransportType HvSocket

دعنا نشغل الآلة الافتراضية مرة أخرى.

Подключение

بمجرد بدء خدمة XRDP بعد بدء تشغيل النظام ، سيحدد تطبيق vmconnect ذلك وسيصبح عنصر القائمة متاحًا. عرض الطلب -> جلسة محسّنة. عند تحديد هذا العنصر ، سيُطلب منا ضبط دقة الشاشة ، وفي علامة التبويب الموارد المحلية في مربع الحوار الذي يفتح ، يمكنك تحديد الأجهزة المعاد توجيهها داخل جلسة RDP.

تفعيل وضع الجلسة المحسّن لنظام Arch Linux- الضيوف في Hyper-V
تفعيل وضع الجلسة المحسّن لنظام Arch Linux- الضيوف في Hyper-V

دعنا نتواصل. سنرى نافذة تسجيل الدخول إلى XRDP:

تفعيل وضع الجلسة المحسّن لنظام Arch Linux- الضيوف في Hyper-V

أدخل اسم المستخدم وكلمة المرور الخاصة بك.

استخدام

الربح من هذه التلاعبات ملحوظ: تعمل جلسة RDP بشكل أكثر استجابة من العمل مع شاشة افتراضية بدون جلسة محسّنة. تتوفر الأقراص المعاد توجيهها داخل الجهاز الظاهري عبر RDP في الدليل ${HOME}/shared-drives:

تفعيل وضع الجلسة المحسّن لنظام Arch Linux- الضيوف في Hyper-V

الحافظة تعمل بشكل جيد. لا يمكنك رمي الطابعات بالداخل ، فهذا ليس مدعومًا فحسب ، بل أيضًا يكسر توجيه القرص. الصوت أيضا لا يعمل ولكن المؤلف لم يكن بحاجة إليه. من أجل التقاط اختصارات لوحة المفاتيح مثل Alt + Tab ، تحتاج إلى توسيع vmconnect إلى وضع ملء الشاشة.

إذا كنت ترغب لأي سبب من الأسباب في استخدام تطبيق vmconnect المدمج بدلاً من Windows إذا كنت تستخدم عميل RDP أو، على سبيل المثال، تتصل بهذا الجهاز من جهاز آخر، فستحتاج إلى تغيير الملف. /etc/xrdp/xrdp.ini port في tcp://:3389. إذا كان الجهاز الظاهري متصلاً بالمحول الافتراضي ويتلقى إعدادات الشبكة عبر DHCP ، فيمكنك الاتصال به من المضيف على название_машины.mshome.net. يمكنك فقط تسجيل الدخول إلى TTY من تطبيق vmconnect بإيقاف تشغيل الوضع المحسن.

المصادر المستخدمة:

  1. Hyper-V Arch Wiki
  2. تقارير الشوائب على جيثب: 1, 2

المصدر: www.habr.com

شراء استضافة موثوقة للمواقع مع حماية DDoS وخوادم VPS VDS 🔥 اشترِ استضافة مواقع ويب موثوقة مع حماية من هجمات DDoS، وخوادم VPS وVDS | ProHoster