VPS sistemoje Linux su grafine sąsaja: VNC serverio paleidimas Ubuntu 18.04

VPS sistemoje Linux su grafine sąsaja: VNC serverio paleidimas Ubuntu 18.04
Kai kurie vartotojai išsinuomoja palyginti nebrangų VPS su „Windows“, kad galėtų vykdyti nuotolinio darbalaukio paslaugas. Tą patį galima padaryti „Linux“ nepriimant savo aparatūros duomenų centre arba neišnuomojus dedikuoto serverio. Kai kuriems žmonėms reikia pažįstamos grafinės aplinkos testavimui ir plėtrai arba nuotolinio darbalaukio su plačiu kanalu darbui iš mobiliųjų įrenginių. Yra daug galimybių naudoti nuotolinio kadrų buferio (RFB) protokolu pagrįstą virtualiojo tinklo skaičiavimo (VNC) sistemą. Šiame trumpame straipsnyje mes jums pasakysime, kaip jį sukonfigūruoti virtualioje mašinoje su bet kokiu hipervizoriumi.

Turinys:

VNC serverio pasirinkimas
Diegimas ir konfigūravimas
Paslaugos paleidimas per systemd
Darbalaukio ryšys

VNC serverio pasirinkimas

VNC paslauga gali būti integruota į virtualizacijos sistemą, o hipervizorius sujungs ją su emuliuojamais įrenginiais ir nereikės jokios papildomos konfigūracijos. Ši parinktis apima daug papildomų išlaidų ir ją palaiko ne visi teikėjai – net ir naudojant mažiau resursų reikalaujantį diegimą, kai vietoj tikro grafikos įrenginio emuliavimo į virtualią mašiną perkeliama supaprastinta abstrakcija (framebuffer). Kartais VNC serveris yra susietas su veikiančiu X serveriu, tačiau šis būdas labiau tinka prieigai prie fizinės mašinos, o virtualioje tai sukelia nemažai techninių sunkumų. Lengviausias būdas įdiegti VNC serverį yra naudojant įmontuotą X serverį. Jai nereikia fizinių įrenginių (vaizdo adapterio, klaviatūros ir pelės) ar jų emuliacijos naudojant hipervizorių, todėl tinka bet kokio tipo VPS.

Diegimas ir konfigūravimas

Mums reikės virtualios mašinos su Ubuntu Server 18.04 LTS numatytoje konfigūracijoje. Standartinėse šio platinimo saugyklose yra keli VNC serveriai: TightVNC, TigrasVNC, x11vnc ir kiti. Mes apsistojome ties TigerVNC – dabartine TightVNC šakute, kurios kūrėjas nepalaiko. Kitų serverių nustatymas atliekamas panašiai. Taip pat reikia pasirinkti darbalaukio aplinką: optimalus variantas, mūsų nuomone, būtų XFCE dėl santykinai žemų reikalavimų skaičiavimo ištekliams. Norintys gali įdiegti kitą DE arba WM: viskas priklauso nuo asmeninių pageidavimų, tačiau programinės įrangos pasirinkimas tiesiogiai įtakoja RAM ir skaičiavimo branduolių poreikį.

VPS sistemoje Linux su grafine sąsaja: VNC serverio paleidimas Ubuntu 18.04

Darbalaukio aplinkos su visomis priklausomybėmis diegimas atliekamas naudojant šią komandą:

sudo apt-get install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils

Tada turite įdiegti VNC serverį:

sudo apt-get install tigervnc-standalone-server tigervnc-common

Paleisti jį kaip supervartotoją yra bloga idėja. Sukurkite vartotoją ir grupę:

sudo adduser vnc

VPS sistemoje Linux su grafine sąsaja: VNC serverio paleidimas Ubuntu 18.04

Įtraukime vartotoją į sudo grupę, kad jis galėtų atlikti su administravimu susijusias užduotis. Jei tokio poreikio nėra, galite praleisti šį veiksmą:

sudo gpasswd -a vnc sudo

Kitas žingsnis yra paleisti VNC serverį su vnc vartotojo teisėmis, kad būtų sukurtas saugus slaptažodis ir konfigūracijos failai ~/.vnc/ kataloge. Slaptažodžio ilgis gali būti nuo 6 iki 8 simbolių (papildomi simboliai nupjaunami). Jei reikia, slaptažodis taip pat nustatomas tik peržiūrai, t.y. be prieigos prie klaviatūros ir pelės. Šios komandos vykdomos kaip vnc vartotojas:

su - vnc
vncserver -localhost no

VPS sistemoje Linux su grafine sąsaja: VNC serverio paleidimas Ubuntu 18.04
Pagal numatytuosius nustatymus RFB protokolas naudoja TCP prievadų diapazoną nuo 5900 iki 5906 - tai yra vadinamasis. ekrano prievadai, kurių kiekvienas atitinka X serverio ekraną. Šiuo atveju prievadai yra susieti su ekranais nuo :0 iki :6. Mūsų paleistas VNC serverio egzempliorius klauso 5901 prievado (ekranas: 1). Kiti egzemplioriai gali veikti kituose prievaduose su ekranais :2, :3 ir tt Prieš tolesnę konfigūraciją turite sustabdyti serverį:

vncserver -kill :1

Komanda turėtų rodyti maždaug taip: „Killing Xtigervnc proceso ID 18105... sėkmės!

Kai TigerVNC paleidžiamas, jis paleidžia ~/.vnc/xstartup scenarijų, kad sukonfigūruotų konfigūracijos nustatymus. Sukurkime savo scenarijų, pirmiausia išsaugodami atsarginę esamo kopiją, jei ji yra:

mv ~/.vnc/xstartup ~/.vnc/xstartup.b
nano ~/.vnc/xstartup

