Jotkut käyttäjät vuokraavat suhteellisen halvan VPS:n Windowsilla käyttääkseen etätyöpöytäpalveluita. Sama voidaan tehdä Linuxissa isännöimättä omaa laitteistoasi datakeskuksessa tai vuokraamatta omaa palvelinta. Jotkut tarvitsevat tutun graafisen ympäristön testausta ja kehitystä varten tai etätyöpöydän laajalla kanavalla työskentelyyn mobiililaitteilla. Remote FrameBuffer (RFB) -protokollapohjaisen Virtual Network Computing (VNC) -järjestelmän käyttämiseen on monia vaihtoehtoja. Tässä lyhyessä artikkelissa kerromme, kuinka se määritetään virtuaalikoneessa millä tahansa hypervisorilla.
Vastaaja:
VNC-palvelimen valinta
VNC-palvelu voidaan rakentaa virtualisointijärjestelmään, ja hypervisor yhdistää sen emuloituihin laitteisiin, eikä lisämäärityksiä tarvita. Tämä vaihtoehto sisältää huomattavia lisäkustannuksia, ja kaikki palveluntarjoajat eivät tue sitä - edes vähemmän resursseja vaativassa toteutuksessa, kun todellisen grafiikkalaitteen emuloinnin sijaan yksinkertaistettu abstraktio (framebuffer) siirretään virtuaalikoneeseen. Joskus VNC-palvelin on sidottu käynnissä olevaan X-palvelimeen, mutta tämä menetelmä sopii paremmin fyysiseen koneeseen, ja virtuaalisessa koneessa se aiheuttaa useita teknisiä vaikeuksia. Helpoin tapa asentaa VNC-palvelin on sisäänrakennettu X-palvelin. Se ei vaadi fyysisiä laitteita (näytönohjain, näppäimistö ja hiiri) tai niiden emulointia hypervisorilla, joten se sopii kaikentyyppisille VPS:ille.
Asennus ja konfigurointi
Tarvitsemme virtuaalikoneen, jonka oletuskokoonpanossa on Ubuntu Server 18.04 LTS. Tämän jakelun vakiovarastoissa on useita VNC-palvelimia:
Työpöytäympäristön asennus kaikilla riippuvuuksilla tehdään seuraavalla komennolla:
sudo apt-get install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils
Seuraavaksi sinun on asennettava VNC-palvelin:
sudo apt-get install tigervnc-standalone-server tigervnc-common
Sen käyttäminen superkäyttäjänä on huono idea. Luo käyttäjä ja ryhmä:
sudo adduser vnc
Lisätään käyttäjä sudo-ryhmään, jotta hän voi suorittaa hallintaan liittyviä tehtäviä. Jos tällaista tarvetta ei ole, voit ohittaa tämän vaiheen:
sudo gpasswd -a vnc sudo
Seuraava vaihe on suorittaa VNC-palvelin vnc-käyttäjäoikeuksilla suojatun salasanan ja asetustiedostojen luomiseksi ~/.vnc/-hakemistoon. Salasanan pituus voi olla 6-8 merkkiä (ylimääräiset merkit leikataan pois). Tarvittaessa asetetaan salasana myös vain katselua varten, ts. ilman pääsyä näppäimistöön ja hiireen. Seuraavat komennot suoritetaan vnc-käyttäjänä:
su - vnc
vncserver -localhost no
Oletusarvoisesti RFB-protokolla käyttää TCP-porttialuetta 5900 - 5906 - tämä on ns. näyttöportit, joista jokainen vastaa X-palvelinnäyttöä. Tässä tapauksessa portit liitetään näyttöihin välillä :0 - :6. Aloittamamme VNC-palvelinesiintymä kuuntelee porttia 5901 (näyttö: 1). Muut esiintymät voivat toimia muissa porteissa, joissa on näytöt :2, :3 jne. Ennen kuin määrität lisäasetuksia, sinun on pysäytettävä palvelin:
vncserver -kill :1
Komennon pitäisi näyttää jotain tällaista: "Killing Xtigervnc process ID 18105... success!"
Kun TigerVNC käynnistyy, se suorittaa ~/.vnc/xstartup-komentosarjan konfigurointiasetusten määrittämiseksi. Luodaan oma skriptimme tallentamalla ensin varmuuskopio olemassa olevasta, jos sellainen on olemassa:
mv ~/.vnc/xstartup ~/.vnc/xstartup.b
nano ~/.vnc/xstartup
XFCE-työpöytäympäristön istunnon käynnistää seuraava xstartup-skripti:
#!/bin/bash
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
xrdb $HOME/.Xresources
exec /usr/bin/startxfce4 &
xrdb-komentoa tarvitaan, jotta VNC voi lukea kotihakemiston .Xresources-tiedoston. Siellä käyttäjä voi määrittää erilaisia graafisia työpöytäasetuksia: fontin renderöintiä, päätevärejä, kohdistinteemoja jne. Skripti on tehtävä suoritettavaksi:
chmod 755 ~/.vnc/xstartup
Tämä päättää VNC-palvelimen asennuksen. Jos suoritat sen komennolla vncserver -localhost no (vnc-käyttäjänä), voit muodostaa yhteyden aiemmin määritetyllä salasanalla ja nähdä seuraavan kuvan:
Palvelun käynnistäminen systemd:n kautta
VNC-palvelimen manuaalinen käynnistäminen ei sovellu taistelukäyttöön, joten konfiguroimme järjestelmäpalvelun. Komennot suoritetaan pääkäyttäjänä (käytämme sudoa). Luodaan ensin uusi yksikkötiedosto palvelimellemme:
sudo nano /etc/systemd/system/[email protected]
@-symboli nimessä antaa sinun välittää argumentin palvelun määrittämiseksi. Meidän tapauksessamme se määrittää VNC-näyttöportin. Yksikkötiedosto koostuu useista osista:
[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
Sitten sinun on ilmoitettava systemdille uudesta tiedostosta ja aktivoitava se:
sudo systemctl daemon-reload
sudo systemctl enable [email protected]
Numero 1 nimessä määrittää näytön numeron.
Pysäytä VNC-palvelin, käynnistä se palveluna ja tarkista tila:
# от имени пользователя vnc
vncserver -kill :1
# с привилегиями суперпользователя
sudo systemctl start vncserver@1
sudo systemctl status vncserver@1
Jos palvelu on käynnissä, meidän pitäisi saada jotain tällaista.
Työpöytäyhteys
Kokoonpanomme ei käytä salausta, joten hyökkääjät voivat siepata verkkopaketteja. Lisäksi VNC-palvelimissa melko usein
sudo netstat -ap |more
Linuxissa, FreeBSD:ssä, OS X:ssä ja muissa UNIXin kaltaisissa käyttöjärjestelmissä tunneli asiakastietokoneesta tehdään ssh-apuohjelmalla (sshd:n on oltava käynnissä VNC-palvelimella):
ssh -L 5901:127.0.0.1:5901 -C -N -l vnc vnc_server_ip
Vaihtoehto -L sitoo etäyhteyden portin 5901 paikallispalvelimen porttiin 5901. Vaihtoehto -C mahdollistaa pakkaamisen, ja -N -valinta kertoo ssh:lle, ettei se suorita etäkomentoa. Vaihtoehto -l määrittää kirjautumisen etäkirjautumista varten.
Kun olet määrittänyt tunnelin paikalliselle tietokoneelle, sinun on käynnistettävä VNC-asiakas ja muodostettava yhteys isäntään 127.0.0.1:5901 (localhost:5901) käyttämällä aiemmin määritettyä salasanaa päästäksesi VNC-palvelimeen. Voimme nyt kommunikoida turvallisesti salatun tunnelin kautta VPS:n graafisen XFCE-työpöytäympäristön kanssa. Kuvakaappauksessa pääteemulaattorissa on käynnissä pääapuohjelma, joka näyttää virtuaalikoneen alhaisen laskentaresurssien kulutuksen. Sitten kaikki riippuu käyttäjien sovelluksista.
Voit asentaa ja määrittää VNC-palvelimen Linuxissa lähes mihin tahansa VPS:ään. Tämä ei vaadi kalliita ja resursseja vaativia kokoonpanoja videosovittimen emuloinnilla tai kaupallisten ohjelmistolisenssien ostamista. Harkitun järjestelmäpalveluvaihtoehdon lisäksi on muitakin: käynnistäminen daemon-tilassa (/etc/rc.localin kautta) järjestelmän käynnistyessä tai pyynnöstä inetd:n kautta. Jälkimmäinen on mielenkiintoinen monen käyttäjän kokoonpanojen luomiseen. Internet Superserver käynnistää VNC-palvelimen ja yhdistää asiakkaan siihen, ja VNC-palvelin luo uuden näytön ja aloittaa istunnon. Voit todentaa siinä käyttämällä graafista näytönhallintaa (esim.
Lähde: will.com