VPS på Linux med et grafisk grensesnitt: lansering av en VNC-server på Ubuntu 18.04

VPS på Linux med et grafisk grensesnitt: lansering av en VNC-server på Ubuntu 18.04
Noen brukere leier relativt billig VPS med Windows for å kjøre eksterne skrivebordstjenester. Det samme kan gjøres på Linux uten å være vert for din egen maskinvare i et datasenter eller leie en dedikert server. Noen mennesker trenger et kjent grafisk miljø for testing og utvikling, eller et eksternt skrivebord med en bred kanal for arbeid fra mobile enheter. Det er mange alternativer for å bruke Remote FrameBuffer (RFB) protokollbasert Virtual Network Computing (VNC) system. I denne korte artikkelen vil vi fortelle deg hvordan du konfigurerer den på en virtuell maskin med en hvilken som helst hypervisor.

Bekreftelse:

Velge en VNC-server
Installasjon og konfigurasjon
Starte en tjeneste via systemd
Skrivebordstilkobling

Velge en VNC-server

VNC-tjenesten kan bygges inn i virtualiseringssystemet, og hypervisoren vil koble den til de emulerte enhetene og ingen ekstra konfigurasjon vil være nødvendig. Dette alternativet innebærer betydelig overhead og støttes ikke av alle leverandører - selv i en mindre ressurskrevende implementering, når i stedet for å emulere en ekte grafikkenhet, overføres en forenklet abstraksjon (framebuffer) til den virtuelle maskinen. Noen ganger er en VNC-server knyttet til en kjørende X-server, men denne metoden er mer egnet for å få tilgang til en fysisk maskin, og på en virtuell skaper den en rekke tekniske problemer. Den enkleste måten å installere en VNC-server på er med en innebygd X-server. Den krever ikke fysiske enheter (videoadapter, tastatur og mus) eller emulering av dem ved hjelp av en hypervisor, og er derfor egnet for alle typer VPS.

Installasjon og konfigurasjon

Vi trenger en virtuell maskin med Ubuntu Server 18.04 LTS i standardkonfigurasjonen. Det er flere VNC-servere i standardlagrene for denne distribusjonen: TightVNC, TigerVNC, x11vnc og andre. Vi slo oss ned på TigerVNC - en nåværende gaffel av TightVNC, som ikke støttes av utvikleren. Oppsett av andre servere gjøres på lignende måte. Du må også velge et skrivebordsmiljø: det optimale alternativet, etter vår mening, ville være XFCE på grunn av de relativt lave kravene til dataressurser. De som ønsker det kan installere en annen DE eller WM: alt avhenger av personlige preferanser, men valget av programvare påvirker direkte behovet for RAM og datakjerner.

VPS på Linux med et grafisk grensesnitt: lansering av en VNC-server på Ubuntu 18.04

Installasjon av skrivebordsmiljøet med alle avhengigheter gjøres med følgende kommando:

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

Deretter må du installere VNC-serveren:

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

Å kjøre den som superbruker er en dårlig idé. Opprett en bruker og gruppe:

sudo adduser vnc

VPS på Linux med et grafisk grensesnitt: lansering av en VNC-server på Ubuntu 18.04

La oss legge brukeren til sudo-gruppen slik at han kan utføre administrasjonsrelaterte oppgaver. Hvis det ikke er et slikt behov, kan du hoppe over dette trinnet:

sudo gpasswd -a vnc sudo

Det neste trinnet er å kjøre VNC-serveren med vnc-brukerprivilegier for å lage et sikkert passord og konfigurasjonsfiler i ~/.vnc/-katalogen. Passordlengden kan være fra 6 til 8 tegn (ekstra tegn kuttes av). Om nødvendig settes det også et passord for kun visning, dvs. uten tilgang til tastatur og mus. Følgende kommandoer utføres som vnc-brukeren:

su - vnc
vncserver -localhost no

VPS på Linux med et grafisk grensesnitt: lansering av en VNC-server på Ubuntu 18.04
Som standard bruker RFB-protokollen TCP-portområdet fra 5900 til 5906 - dette er den såkalte. skjermporter, som hver tilsvarer en X-serverskjerm. I dette tilfellet er portene knyttet til skjermer fra :0 til :6. VNC-serverforekomsten vi lanserte lytter til port 5901 (skjerm: 1). Andre instanser kan fungere på andre porter med skjermer :2, :3 osv. Før videre konfigurasjon må du stoppe serveren:

vncserver -kill :1

Kommandoen skal vise noe sånt som dette: "Killing Xtigervnc process ID 18105... success!"

Når TigerVNC starter, kjører den ~/.vnc/xstartup-skriptet for å konfigurere konfigurasjonsinnstillinger. La oss lage vårt eget skript, først lagre en sikkerhetskopi av det eksisterende, hvis det eksisterer:

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

