Mõned kasutajad rendivad kaugtöölauateenuste käitamiseks suhteliselt odavat VPS-i Windowsiga. Sama saab teha Linuxis ilma oma riistvara andmekeskuses majutamata või spetsiaalset serverit rentimata. Mõned inimesed vajavad testimiseks ja arendamiseks tuttavat graafilist keskkonda või mobiilseadmetest töötamiseks laia kanaliga kaugtöölauda. Remote FrameBuffer (RFB) protokollipõhise virtuaalse võrgu andmetöötlussüsteemi (VNC) kasutamiseks on palju võimalusi. Selles lühikeses artiklis räägime teile, kuidas seda virtuaalses masinas mis tahes hüperviisoriga konfigureerida.
Оглавление
VNC-serveri valimine
VNC-teenuse saab virtualiseerimissüsteemi sisse ehitada ja hüperviisor ühendab selle emuleeritud seadmetega ning täiendavat konfigureerimist pole vaja. See valik hõlmab märkimisväärseid üldkulusid ja seda ei toeta kõik pakkujad – isegi vähem ressursimahuka juurutamise korral, kui tegeliku graafikaseadme emuleerimise asemel kantakse virtuaalsesse masinasse üle lihtsustatud abstraktsioon (kaadripuhver). Mõnikord on VNC-server seotud töötava X-serveriga, kuid see meetod sobib rohkem füüsilisele masinale juurdepääsuks ja virtuaalsel masinal tekitab see mitmeid tehnilisi raskusi. Lihtsaim viis VNC-serveri installimiseks on sisseehitatud X-server. See ei vaja füüsilisi seadmeid (videoadapter, klaviatuur ja hiir) ega nende emuleerimist hüperviisori abil ning sobib seetõttu igat tüüpi VPS-i jaoks.
Paigaldamine ja seadistamine
Vajame virtuaalset masinat, mille vaikekonfiguratsioonis on Ubuntu Server 18.04 LTS. Selle distributsiooni standardsetes hoidlates on mitu VNC-serverit:
Kõigi sõltuvustega töölauakeskkonna installimine toimub järgmise käsuga:
sudo apt-get install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils
Järgmisena peate installima VNC-serveri:
sudo apt-get install tigervnc-standalone-server tigervnc-common
Selle käivitamine superkasutajana on halb mõte. Looge kasutaja ja grupp:
sudo adduser vnc
Lisame kasutaja sudo gruppi, et ta saaks täita administreerimisega seotud ülesandeid. Kui sellist vajadust pole, võite selle sammu vahele jätta:
sudo gpasswd -a vnc sudo
Järgmine samm on VNC-serveri käivitamine vnc-kasutajaõigustega, et luua kataloogis ~/.vnc/ turvaline parool ja konfiguratsioonifailid. Parooli pikkus võib olla 6 kuni 8 tähemärki (lisamärgid on ära lõigatud). Vajadusel seatakse parool ka ainult vaatamiseks, s.t. ilma juurdepääsuta klaviatuurile ja hiirele. Vnc kasutajana käivitatakse järgmised käsud:
su - vnc
vncserver -localhost no
Vaikimisi kasutab RFB protokoll TCP pordi vahemikku 5900 kuni 5906 – see on nn. kuvapordid, millest igaüks vastab X-serveri ekraanile. Sel juhul on pordid seotud ekraanidega vahemikus :0 kuni :6. Meie käivitatud VNC-serveri eksemplar kuulab porti 5901 (ekraan: 1). Teised eksemplarid võivad töötada muude portidega, mille ekraanid on :2, :3 jne. Enne edasist seadistamist peate serveri seiskama:
vncserver -kill :1
Käsk peaks kuvama midagi sellist: "Killing Xtigervnc protsessi ID 18105... edu!"
Kui TigerVNC käivitub, käivitab see konfiguratsiooniseadete konfigureerimiseks skripti ~/.vnc/xstartup. Loome oma skripti, salvestades esmalt olemasoleva varukoopia, kui see on olemas:
mv ~/.vnc/xstartup ~/.vnc/xstartup.b
nano ~/.vnc/xstartup
XFCE töölauakeskkonna seansi käivitab järgmine xstartup skript:
#!/bin/bash
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
xrdb $HOME/.Xresources
exec /usr/bin/startxfce4 &
Käsk xrdb on vajalik selleks, et VNC saaks lugeda kodukataloogis oleva .Xresources-faili. Seal saab kasutaja määrata erinevaid graafilisi töölaua sätteid: fondi renderdus, terminali värvid, kursori teemad jne. Skript tuleb muuta käivitatavaks:
chmod 755 ~/.vnc/xstartup
See lõpetab VNC-serveri seadistamise. Kui käivitate selle käsuga vncserver -localhost no (vnc kasutajana), saate ühenduse luua eelnevalt määratud parooliga ja näha järgmist pilti:
Teenuse käivitamine systemd kaudu
VNC-serveri käsitsi käivitamine ei sobi võitluseks kasutamiseks, seega konfigureerime süsteemiteenuse. Käsud täidetakse administraatorina (kasutame sudo). Kõigepealt loome oma serveri jaoks uue üksusefaili:
sudo nano /etc/systemd/system/[email protected]
Nimes olev sümbol @ võimaldab teil edastada argumendi teenuse konfigureerimiseks. Meie puhul määrab see VNC kuvapordi. Üksuse fail koosneb mitmest jaotisest:
[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
Seejärel peate süsteemid uuest failist teavitama ja selle aktiveerima:
sudo systemctl daemon-reload
sudo systemctl enable [email protected]
Nimes olev number 1 määrab ekraani numbri.
Peatage VNC-server, käivitage see teenusena ja kontrollige olekut:
# от имени пользователя vnc
vncserver -kill :1
# с привилегиями суперпользователя
sudo systemctl start vncserver@1
sudo systemctl status vncserver@1
Kui teenus töötab, peaksime saama midagi sellist.
Töölaua ühendus
Meie konfiguratsioon ei kasuta krüptimist, nii et ründajad võivad võrgupakette kinni pidada. Lisaks VNC serverites üsna sageli
sudo netstat -ap |more
Linuxis, FreeBSD-s, OS X-is ja teistes UNIX-i sarnastes operatsioonisüsteemides tehakse klientarvutist tunnel ssh-utiliidi abil (sshd peab töötama VNC-serveris):
ssh -L 5901:127.0.0.1:5901 -C -N -l vnc vnc_server_ip
Valik -L seob kaugühenduse pordi 5901 kohaliku hosti pordiga 5901. Valik -C võimaldab tihendamist ja suvand -N käsib ssh-l kaugkäsku mitte käivitada. Valik -l määrab kaugsisselogimiseks sisselogimise.
Pärast tunneli seadistamist kohalikus arvutis peate käivitama VNC-kliendi ja looma ühenduse hostiga 127.0.0.1:5901 (localhost:5901), kasutades VNC-serverile juurdepääsuks eelnevalt määratud parooli. Nüüd saame VPS-i XFCE graafilise töölauakeskkonnaga turvaliselt suhelda krüpteeritud tunneli kaudu. Ekraanipildil töötab terminali emulaatoris tipputiliit, mis näitab virtuaalmasina vähest arvutusressursside tarbimist. Siis sõltub kõik kasutaja rakendustest.
Saate installida ja konfigureerida VNC-serveri Linuxis peaaegu igas VPS-is. See ei nõua kalleid ja ressursimahukaid konfiguratsioone koos videoadapteri emulatsiooniga ega kaubandusliku tarkvara litsentside ostmist. Lisaks kaalutletud süsteemiteenuse valikule on ka teisi: käivitamine deemonirežiimis (/etc/rc.local kaudu) süsteemi käivitumisel või nõudmisel inetd kaudu. Viimane on huvitav mitme kasutaja konfiguratsioonide loomiseks. Interneti superserver käivitab VNC serveri ja ühendab sellega kliendi ning VNC server loob uue ekraani ja alustab seanssi. Selles autentimiseks võite kasutada graafilist kuvahaldurit (näiteks
Allikas: www.habr.com