เจ†เจฐเจš เจฒเจˆ เจตเจงเจฟเจ† เจนเฉ‹เจ‡เจ† เจธเฉˆเจธเจผเจจ เจฎเฉ‹เจก เจธเจฎเจฐเฉฑเจฅ เจฌเจฃเจพเจ‰เจฃเจพ Linux-เจนเจพเจˆเจชเจฐ-เจตเฉ€ เจตเจฟเฉฑเจš เจฎเจนเจฟเจฎเจพเจจ

เจ†เจฐเจš เจฒเจˆ เจตเจงเจฟเจ† เจนเฉ‹เจ‡เจ† เจธเฉˆเจธเจผเจจ เจฎเฉ‹เจก เจธเจฎเจฐเฉฑเจฅ เจฌเจฃเจพเจ‰เจฃเจพ Linux-เจนเจพเจˆเจชเจฐ-เจตเฉ€ เจตเจฟเฉฑเจš เจฎเจนเจฟเจฎเจพเจจ

เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ Linux เจนเจพเจˆเจชเจฐ-V เจตเจฟเฉฑเจš เจ—เฉˆเจธเจŸ เจฆเฉ‡ เจฎเฉเจ•เจพเจฌเจฒเฉ‡ เจ†เจŠเจŸ เจ†เจซเจผ เจฆ เจฌเจพเจ•เจธ เจฅเฉ‹เฉœเฉเจนเจพ เจ˜เฉฑเจŸ เจ†เจฐเจพเจฎเจฆเจพเจ‡เจ• เจ…เจจเฉเจญเจต เจนเฉเฉฐเจฆเจพ เจนเฉˆ Windows-ะผะฐัˆะธะฝะฐะผะธ. ะŸั€ะธั‡ะธะฝะพะน ั‚ะพะผัƒ ัะฒะปัะตั‚ัั ั‚ะพ, ั‡ั‚ะพ Hyper-V ะฒัะต ะถะต ะธะทะฝะฐั‡ะฐะปัŒะฝะพ ะฝะต ะฟั€ะตะดะฝะฐะทะฝะฐั‡ะฐะปัั ะดะปั ะดะตัะบั‚ะพะฟะฝะพะณะพ ะฟะพะปัŒะทะพะฒะฐะฝะธั; ะฝะตะปัŒะทั ะฟั€ะพัั‚ะพ ะฒะทัั‚ัŒ, ะฟะพัั‚ะฐะฒะธั‚ัŒ ะฟะฐะบะตั‚ ะณะพัั‚ะตะฒั‹ั… ะดะพะฟะพะปะฝะตะฝะธะน ะธ ะฟะพะปัƒั‡ะธั‚ัŒ ั€ะฐะฑะพั‚ะพัะฟะพัะพะฑะฝะพะต ะณั€ะฐั„ะธั‡ะตัะบะพะต ัƒัะบะพั€ะตะฝะธะต, ะฑัƒั„ะตั€ ะพะฑะผะตะฝะฐ, ะพะฑั‰ะธะต ะดะธั€ะตะบั‚ะพั€ะธะธ ะธ ะดั€ัƒะณะธะต ั€ะฐะดะพัั‚ะธ ะถะธะทะฝะธ, ะบะฐะบ ัั‚ะพ ะฟั€ะพะธัั…ะพะดะธั‚ ะฒ VirtualBox.