XFCE-skrivebordsmiljøøkten startes av følgende xstartup-skript:

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

xrdb-kommandoen er nødvendig for at VNC skal lese .Xresources-filen i hjemmekatalogen. Der kan brukeren definere ulike grafiske skrivebordsinnstillinger: skriftgjengivelse, terminalfarger, markørtemaer, etc. Skriptet må gjøres kjørbart:

chmod 755 ~/.vnc/xstartup

Dette fullfører VNC-serveroppsettet. Hvis du kjører den med kommandoen vncserver -localhost no (som vnc-bruker), kan du koble til med det tidligere spesifiserte passordet og se følgende bilde:

VPS på Linux med et grafisk grensesnitt: lansering av en VNC-server på Ubuntu 18.04

Starte en tjeneste via systemd

Manuell start av en VNC-server er ikke egnet for kampbruk, så vi vil konfigurere en systemtjeneste. Kommandoene utføres som root (vi bruker sudo). Først, la oss lage en ny enhetsfil for serveren vår:

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

@-symbolet i navnet lar deg sende et argument for å konfigurere tjenesten. I vårt tilfelle spesifiserer den VNC-skjermporten. Enhetsfilen består av flere seksjoner:

[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

Deretter må du varsle systemd om den nye filen og aktivere den:

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

Tallet 1 i navnet spesifiserer skjermnummeret.

Stopp VNC-serveren, start den som en tjeneste og sjekk statusen:

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

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

Hvis tjenesten kjører, bør vi få noe slikt.

VPS på Linux med et grafisk grensesnitt: lansering av en VNC-server på Ubuntu 18.04

Skrivebordstilkobling

Konfigurasjonen vår bruker ikke kryptering, så nettverkspakker kan bli fanget opp av angripere. I tillegg, i VNC-servere ganske ofte finne sårbarheter, så du bør ikke åpne dem for tilgang fra Internett. For å koble til sikkert på din lokale datamaskin, må du pakke trafikken inn i en SSH-tunnel og deretter konfigurere en VNC-klient. På Windows kan du bruke en grafisk SSH-klient (for eksempel PuTTY). For sikkerhets skyld lytter TigerVNC på serveren bare til localhost og er ikke direkte tilgjengelig fra offentlige nettverk:


sudo netstat -ap |more

VPS på Linux med et grafisk grensesnitt: lansering av en VNC-server på Ubuntu 18.04
I Linux, FreeBSD, OS X og andre UNIX-lignende operativsystemer lages en tunnel fra klientdatamaskinen ved å bruke ssh-verktøyet (sshd må kjøres på VNC-serveren):

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

Alternativet -L binder port 5901 til den eksterne tilkoblingen til port 5901 på lokal vert. Alternativet -C aktiverer komprimering, og -N-alternativet forteller ssh om ikke å utføre fjernkommandoen. Alternativet -l spesifiserer pålogging for ekstern pålogging.

Etter å ha satt opp tunnelen på den lokale datamaskinen, må du starte VNC-klienten og etablere en tilkobling til verten 127.0.0.1:5901 (localhost:5901), ved å bruke det tidligere spesifiserte passordet for å få tilgang til VNC-serveren. Vi kan nå kommunisere sikkert via en kryptert tunnel med XFCE grafiske skrivebordsmiljø på VPS. På skjermbildet kjører toppverktøyet i terminalemulatoren for å vise den virtuelle maskinens lave forbruk av dataressurser. Da vil alt avhenge av brukerapplikasjoner.

VPS på Linux med et grafisk grensesnitt: lansering av en VNC-server på Ubuntu 18.04
Du kan installere og konfigurere en VNC-server i Linux på nesten hvilken som helst VPS. Dette krever ikke dyre og ressurskrevende konfigurasjoner med videoadapteremulering eller kjøp av kommersielle programvarelisenser. I tillegg til systemtjenestealternativet vi vurderte, er det andre: start i daemon-modus (via /etc/rc.local) når systemet starter opp eller på forespørsel via inetd. Sistnevnte er interessant for å lage flerbrukerkonfigurasjoner. Internet Superserver vil starte VNC-serveren og koble klienten til den, og VNC-serveren vil opprette et nytt skjermbilde og starte økten. For å autentisere i den, kan du bruke en grafisk skjermbehandling (f.eks. LightDM), og etter frakobling av klienten, vil økten bli lukket og alle programmer som arbeider med skjermen vil bli avsluttet.

VPS på Linux med et grafisk grensesnitt: lansering av en VNC-server på Ubuntu 18.04

Kilde: www.habr.com

Legg til en kommentar