XFCE darbalaukio aplinkos sesija pradedama naudojant šį xstartup scenarijų:

#!/bin/bash
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
xrdb $HOME/.Xresources
exec /usr/bin/startxfce4 &

Komanda xrdb reikalinga, kad VNC galėtų nuskaityti .Xresources failą pagrindiniame kataloge. Čia vartotojas gali nustatyti įvairius grafinius darbalaukio nustatymus: šrifto atvaizdavimą, terminalo spalvas, žymeklio temas ir kt. Scenarijus turi būti vykdomas:

chmod 755 ~/.vnc/xstartup

Tai užbaigia VNC serverio sąranką. Jei paleisite jį naudodami komandą vncserver -localhost no (kaip vnc vartotojas), galite prisijungti naudodami anksčiau nurodytą slaptažodį ir pamatyti šį paveikslėlį:

VPS sistemoje Linux su grafine sąsaja: VNC serverio paleidimas Ubuntu 18.04

Paslaugos paleidimas per systemd

Rankinis VNC serverio paleidimas netinka koviniam naudojimui, todėl sukonfigūruosime sistemos paslaugą. Komandos vykdomos kaip root (mes naudojame sudo). Pirmiausia sukurkime naują mūsų serverio vieneto failą:

sudo nano /etc/systemd/system/[email protected]

Simbolis @ pavadinime leidžia perduoti argumentą paslaugai konfigūruoti. Mūsų atveju jis nurodo VNC rodymo prievadą. Vieneto failą sudaro keli skyriai:

[Unit]
Description=TigerVNC server
After=syslog.target network.target

[Service]
Type=simple
User=vnc 
Group=vnc 
WorkingDirectory=/home/vnc 
PIDFile=/home/vnc/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x960 :%i
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target

Tada turite pranešti sistemai apie naują failą ir jį suaktyvinti:

sudo systemctl daemon-reload
sudo systemctl enable [email protected]

Skaičius 1 pavadinime nurodo ekrano numerį.

Sustabdykite VNC serverį, paleiskite jį kaip paslaugą ir patikrinkite būseną:

# от имени пользователя vnc 
vncserver -kill :1

# с привилегиями суперпользователя
sudo systemctl start vncserver@1
sudo systemctl status vncserver@1

Jei paslauga veikia, turėtume gauti kažką panašaus.

VPS sistemoje Linux su grafine sąsaja: VNC serverio paleidimas Ubuntu 18.04

Darbalaukio ryšys

Mūsų konfigūracija nenaudoja šifravimo, todėl tinklo paketus gali perimti užpuolikai. Be to, VNC serveriuose gana dažnai rasti pažeidžiamumų, todėl neturėtumėte jų atidaryti, kad galėtumėte pasiekti iš interneto. Norėdami saugiai prisijungti prie vietinio kompiuterio, srautą turite supakuoti į SSH tunelį ir sukonfigūruoti VNC klientą. Sistemoje Windows galite naudoti grafinį SSH klientą (pvz., PuTTY). Saugumo sumetimais „TigerVNC“ serveryje klauso tik „localhost“ ir nėra tiesiogiai pasiekiamas iš viešųjų tinklų:


sudo netstat -ap |more

VPS sistemoje Linux su grafine sąsaja: VNC serverio paleidimas Ubuntu 18.04
„Linux“, „FreeBSD“, „OS X“ ir kitose į UNIX panašiose OSe kliento kompiuterio tunelis sukuriamas naudojant „ssh“ programą (sshd turi veikti VNC serveryje):

ssh -L 5901:127.0.0.1:5901 -C -N -l vnc vnc_server_ip

Parinktis -L susieja nuotolinio ryšio prievadą 5901 su 5901 prievadu vietiniame priegloboje. Parinktis -C įgalina glaudinimą, o parinktis -N nurodo ssh nevykdyti nuotolinės komandos. Parinktis -l nurodo nuotolinio prisijungimo prisijungimą.

Vietiniame kompiuteryje nustatę tunelį, turite paleisti VNC klientą ir užmegzti ryšį su pagrindiniu kompiuteriu 127.0.0.1:5901 (localhost:5901), naudodami anksčiau nurodytą slaptažodį, kad pasiektumėte VNC serverį. Dabar galime saugiai bendrauti per šifruotą tunelį su XFCE grafine darbalaukio aplinka VPS. Ekrano kopijoje aukščiausia programa veikia terminalo emuliatoriuje, kad parodytų, kaip virtualioji mašina naudoja mažai kompiuterinių išteklių. Tada viskas priklausys nuo vartotojo programų.

VPS sistemoje Linux su grafine sąsaja: VNC serverio paleidimas Ubuntu 18.04
Galite įdiegti ir konfigūruoti VNC serverį Linux sistemoje beveik bet kuriame VPS. Tam nereikia brangių ir daug išteklių reikalaujančių konfigūracijų su vaizdo adapterio emuliacija arba komercinės programinės įrangos licencijų įsigijimo. Be sistemos aptarnavimo parinkties, kurią svarstėme, yra ir kitų: paleisti demono režimu (per /etc/rc.local), kai sistema paleidžiama, arba pagal poreikį per inetd. Pastarasis įdomus kuriant kelių vartotojų konfigūracijas. Interneto superserveris paleis VNC serverį ir prijungs prie jo klientą, o VNC serveris sukurs naują ekraną ir pradės seansą. Norėdami autentifikuoti joje, galite naudoti grafinę ekrano tvarkyklę (pvz., LightDM), o atjungus klientą seansas bus uždarytas ir visos su ekranu dirbančios programos nutrauktos.

VPS sistemoje Linux su grafine sąsaja: VNC serverio paleidimas Ubuntu 18.04

Šaltinis: www.habr.com

Добавить комментарий