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
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:
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
Į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
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į:
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.
Darbalaukio ryšys
Mūsų konfigūracija nenaudoja šifravimo, todėl tinklo paketus gali perimti užpuolikai. Be to, VNC serveriuose gana dažnai
sudo netstat -ap |more
„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ų.
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.,
Šaltinis: www.habr.com