เจนเจพเจˆเจชเจฐ-เจตเฉ€ เจ–เฉเจฆ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเจพ เจนเฉˆ เจฎเจฒเจŸเฉ€เจชเจฒ เจเจ•เฉ€เจ•เจฐเจฃ เจธเฉ‡เจตเจพเจตเจพเจ‚ - เจ‡เจธ เจฒเจˆ, เจฎเจนเจฟเจฎเจพเจจ เจนเฉ‹เจธเจŸ เจฆเฉ€ เจธเจผเฉˆเจกเฉ‹ เจ•เจพเจชเฉ€ เจธเฉ‡เจตเจพ (VSS) เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจจ, เจฎเจนเจฟเจฎเจพเจจ เจ‡เฉฑเจ• เจฌเฉฐเจฆ เจธเจฟเจ—เจจเจฒ เจญเฉ‡เจœ เจธเจ•เจฆเฉ‡ เจนเจจ, เจฎเจนเจฟเจฎเจพเจจ เจธเจฟเจธเจŸเจฎ เจธเจฎเฉ‡เจ‚ เจจเฉ‚เฉฐ เจตเจฐเจšเฉเจ…เจฒเจพเจˆเจœเฉ‡เจธเจผเจจ เจนเฉ‹เจธเจŸ เจจเจพเจฒ เจธเจฎเจ•เจพเจฒเฉ€ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจจ, เจนเฉ‹เจธเจŸ เจคเฉ‹เจ‚ เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจ เจจเจพเจฒ เจซเจพเจˆเจฒเจพเจ‚ เจฆเจพ เจ†เจฆเจพเจจ-เจชเฉเจฐเจฆเจพเจจ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ (Copy-VMFile ะฒ PowerShell). ะ”ะปั ะฝะตะบะพั‚ะพั€ั‹ั… ะณะพัั‚ะตะฒั‹ั… ะพะฟะตั€ะฐั†ะธะพะฝะฝั‹ั… ัะธัั‚ะตะผ, ะฒ ั‡ะธัะปะต ะบะพั‚ะพั€ั‹ั…, ะบะพะฝะตั‡ะฝะพ, ะฝะฐั…ะพะดะธั‚ัั ะธ Windows, ะฒ ะฟั€ะธะปะพะถะตะฝะธะธ Virtual Machine Connection (vmconnect.exe) เจเจจเจนเจพเจ‚เจธเจก เจธเฉˆเจธเจผเจจ เจฎเฉ‹เจก เจ‰เจชเจฒเจฌเจง เจนเฉˆ, เจœเฉ‹ เจ•เจฟ RDP เจชเฉเจฐเฉ‹เจŸเฉ‹เจ•เฉ‹เจฒ เจฐเจพเจนเฉ€เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจกเจฟเจธเจ• เจกเจฟเจตเจพเจˆเจธเจพเจ‚ เจ…เจคเฉ‡ เจชเฉเจฐเจฟเฉฐเจŸเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจ 'เจคเฉ‡ เจ…เฉฑเจ—เฉ‡ เจญเฉ‡เจœเจฃ เจฆเฉ‡ เจจเจพเจฒ-เจจเจพเจฒ เจธเจพเจ‚เจเฉ‡ เจ•เจฒเจฟเฉฑเจชเจฌเฉ‹เจฐเจก เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉˆเฅค

Enhanced Session Mode ะธะท ะบะพั€ะพะฑะบะธ ั€ะฐะฑะพั‚ะฐะตั‚ ะฒ Windows ะฒ Hyper-V ัั€ะฐะทัƒ ะฟะพัะปะต ัƒัั‚ะฐะฝะพะฒะบะธ. ะก ะณะพัั‚ัะผะธ ะฝะฐ Linux ะฝัƒะถะฝะพ ัƒัั‚ะฐะฝะฐะฒะปะธะฒะฐั‚ัŒ RDP-ัะตั€ะฒะตั€, ะฟะพะดะดะตั€ะถะธะฒะฐัŽั‰ะธะน vsock (ัะฟะตั†ะธะฐะปัŒะฝะพะต ะฒะธั€ั‚ัƒะฐะปัŒะฝะพะต ัะตั‚ะตะฒะพะต ะฐะดั€ะตัะฝะพะต ะฟั€ะพัั‚ั€ะฐะฝัั‚ะฒะพ ะฒ Linux, ะฟั€ะตะดะฝะฐะทะฝะฐั‡ะตะฝะฝะพะต ะดะปั ะบะพะผะผัƒะฝะธะบะฐั†ะธะธ ั ะณะธะฟะตั€ะฒะธะทะพั€ะพะผ). ะ•ัะปะธ ะดะปั Ubuntu ะฒ ะฟั€ะธะปะพะถะตะฝะธะธ VMCreate, ะธะดัƒั‰ะธะผ ั Hyper-V ะฝะฐ ะฝะฐัั‚ะพะปัŒะฝั‹ั… ั€ะตะดะฐะบั†ะธัั… Windows, ะตัั‚ัŒ ัะฟะตั†ะธะฐะปัŒะฝั‹ะน ะฟะพะดะณะพั‚ะพะฒะปะตะฝะฝั‹ะน ัˆะฐะฑะปะพะฝ ะฒะธั€ั‚ัƒะฐะปัŒะฝะพะน ะผะฐัˆะธะฝั‹, ะฒ ะบะพั‚ะพั€ะพะผ ั€ะฐะฑะพั‚ะฐัŽั‰ะธะน ั vsock RDP-ัะตั€ะฒะตั€ เจเจ•เจธเจ†เจฐเจกเฉ€เจชเฉ€ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจชเจนเจฟเจฒเจพเจ‚ เจคเฉ‹เจ‚ เจธเจฅเจพเจชเจฟเจค, เจซเจฟเจฐ เจนเฉ‹เจฐ เจตเฉฐเจกเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ เจ‡เจน เจ˜เฉฑเจŸ เจ…เจคเฉ‡ เจ˜เฉฑเจŸ เจธเจชเฉฑเจธเจผเจŸ เจนเฉเฉฐเจฆเจพ เจนเฉˆ - เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจฒเฉ‡เจ–เจ• เจ‡เจน เจชเฉ‹เจธเจŸ ะฟะพะปัƒั‡ะธะปะพััŒ ะฒะบะปัŽั‡ะธั‚ัŒ ESM ะฒ Fedora. ะ—ะดะตััŒ ะถะต ะผั‹ ะฐะบั‚ะธะฒะธั€ัƒะตะผ Enhanced Session Mode ะดะปั ะฒะธั€ั‚ัƒะฐะปัŒะฝะพะน ะผะฐัˆะธะฝั‹ ั Arch Linux.

เจเจ•เฉ€เจ•เจฐเจฃ เจธเฉ‡เจตเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเจจเจพ

เจ‡เฉฑเจฅเฉ‡ เจธเจญ เจ•เฉเจ เจ˜เฉฑเจŸ เจœเจพเจ‚ เจ˜เฉฑเจŸ เจธเจงเจพเจฐเจจ เจนเฉˆ, เจธเจพเจจเฉ‚เฉฐ เจธเจฟเจฐเจซเจผ เจชเฉˆเจ•เฉ‡เจœ เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ hyperv เจ•เจฎเจฟเจŠเจจเจฟเจŸเฉ€ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจคเฉ‹เจ‚:

% sudo pacman -S hyperv

VSS เจธเฉ‡เจตเจพเจตเจพเจ‚, เจเจ•เจธเจšเฉ‡เจ‚เจœ เจจเฉ‚เฉฐ เจธเจฎเจฐเฉฑเจฅ เจฌเจฃเจพเจ“ เจฎเฉˆเจŸเจพเจกเจพเจŸเจพ เจ…เจคเฉ‡ เจซเจพเจˆเจฒเจพเจ‚:

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

XRDP เจธเจฅเจพเจชเจจเจพ

เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ linux-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://-เจชเจคเจพ, เจ‡เจธ เจฒเจˆ เจคเฉเจนเจพเจจเฉ‚เฉฐ Git เจคเฉ‹เจ‚ XRDP เจ…เจคเฉ‡ Xorg เจกเจฐเจพเจˆเจตเจฐ เจจเฉ‚เฉฐ AUR เจคเฉ‹เจ‚ เจฆเจธเจคเฉ€ เจ‡เฉฐเจธเจŸเจพเจฒ เจ•เจฐเจจเจพ เจชเจตเฉ‡เจ—เจพเฅค AUR เจตเจฟเฉฑเจš เจชเฉ‡เจธเจผ เจ•เฉ€เจคเฉ‡ เจ—เจ XRDP เจฒเจˆ เจชเฉˆเจš เจตเฉ€ เจฅเฉ‹เฉœเฉเจนเจพ เจชเฉเจฐเจพเจฃเจพ เจนเฉˆ, เจ‡เจธ เจฒเจˆ เจคเฉเจนเจพเจจเฉ‚เฉฐ PKGBUILD เจ…เจคเฉ‡ เจชเฉˆเจš เจจเฉ‚เฉฐ เจนเฉฑเจฅเฉ€เจ‚ เจธเฉฐเจชเจพเจฆเจฟเจค เจ•เจฐเจจเจพ เจนเฉ‹เจตเฉ‡เจ—เจพเฅค

