Arch uchun kengaytirilgan sessiya rejimini yoqish Linux-Hyper-Vdagi mehmonlar

Arch uchun kengaytirilgan sessiya rejimini yoqish Linux-Hyper-Vdagi mehmonlar

Virtual mashinalardan foydalanish Linux Hyper-V da, qutidan tashqarida, mehmon bilan bo'lgani kabi biroz kamroq qulay tajriba. Windows-mashinalar. Buning sababi shundaki, Hyper-V dastlab ish stoli uchun mo'ljallanmagan; siz shunchaki Mehmon qo'shimchalari paketini o'rnatib, VirtualBox bilan bo'lgani kabi ishlaydigan grafik tezlashtirish, bufer, umumiy kataloglar va boshqa afzalliklarga ega bo'la olmaysiz.

Hyper-Vning o'zi ta'minlaydi bir nechta integratsiya xizmatlari - Shunday qilib, mehmonlar xostning soyali nusxa ko'chirish xizmatidan (VSS) foydalanishlari mumkin, mehmonlar o'chirish signalini yuborishlari mumkin, mehmonlar tizim vaqtini virtualizatsiya xosti bilan sinxronlashtirishlari mumkin, fayllarni xostdan virtual mashina bilan almashishlari mumkin (Copy-VMFile PowerShell’da). Ba’zi mehmon operatsion tizimlari uchun, albatta, quyidagilarni o‘z ichiga oladi Windows, Virtual Mashina Ulanishi ilovasida (vmconnect.exe) Kengaytirilgan seans rejimi mavjud bo'lib, u RDP protokoli orqali ishlaydi va disk qurilmalari va printerlarni virtual mashinaga yo'naltirish, shuningdek umumiy almashish buferidan foydalanish imkonini beradi.

Kengaytirilgan sessiya rejimi darhol ishlaydi Windows O'rnatishdan so'ng darhol Hyper-V da. Mehmonlar bilan Linux siz vsock-ni qo'llab-quvvatlaydigan RDP serverini o'rnatishingiz kerak (maxsus virtual tarmoq manzil maydoni) Linux, gipervizor bilan aloqa qilish uchun mo'ljallangan). Agar uchun Ubuntu ish stoli versiyalarida Hyper-V bilan birga keladigan VMCreate ilovasida Windows, RDP serveri vsock bilan ishlaydigan maxsus tayyorlangan virtual mashina shabloni mavjud XRDP allaqachon oldindan o'rnatilgan, keyin boshqa tarqatish bilan u kamroq va kamroq aniq - masalan, muallif bu post Biz Fedora'da ESM'ni yoqishga muvaffaq bo'ldik. Bu yerda biz Arch virtual mashinasi uchun Kengaytirilgan Sessiya Rejimini ham faollashtirdik. Linux.

Integratsiya xizmatlarini o'rnatish

Bu erda hamma narsa ko'proq yoki kamroq oddiy, biz faqat paketni o'rnatishimiz kerak hyperv jamoat omboridan:

% sudo pacman -S hyperv

VSS xizmatlarini yoqish, almashish metadata va fayllar:

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

XRDP o'rnatish

ombori linux-vm-vositalari GitHub’da Arch uchun XRDP’ni o‘rnatish va sozlash jarayonini avtomatlashtiradigan skriptlarni taqdim etadi Linux и UbuntuAgar Git hali o'rnatilmagan bo'lsa, uni kompilyator va qo'lda yaratish uchun boshqa dasturlar bilan birga o'rnatamiz va keyin omborni klonlaymiz:

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

Ushbu yozish paytida, skript tomonidan o'rnatilgan XRDP-ning eng so'nggi versiyasi makepkg.shomborda taklif qilingan 0.9.11, bunda tahlil qilish buziladi vsock://-manzillar, shuning uchun siz Git'dan XRDP va uning uchun Xorg drayverini AUR'dan qo'lda o'rnatishingiz kerak. AURda taklif qilingan XRDP uchun yamoq ham biroz eskirgan, shuning uchun siz PKGBUILD va yamoqni qo'lda tahrirlashingiz kerak bo'ladi.

Biz omborlarni AUR-dan PKGBUILD-lar bilan klonlaymiz (odatda bu protsedura yig'ish bilan birga, shunga o'xshash dasturlar tomonidan avtomatlashtirilgan. vajjaj, lekin muallif bu protsedurani toza tizimda bajargan):

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

Avval XRDP ni o'rnatamiz. Keling, faylni ochamiz PKGBUILD har qanday matn muharriri.

Qurilish parametrlarini tahrir qilaylik. Git-dan XRDP-ni yaratish uchun PKGBUILD qurilishda vsock-ni qo'llab-quvvatlamaydi, shuning uchun uni o'zimiz yoqaylik:

 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
 }

