В iddiskutejna t-tmexxija ta 'server VNC fuq magna virtwali ta' kull tip. Din l-għażla għandha ħafna żvantaġġi, li wieħed ewlieni minnhom huwa r-rekwiżiti għoljin għat-trażmissjoni tal-kanali tat-trażmissjoni tad-dejta. Illum se nippruvaw nikkonnettjaw ma' desktop grafiku fuq Linux permezz ta' RDP (Remote Desktop Protocol). Is-sistema VNC hija bbażata fuq it-trażmissjoni ta 'arrays ta' pixels bl-użu tal-protokoll RFB (Remote Framebuffer), u RDP jippermettilek li tibgħat primittivi ta 'grafika aktar kumplessi u kmandi ta' livell għoli. Tipikament jintuża biex jospita Servizzi ta' Desktop Remote fuq il-Windows, iżda servers għal Linux huma wkoll disponibbli.
Werrej:
Installazzjoni tal-ambjent grafiku
Se nieħdu magna virtwali b'Ubuntu Server 18.04 LTS b'żewġ cores tal-kompjuters, erba 'gigabytes ta' RAM u għoxrin gigabyte hard drive (HDD). Konfigurazzjoni aktar dgħajfa mhix adattata għal desktop grafiku, għalkemm dan jiddependi fuq il-kompiti li qed jiġu solvuti. Tinsiex tuża l-kodiċi promozzjonali Habrahabr10 biex tikseb skont ta' 10% fuq l-ordni tiegħek.