เจ…เจธเฉ€เจ‚ AUR เจคเฉ‹เจ‚ PKGBUILDs เจจเจพเจฒ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจ•เจฒเฉ‹เจจ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ (เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจ‡เจน เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†, เจ…เจธเฉˆเจ‚เจฌเจฒเฉ€ เจฆเฉ‡ เจจเจพเจฒ, เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจพเจ‚ เจฆเฉเจ†เจฐเจพ เจธเจตเฉˆเจšเจฒเจฟเจค เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ เจฏเฉ‡, เจชเจฐ เจฒเฉ‡เจ–เจ• เจจเฉ‡ เจ‡เจน เจธเจพเจฐเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจ‡เฉฑเจ• เจธเจพเจซเจผ เจชเฉเจฐเจฃเจพเจฒเฉ€ 'เจคเฉ‡ เจ•เฉ€เจคเฉ€ เจธเฉ€):

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

เจšเจฒเฉ‹ เจชเจนเจฟเจฒเจพเจ‚ เจ–เฉเจฆ XRDP เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเฉ€เจเฅค เจšเจฒเฉ‹ เจซเจพเจˆเจฒ เจ–เฉ‹เจฒเฉเจนเฉ€เจ PKGBUILD เจ•เฉ‹เจˆ เจตเฉ€ เจŸเฉˆเจ•เจธเจŸ เจเจกเฉ€เจŸเจฐเฅค

เจ†เจ“ เจฌเจฟเจฒเจก เจชเฉˆเจฐเจพเจฎเฉ€เจŸเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจธเฉฐเจชเจพเจฆเจฟเจค เจ•เจฐเฉ€เจเฅค Git เจคเฉ‹เจ‚ XRDP เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ PKGBUILD เจตเจฟเฉฑเจš เจฌเจฟเจฒเจก เจตเจฟเฉฑเจš 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

เจ†เจ‰ เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจ เจจเฉ‚เฉฐ เจฌเฉฐเจฆ เจ•เจฐเฉ€เจเฅค PowerShell เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจชเฉเจฐเจธเจผเจพเจธเจ• เจตเจœเฉ‹เจ‚ เจนเฉ‡เจ  เจฆเจฟเฉฑเจคเฉ€ เจ•เจฎเจพเจ‚เจก เจšเจฒเจพ เจ•เฉ‡ VM เจฒเจˆ vsock เจŸเฉเจฐเจพเจ‚เจธเจชเฉ‹เจฐเจŸ เจจเฉ‚เฉฐ เจธเจฎเจฐเฉฑเจฅ เจฌเจฃเจพเจ“:

PS Admin > Set-VM -VMName ะะะ—ะ’ะะะ˜ะ•_ะœะะจะ˜ะะซ -EnhancedSessionTransportType HvSocket

เจ†เจ‰ เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจ เจจเฉ‚เฉฐ เจฆเฉเจฌเจพเจฐเจพ เจšเจพเจฒเฉ‚ เจ•เจฐเฉ€เจเฅค

เจ•เฉเจจเฉˆเจ•เจธเจผเจจ

เจœเจฟเจตเฉ‡เจ‚ เจนเฉ€ เจธเจฟเจธเจŸเจฎ เจธเจผเฉเจฐเฉ‚ เจนเฉ‹เจฃ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ XRDP เจธเฉ‡เจตเจพ เจธเจผเฉเจฐเฉ‚ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ, vmconnect เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจ‡เจธ เจจเฉ‚เฉฐ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เจฐเฉ‡เจ—เฉ€ เจ…เจคเฉ‡ เจฎเฉ€เจจเฉ‚ เจ†เจˆเจŸเจฎ เจ‰เจชเจฒเจฌเจง เจนเฉ‹ เจœเจพเจตเฉ‡เจ—เฉ€เฅค เจฆเฉ‡เจ–เฉ‹ -> เจตเจฟเจธเจคเฉเจฐเจฟเจค เจธเฉˆเจธเจผเจจ. เจœเจฆเฉ‹เจ‚ เจคเฉเจธเฉ€เจ‚ เจ‡เจธ เจ†เจˆเจŸเจฎ เจจเฉ‚เฉฐ เจšเฉเจฃเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจธเจพเจจเฉ‚เฉฐ เจธเจ•เฉเจฐเฉ€เจจ เจฐเฉˆเจœเจผเฉ‹เจฒเจฟเจŠเจธเจผเจจ เจ…เจคเฉ‡ เจŸเฉˆเจฌ 'เจคเฉ‡ เจธเฉˆเฉฑเจŸ เจ•เจฐเจจ เจฒเจˆ เจ•เจฟเจนเจพ เจœเจพเจตเฉ‡เจ—เจพ เจธเจฅเจพเจจเจ• เจธเจฐเฉ‹เจค เจ–เฉเฉฑเจฒเจฃ เจตเจพเจฒเฉ‡ เจกเจพเจ‡เจฒเจพเจ— เจตเจฟเฉฑเจš, เจคเฉเจธเฉ€เจ‚ RDP เจธเฉˆเจธเจผเจจ เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจ…เฉฑเจ—เฉ‡ เจญเฉ‡เจœเฉ‡ เจ—เจ เจกเจฟเจตเจพเจˆเจธเจพเจ‚ เจจเฉ‚เฉฐ เจšเฉเจฃ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

เจ†เจฐเจš เจฒเจˆ เจตเจงเจฟเจ† เจนเฉ‹เจ‡เจ† เจธเฉˆเจธเจผเจจ เจฎเฉ‹เจก เจธเจฎเจฐเฉฑเจฅ เจฌเจฃเจพเจ‰เจฃเจพ Linux-เจนเจพเจˆเจชเจฐ-เจตเฉ€ เจตเจฟเฉฑเจš เจฎเจนเจฟเจฎเจพเจจ
เจ†เจฐเจš เจฒเจˆ เจตเจงเจฟเจ† เจนเฉ‹เจ‡เจ† เจธเฉˆเจธเจผเจจ เจฎเฉ‹เจก เจธเจฎเจฐเฉฑเจฅ เจฌเจฃเจพเจ‰เจฃเจพ Linux-เจนเจพเจˆเจชเจฐ-เจตเฉ€ เจตเจฟเฉฑเจš เจฎเจนเจฟเจฎเจพเจจ

เจ†เจ“ เจœเฉเฉœเฉ€เจเฅค เจ…เจธเฉ€เจ‚ XRDP เจฒเจพเจ—เจ‡เจจ เจตเจฟเฉฐเจกเฉ‹ เจตเฉ‡เจ–เจพเจ‚เจ—เฉ‡:

เจ†เจฐเจš เจฒเจˆ เจตเจงเจฟเจ† เจนเฉ‹เจ‡เจ† เจธเฉˆเจธเจผเจจ เจฎเฉ‹เจก เจธเจฎเจฐเฉฑเจฅ เจฌเจฃเจพเจ‰เจฃเจพ Linux-เจนเจพเจˆเจชเจฐ-เจตเฉ€ เจตเจฟเฉฑเจš เจฎเจนเจฟเจฎเจพเจจ

เจ†เจชเจฃเจพ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจจเจพเจฎ เจ…เจคเฉ‡ เจชเจพเจธเจตเจฐเจก เจฆเจฐเจœ เจ•เจฐเฉ‹เฅค

เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเฉ‹

เจ‡เจนเจจเจพเจ‚ เจนเฉ‡เจฐเจพเจซเฉ‡เจฐเฉ€เจ†เจ‚ เจคเฉ‹เจ‚ เจฎเฉเจจเจพเจซเจผเจพ เจงเจฟเจ†เจจ เจฆเฉ‡เจฃ เจฏเฉ‹เจ— เจนเฉˆ: เจ†เจฐเจกเฉ€เจชเฉ€ เจธเฉˆเจธเจผเจจ เจเจจเจนเจพเจ‚เจธเจก เจธเฉˆเจธเจผเจจ เจคเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚ เจตเจฐเจšเฉเจ…เจฒ เจกเจฟเจธเจชเจฒเฉ‡ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจจเจพเจฒเฉ‹เจ‚ เจฌเจนเฉเจค เจœเจผเจฟเจ†เจฆเจพ เจœเจตเจพเจฌเจฆเฉ‡เจน เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆเฅค VM เจฆเฉ‡ เจ…เฉฐเจฆเจฐ RDP เจฐเจพเจนเฉ€เจ‚ เจ…เฉฑเจ—เฉ‡ เจญเฉ‡เจœเฉ€เจ†เจ‚ เจ—เจˆเจ†เจ‚ เจกเจฟเจธเจ•เจพเจ‚ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจ‰เจชเจฒเจฌเจง เจนเจจ ${HOME}/shared-drives:

เจ†เจฐเจš เจฒเจˆ เจตเจงเจฟเจ† เจนเฉ‹เจ‡เจ† เจธเฉˆเจธเจผเจจ เจฎเฉ‹เจก เจธเจฎเจฐเฉฑเจฅ เจฌเจฃเจพเจ‰เจฃเจพ Linux-เจนเจพเจˆเจชเจฐ-เจตเฉ€ เจตเจฟเฉฑเจš เจฎเจนเจฟเจฎเจพเจจ

เจ•เจฒเจฟเฉฑเจชเจฌเฉ‹เจฐเจก เจตเจงเฉ€เจ† เจ•เฉฐเจฎ เจ•เจฐ เจฐเจฟเจนเจพ เจนเฉˆเฅค เจคเฉเจธเฉ€เจ‚ เจ…เฉฐเจฆเจฐ เจชเฉเจฐเจฟเฉฐเจŸเจฐ เจจเจนเฉ€เจ‚ เจธเฉเฉฑเจŸ เจธเจ•เจฆเฉ‡, เจ‡เจน เจจเจพ เจธเจฟเจฐเจซเจผ เจธเจฎเจฐเจฅเจฟเจค เจนเฉˆ, เจธเจ—เฉ‹เจ‚ เจ‡เจน เจตเฉ€ เจนเฉˆ เจกเจฟเจธเจ• เจซเจพเจฐเจตเจฐเจกเจฟเฉฐเจ— เจจเฉ‚เฉฐ เจคเฉ‹เฉœเจฆเจพ เจนเฉˆ. เจ†เจตเจพเจœเจผ เจตเฉ€ เจ•เฉฐเจฎ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเฉ€, เจชเจฐ เจฒเฉ‡เจ–เจ• เจจเฉ‚เฉฐ เจ‡เจธ เจฆเฉ€ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจธเฉ€เฅค Alt + Tab เจตเจฐเจ—เฉ‡ เจ•เฉ€เจฌเฉ‹เจฐเจก เจธเจผเจพเจฐเจŸเจ•เฉฑเจŸเจพเจ‚ เจจเฉ‚เฉฐ เจ•เฉˆเจชเจšเจฐ เจ•เจฐเจจ เจฒเจˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ vmconnect เจจเฉ‚เฉฐ เจชเฉ‚เจฐเฉ€ เจธเจ•เฉเจฐเฉ€เจจ 'เจคเฉ‡ เจตเจฟเจธเจคเจพเจฐ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค

ะ•ัะปะธ ะฟะพ ะบะฐะบะธะผ-ะปะธะฑะพ ะฟั€ะธั‡ะธะฝะฐะผ ะตัั‚ัŒ ะถะตะปะฐะฝะธะต ะธัะฟะพะปัŒะทะพะฒะฐั‚ัŒ ะฒะผะตัั‚ะพ ะฟั€ะธะปะพะถะตะฝะธั vmconnect ะฒัั‚ั€ะพะตะฝะฝั‹ะน ะฒ Windows RDP-ะบะปะธะตะฝั‚ ะธะปะธ, ะฝะฐะฟั€ะธะผะตั€, ะฟะพะดะบะปัŽั‡ะฐั‚ัŒัั ะบ ัั‚ะพะน ะผะฐัˆะธะฝะต ะธะท ะดั€ัƒะณะพะน ะผะฐัˆะธะฝั‹, ั‚ะพ ะฝัƒะถะฝะพ ะฑัƒะดะตั‚ ะฟะพะผะตะฝัั‚ัŒ ะฒ ั„ะฐะนะปะต /etc/xrdp/xrdp.ini port 'เจคเฉ‡ tcp://:3389. เจœเฉ‡เจ•เจฐ เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจ เจกเจฟเจซเจพเจฒเจŸ เจธเจตเจฟเฉฑเจš เจจเจพเจฒ เจœเฉเฉœเฉ€ เจนเฉ‹เจˆ เจนเฉˆ เจ…เจคเฉ‡ DHCP เจฐเจพเจนเฉ€เจ‚ เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจฆเฉ€ เจนเฉˆ, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจนเฉ‹เจธเจŸ เจคเฉ‹เจ‚ เจ‡เจธ เจจเจพเจฒ เจœเฉเฉœ เจธเจ•เจฆเฉ‡ เจนเฉ‹ ะฝะฐะทะฒะฐะฝะธะต_ะผะฐัˆะธะฝั‹.mshome.net. เจคเฉเจธเฉ€เจ‚ เจ‡เจจเจนเจพเจ‚เจธเจก เจฎเฉ‹เจก เจจเฉ‚เฉฐ เจฌเฉฐเจฆ เจ•เจฐเจ•เฉ‡ เจธเจฟเจฐเจซ vmconnect เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจคเฉ‹เจ‚ TTY เจตเจฟเฉฑเจš เจฒเฉŒเจ—เจ‡เจจ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

เจตเจฐเจคเฉ‡ เจ—เจ เจธเจฐเฉ‹เจค:

  1. เจนเจพเจˆเจชเจฐ-เจตเฉ€ เจ†เจฐเจ• เจตเจฟเจ•เฉ€
  2. GitHub 'เจคเฉ‡ เจฌเฉฑเจ— เจฐเจฟเจชเฉ‹เจฐเจŸเจพเจ‚: 1, 2

เจธเจฐเฉ‹เจค: www.habr.com

DDoS เจธเฉเจฐเฉฑเจ–เจฟเจ†, VPS VDS เจธเจฐเจตเจฐเจพเจ‚ เจตเจพเจฒเฉ€เจ†เจ‚ เจธเจพเจˆเจŸเจพเจ‚ เจฒเจˆ เจญเจฐเฉ‹เจธเฉ‡เจฏเฉ‹เจ— เจนเฉ‹เจธเจŸเจฟเฉฐเจ— เจ–เจฐเฉ€เจฆเฉ‹ ๐Ÿ”ฅ DDoS เจธเฉเจฐเฉฑเจ–เจฟเจ†, VPS VDS เจธเจฐเจตเจฐเจพเจ‚ เจจเจพเจฒ เจญเจฐเฉ‹เจธเฉ‡เจฏเฉ‹เจ— เจตเฉˆเฉฑเจฌเจธเจพเจˆเจŸ เจนเฉ‹เจธเจŸเจฟเฉฐเจ— เจ–เจฐเฉ€เจฆเฉ‹ | ProHoster