Yamoq ichida arch-config.diff, Archda ishlatiladigan fayl yo'llari ostida boshqaruvchi birliklar va XRDP ishga tushirish skriptlari Linux, skriptga patch qo'shilgan instfiles/xrdp.sh, bu yozish paytida olib tashlandi XRDP tarqatilishidan, shuning uchun yamoqni qo'lda tahrirlash kerak bo'ladi:

  [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

Buyruq bilan paketni tuzing va o'rnating % makepkg --skipchecksums -si (kalit --skipchecksums manba fayllarni tekshirish summasini tekshirishni o'chirish uchun kerak, chunki biz ularni qo'lda tahrir qildik).

Keling, katalogga o'tamiz xorgxrdp-devel-git, shundan so'ng biz shunchaki buyruq bilan paketni quramiz % makepkg -si.

Keling, katalogga o'tamiz linux-vm-tools/arch va skriptni ishga tushiring install-config.sh, bu XRDP, PolicyKit va PAM sozlamalarini o'rnatadi:

% sudo ./install-config.sh

Skript eski sozlamalarni o'rnatadi use_vsock, bu 0.9.11 versiyasidan beri e'tiborga olinmaydi, shuning uchun konfiguratsiya faylini tahrir qilaylik /etc/xrdp/xrdp.ini qo'lda:

 ;   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

Faylga qo'shish ~/.xinitrc X server ishga tushirilganda amalga oshiriladigan afzal oyna boshqaruvchisi/ish stoli muhitini ishga tushirish:

% echo "exec i3" > ~/.xinitrc

Keling, virtual mashinani o'chiraylik. PowerShell-da administrator sifatida quyidagi buyruqni ishga tushirish orqali VM uchun vsock transportini yoqing:

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

Keling, virtual mashinani yana yoqaylik.

Ulanish

Tizim ishga tushgandan so'ng XRDP xizmati ishga tushishi bilan vmconnect ilovasi buni aniqlaydi va menyu bandi mavjud bo'ladi. ko'rinish -> Kengaytirilgan seans. Ushbu elementni tanlaganingizda, bizdan ekran o'lchamlarini o'rnatish so'raladi va yorliqda Mahalliy manbalar ochilgan dialog oynasida siz RDP seansi ichida uzatiladigan qurilmalarni tanlashingiz mumkin.

Arch uchun kengaytirilgan sessiya rejimini yoqish Linux-Hyper-Vdagi mehmonlar
Arch uchun kengaytirilgan sessiya rejimini yoqish Linux-Hyper-Vdagi mehmonlar

Ulanamiz. Biz XRDP kirish oynasini ko'ramiz:

Arch uchun kengaytirilgan sessiya rejimini yoqish Linux-Hyper-Vdagi mehmonlar

Foydalanuvchi nomingiz va parolingizni kiriting.

foydalanish

Ushbu manipulyatsiyalardan olingan foyda sezilarli: RDP seansi Enhanced Sessionsiz virtual displey bilan ishlashga qaraganda ancha sezgir ishlaydi. RDP orqali VM ichida yuborilgan disklar katalogda mavjud ${HOME}/shared-drives:

Arch uchun kengaytirilgan sessiya rejimini yoqish Linux-Hyper-Vdagi mehmonlar

Bufer yaxshi ishlayapti. Siz printerlarni ichkariga tashlay olmaysiz, bu nafaqat qo'llab-quvvatlanmaydi, balki diskni yo'naltirishni buzadi. Ovoz ham ishlamaydi, lekin muallifga kerak emas edi. Alt + Tab kabi klaviatura yorliqlarini suratga olish uchun vmconnect-ni to'liq ekranga kengaytirishingiz kerak.

Agar biron sababga ko'ra siz o'rniga o'rnatilgan vmconnect ilovasidan foydalanmoqchi bo'lsangiz Windows RDP mijozi yoki, masalan, ushbu mashinaga boshqa mashinadan ulansangiz, faylni o'zgartirishingiz kerak bo'ladi /etc/xrdp/xrdp.ini port haqida tcp://:3389. Agar virtual mashina standart kalitga ulangan bo'lsa va DHCP orqali tarmoq sozlamalarini qabul qilsa, siz unga xostdan ulanishingiz mumkin. название_машины.mshome.net. Siz faqat Kengaytirilgan rejimni o'chirib, vmconnect ilovasidan TTYga kirishingiz mumkin.

Ishlatilgan manbalar:

  1. Hyper-V Arch Wiki
  2. GitHub-dagi xatolar haqida hisobot: 1, 2

Manba: www.habr.com

DDoS himoyasi, VPS VDS serverlari bo'lgan saytlar uchun ishonchli hosting sotib oling 🔥 DDoS himoyasi, VPS VDS serverlari bilan ishonchli veb-sayt xostingini sotib oling | ProHoster