L-installazzjoni tal-ambjent tad-desktop bid-dipendenzi kollha ssir bil-kmand li ġej:
sudo apt-get install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utilsBħal fil-każ preċedenti, għażilna XFCE minħabba r-rekwiżiti tar-riżorsi tal-kompjuter relattivament baxxi tiegħu.
Russifikazzjoni tas-server u installazzjoni tas-softwer
Ħafna drabi magni virtwali huma skjerati biss b'lokalizzazzjoni bl-Ingliż. Fuq id-desktop jista 'jkollok bżonn Russu, li huwa faċli biex twaqqaf. L-ewwel, ejja ninstallaw traduzzjonijiet għall-programmi tas-sistema:
sudo apt-get install language-pack-ruEjja nwaqqfu l-lokalizzazzjoni:
sudo update-locale LANG=ru_RU.UTF-8L-istess effett jista 'jinkiseb billi teditja manwalment il-/etc/default/locale.
Għall-lokalizzazzjoni ta' GNOME u KDE, ir-repożitorju għandu l-pakketti language-pack-gnome-ru u language-pack-kde-ru - ser ikollok bżonnhom jekk tuża programmi minn dawn l-ambjenti tad-desktop. F'XFCE, it-traduzzjonijiet huma installati bl-applikazzjonijiet. Sussegwentement tista' tinstalla d-dizzjunarji:
# Словари для проверки орфографии
sudo apt-get install hunspell hunspell-ru
# Тезаурус для LibreOffice
sudo apt-get install mythes-ru
# Англо-русский словарь в формате DICT
sudo apt-get install mueller7-dictBarra minn hekk, l-installazzjoni ta’ traduzzjonijiet tista’ tkun meħtieġa għal xi programmi ta’ applikazzjoni:
# Браузер Firefox
sudo apt-get install firefox firefox-locale-ru
# Почтовый клиент Thunderbird
sudo apt-get install thunderbird thunderbird-locale-ru
# Офисный пакет LibreOffice
sudo apt-get install libreoffice libreoffice-l10n-ru libreoffice-help-ruDan itemm il-preparazzjoni tal-ambjent tad-desktop, li jibqa 'huwa li jiġi kkonfigurat is-server RDP.
Installazzjoni u konfigurazzjoni ta' server RDP
Ir-repożitorji Ubuntu għandhom server Xrdp distribwit liberament, li se nużaw:
sudo apt-get install xrdpJekk kollox mar tajjeb, is-server għandu jibda awtomatikament:
sudo systemctl status xrdp 
Is-server Xrdp jaħdem bi drittijiet tal-utent xrdp u b'mod awtomatiku jieħu ċ-ċertifikat /etc/ssl/private/ssl-cert-snakeoil.key, li jista' jiġi sostitwit b'dak tiegħek. Biex ikollok aċċess biex taqra l-fajl, trid iżżid l-utent mal-grupp ssl-cert:
sudo adduser xrdp ssl-certIs-settings default jistgħu jinstabu fil-fajl /etc/default/xrdp, u l-fajls l-oħra kollha tal-konfigurazzjoni tas-server jinsabu fid-direttorju /etc/xrdp. Il-parametri ewlenin jinsabu fil-fajl xrdp.ini, li m'għandux għalfejn jinbidel. Il-konfigurazzjoni hija dokumentata sew, u l-manpages korrispondenti huma inklużi:
man xrdp.ini
man xrdpLi jibqa 'huwa li teditja l-iskrittura /etc/xrdp/startwm.sh, li tiġi eżegwita meta s-sessjoni tal-utent tiġi inizjalizzata. L-ewwel, ejja nagħmlu kopja ta 'backup tal-iskrittura mid-distribuzzjoni:
sudo mv /etc/xrdp/startwm.sh /etc/xrdp/startwm.b
sudo nano /etc/xrdp/startwm.shBiex tibda l-ambjent tad-desktop XFCE, ikollok bzonn skript xi ħaġa bħal din:
#!/bin/sh
if [ -r /etc/default/locale ]; then
. /etc/default/locale
export LANG LANGUAGE
fi
exec /usr/bin/startxfce4Jekk jogħġbok innota: fl-iskripts huwa aħjar li tikteb il-mogħdija sħiħa għall-fajls eżekutibbli - dan huwa vizzju tajjeb. Ejja nagħmlu l-iskript eżekutibbli u f'dan il-punt is-setup tas-server Xrdp tista 'titqies kompluta:
sudo chmod 755 /etc/xrdp/startwm.shIbda mill-ġdid is-server:
sudo systemctl restart xrdp
Twaqqif ta 'firewall
B'mod awtomatiku, Xrdp jisma' l-port TCP 3389 fuq l-interfaces kollha. Skont il-konfigurazzjoni tas-server virtwali, jista 'jkollok bżonn tikkonfigura firewall Netfilter. Fuq Linux dan normalment isir bl-użu tal-utilità iptables, iżda fuq Ubuntu huwa aħjar li tuża ufw. Jekk l-indirizz IP tal-klijent huwa magħruf, il-konfigurazzjoni titwettaq bil-kmand li ġej:
sudo ufw allow from IP_Address to any port 3389Tista' tippermetti konnessjonijiet minn kwalunkwe IP bħal dan:
sudo ufw allow 3389Il-protokoll RDP jappoġġja l-encryption, iżda l-esponiment tas-server Xrdp għal netwerks pubbliċi hija idea ħażina. Jekk il-klijent m'għandux IP fiss, is-server għandu jisma' biss lil localhost biex iżid is-sigurtà. L-aħjar huwa li taċċessaha permezz ta 'mina SSH, li se terġa' tindirizza b'mod sigur it-traffiku mill-kompjuter tal-klijent. Għandna approċċ simili għal server VNC.
Konnessjoni ma' server RDP
Biex taħdem mal-ambjent tad-desktop, huwa aħjar li toħloq utent mhux privileġġjat separat:
sudo adduser rdpuser 
Ejja nżidu l-utent mal-grupp sudo sabiex ikun jista 'jwettaq kompiti relatati mal-amministrazzjoni. Jekk ma jkunx hemm tali ħtieġa, tista 'taqbeż dan il-pass:
sudo gpasswd -a rdpuser sudoTista' tikkonnettja mas-server billi tuża kwalunkwe klijent RDP, inkluż il-klijent tas-Servizzi tad-Desktop mill-bogħod Windows inkorporat. Jekk Xrdp qed jisma 'l-interface esterna, l-ebda azzjonijiet addizzjonali ma jkunu meħtieġa. Huwa biżżejjed li tispeċifika l-indirizz IP tal-VPS, l-isem tal-utent u l-password fis-settings tal-konnessjoni. Wara l-konnessjoni, se naraw xi ħaġa bħal din:

Wara s-setup inizjali tal-ambjent tad-desktop, se jkollna desktop sħiħ. Kif tistgħu taraw, ma tikkonsmax ħafna riżorsi, għalkemm kollox jiddependi fuq l-applikazzjonijiet użati.

Jekk is-server Xrdp jisma' biss lil localhost, it-traffiku fuq il-kompjuter klijent ikollu jiġi ppakkjat f'mina SSH (sshd irid ikun qed jaħdem fuq il-VPS). Fuq Windows, tista 'tuża klijent SSH grafiku (per eżempju, PuTTY), u fuq sistemi UNIX għandek bżonn l-utilità ssh:
ssh -L 3389:127.0.0.1:3389 -C -N -l rdpuser RDP_server_ipWara li l-mina tiġi inizjalizzata, il-klijent RDP ma jibqax jgħaqqad mas-server remot, iżda mal-host lokali.
Huwa aktar diffiċli b'apparat mobbli: klijenti SSH kapaċi jgħollu mina se jkollhom jinxtraw, u f'iOS u iPadOS, l-operat fl-isfond ta 'applikazzjonijiet ta' partijiet terzi huwa diffiċli minħabba ottimizzazzjoni wisq tajba tal-konsum tal-enerġija. Fuq l-iPhone u l-iPad, ma tkunx tista' toħloq mina f'applikazzjoni separata; ser ikollok bżonn applikazzjoni tal-ħsad li tista' hi stess tistabbilixxi konnessjoni RDP permezz ta' SSH. Bħal, pereżempju .
Maniġer tas-Sessjoni u Sessjonijiet tal-Utenti
Il-ħila għal xogħol multi-utenti hija implimentata direttament fis-server Xrdp u ma teħtieġx konfigurazzjoni addizzjonali. Wara li jibda s-servizz permezz ta 'systemd, proċess wieħed jaħdem fil-modalità daemon, jisma' fuq il-port 3389 u jikkomunika permezz tal-localhost mal-maniġer tas-sessjoni.
ps aux |grep xrdp 
sudo netstat -ap |grep xrdp 
Il-maniġer tas-sessjoni ġeneralment ma jkunx viżibbli għall-utenti, minħabba li l-login u l-password speċifikati fis-settings tal-klijent jiġu trasferiti lejh awtomatikament. Jekk dan ma jseħħx jew ikun hemm żball waqt l-awtentikazzjoni, se tidher tieqa tal-login interattiva minflok id-desktop.

It-tnedija awtomatika tal-maniġer tas-sessjoni hija speċifikata fil-fajl /etc/default/xrdp, u l-konfigurazzjoni hija maħżuna f'/etc/xrdp/sesman.ini. B'mod awtomatiku jidher xi ħaġa bħal din:
[Globals]
ListenAddress=127.0.0.1
ListenPort=3350
EnableUserWindowManager=true
UserWindowManager=startwm.sh
DefaultWindowManager=startwm.sh
[Security]
AllowRootLogin=true
MaxLoginRetry=4
TerminalServerUsers=tsusers
TerminalServerAdmins=tsadmins
; When AlwaysGroupCheck=false access will be permitted
; if the group TerminalServerUsers is not defined.
AlwaysGroupCheck=false
[Sessions]M'għandekx għalfejn tbiddel xejn hawn, trid sempliċement tiddiżattiva l-login bid-drittijiet tal-għeruq (AllowRootLogin=false). Għal kull utent awtorizzat fis-sistema, jitnieda proċess xrdp separat: jekk tiskonnettja mingħajr ma ttemm is-sessjoni, il-proċessi tal-utent se jkomplu jaħdmu b'mod awtomatiku, u tista 'tikkonnettja mas-sessjoni mill-ġdid. Is-settings jistgħu jinbidlu fil-fajl /etc/xrdp/sesman.ini (sezzjoni [Sessjonijiet]).
Qlib tat-taqsim tat-tastiera
Ġeneralment ma jkun hemm l-ebda problemi bi clipboard b'żewġ direzzjonijiet, iżda bit-tqassim tat-tastiera Russa jkollok tilgħab ftit (il-lokal Russu għandu jkun diġà ). Ejja neditjaw is-settings tat-tastiera tas-server Xrdp:
sudo nano /etc/xrdp/xrdp_keyboard.iniTrid iżżid il-linji li ġejjin fl-aħħar tal-fajl tal-konfigurazzjoni:
[rdp_keyboard_ru]
keyboard_type=4
keyboard_type=7
keyboard_subtype=1
model=pc105
options=grp:alt_shift_toggle
rdp_layouts=default_rdp_layouts
layouts_map=layouts_map_ru
[layouts_map_ru]
rdp_layout_us=us,ru
rdp_layout_ru=us,ruLi jibqa 'huwa li tissejvja l-fajl u terġa' tibda Xrdp:
sudo systemctl restart xrdpKif tistgħu taraw, mhuwiex diffiċli li twaqqaf server RDP fuq Linux VPS, iżda Diġà ddiskutejna s-setup tal-VNC. Minbarra dawn it-teknoloġiji, hemm għażla oħra interessanti: is-sistema X3Go li tuża protokoll NX 2 modifikat. Se nittrattawha fil-pubblikazzjoni li jmiss.
Sors: www.habr.com
