VPS på Linux med GUI: Kör en VNC-server på Ubuntu 18.04

VPS på Linux med GUI: Kör en VNC-server på Ubuntu 18.04
Vissa användare hyr relativt billig VPS med Windows för att köra en fjärrskrivbordstjänst. Detsamma kan göras på Linux utan att placera din egen hårdvara i datacentret eller hyra en dedikerad server. Någon behöver en bekant grafisk miljö för testning och utveckling, eller ett fjärrskrivbord med en bred kanal för att arbeta från mobila enheter. Det finns många applikationer för Remote FrameBuffer (RFB) protokollbaserade Virtual Network Computing (VNC) system. I en kort artikel kommer vi att berätta hur du ställer in det i en virtuell maskin med vilken hypervisor som helst.

Innehållsförteckning:

Att välja en VNC-server
Installation och konfiguration
Starta en tjänst via systemd
Skrivbordsanslutning

Att välja en VNC-server

VNC-tjänsten kan byggas in i virtualiseringssystemet, medan hypervisorn associerar den med de emulerade enheterna och ingen ytterligare konfiguration krävs. Det här alternativet innebär betydande overhead och stöds inte av alla leverantörer - även i en mindre resurskrävande implementering, när istället för att emulera en riktig grafikenhet, skickas en förenklad abstraktion (framebuffer) till den virtuella maskinen. Ibland är VNC-servern bunden till en körande X-server, men denna metod är mer lämpad för att komma åt en fysisk maskin, och på en virtuell maskin skapar den ett antal tekniska svårigheter. Det är enklast att installera en VNC-server med en inbyggd X-server. Det kräver inte närvaron av fysiska enheter (videoadapter, tangentbord och mus) eller deras emulering med hjälp av en hypervisor, och är därför lämplig för alla typer av VPS.

Installation och konfiguration

Vi kommer att behöva en virtuell maskin med Ubuntu Server 18.04 LTS i standardkonfigurationen. Det finns flera VNC-servrar i standardförråden för denna distribution: TightVNC, TigerVNC, x11vnc och andra. Vi bosatte oss på TigerVNC - den nuvarande gaffeln av TightVNC, som inte stöds av utvecklaren. Andra servrar är konfigurerade på liknande sätt. Du måste också välja en skrivbordsmiljö: enligt vår åsikt skulle XFCE vara det bästa alternativet på grund av de relativt låga kraven på datorresurser. De som vill kan installera en annan DE eller WM: allt beror på personliga preferenser, men valet av programvara påverkar direkt behovet av RAM och datorkärnor.

VPS på Linux med GUI: Kör en VNC-server på Ubuntu 18.04

Installation av skrivbordsmiljön med alla beroenden görs med följande kommando:

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

Därefter måste du installera VNC-servern:

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

Att köra det som root är en dålig idé. Skapa användare och grupp:

sudo adduser vnc

VPS på Linux med GUI: Kör en VNC-server på Ubuntu 18.04

Låt oss lägga till användaren i sudo-gruppen så att han kan utföra administrationsrelaterade uppgifter. Om det inte finns något sådant behov kan det här steget hoppas över:

sudo gpasswd -a vnc sudo

Nästa steg är att starta VNC-servern med vnc-användarrättigheter för att skapa ett säkert lösenord och konfigurationsfiler i katalogen ~/.vnc/. Lösenordslängden kan vara från 6 till 8 tecken (extra tecken är avskurna). Vid behov sätts även ett visningslösenord, dvs. utan åtkomst till tangentbord och mus. Följande kommandon körs som vnc-användaren:

su - vnc
vncserver -localhost no

VPS på Linux med GUI: Kör en VNC-server på Ubuntu 18.04
Som standard använder RFB-protokollet TCP-portintervallet från 5900 till 5906 - detta är det så kallade. displayportar, som var och en motsvarar en X-serverskärm. Portarna är associerade med skärmarna :0 till :6. VNC-serverinstansen vi startade lyssnar på port 5901 (skärm :1). Andra instanser kan köras på andra portar med skärmar :2, :3, etc. Stoppa servern innan ytterligare konfiguration:

vncserver -kill :1

Kommandot bör visa ungefär så här: "Killing Xtigervnc process ID 18105… success!".

Vid uppstart kör TigerVNC ~/.vnc/xstartup-skriptet för att ställa in konfigurationsalternativ. Låt oss skapa vårt eget skript, efter att ha sparat en säkerhetskopia av det befintliga, om det finns:

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

En XFCE-skrivbordsmiljösession startas med följande xstartup-skript:

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

Kommandot xrdb krävs för att VNC-systemet ska kunna läsa .Xresources-filen i hemkatalogen. Där kan användaren definiera olika alternativ för det grafiska skrivbordet: teckensnittsrendering, terminalfärger, markörteman och så vidare. Skriptet måste göras körbart:

chmod 755 ~/.vnc/xstartup

Detta slutför VNC-serverinstallationen. Om du kör det med kommandot vncserver -localhost no (som vnc-användare), kan du ansluta med lösenordet du angav tidigare och se följande bild:

VPS på Linux med GUI: Kör en VNC-server på Ubuntu 18.04

Starta en tjänst via systemd

Att manuellt starta VNC-servern är inte väl lämpat för stridsanvändning, så vi kommer att sätta upp en systemtjänst. Kommandon körs som root (med sudo). Låt oss först skapa en ny enhetsfil för vår server:

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

Tecknet @ i namnet låter dig skicka ett argument för att konfigurera tjänsten. I vårt fall specificerar den VNC-displayporten. Enhetsfilen består av flera sektioner:

[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

Sedan måste du meddela systemd om den nya filen och aktivera den:

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

Siffran 1 i namnet anger skärmnumret.

Stoppa VNC-servern, starta den som en tjänst och kontrollera statusen:

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

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

Om tjänsten är igång borde vi få något liknande.

VPS på Linux med GUI: Kör en VNC-server på Ubuntu 18.04

Skrivbordsanslutning

Vår konfiguration använder inte kryptering, så nätverkspaket kan fångas upp av inkräktare. Dessutom i VNC-servrar ganska ofta hitta sårbarheter, så du bör inte öppna dem för åtkomst från Internet. För att ansluta säkert på den lokala maskinen måste du linda in trafiken i en SSH-tunnel och sedan konfigurera VNC-klienten. Under Windows kan du använda en grafisk SSH-klient (t.ex. PuTTY). Av säkerhetsskäl lyssnar TigerVNC på servern endast på localhost och är inte direkt tillgänglig från offentliga nätverk:


sudo netstat -ap |more

VPS på Linux med GUI: Kör en VNC-server på Ubuntu 18.04
På Linux, FreeBSD, OS X och andra UNIX-liknande operativsystem görs en tunnel från en klientdator med hjälp av ssh-verktyget (sshd måste köras på VNC-servern):

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

Alternativet -L binder port 5901 på fjärranslutningen till port 5901 på localhost. Alternativet -C möjliggör komprimering och -N säger åt ssh-verktyget att inte köra fjärrkommandot. Alternativet -l anger inloggning för fjärrinloggning.

Efter att ha ställt in tunneln på den lokala datorn måste du starta VNC-klienten och upprätta en anslutning till värden 127.0.0.1:5901 (localhost:5901) med det tidigare inställda lösenordet för att komma åt VNC-servern. Nu kan vi kommunicera säkert genom en krypterad tunnel med XFCE:s grafiska skrivbordsmiljö på VPS. På skärmdumpen körs toppverktyget i terminalemulatorn för att visa den virtuella maskinens ljusförbrukning av datorresurser. Vidare kommer allt att bero på användarapplikationer.

VPS på Linux med GUI: Kör en VNC-server på Ubuntu 18.04
Du kan installera och konfigurera en VNC-server i Linux på nästan vilken VPS som helst. Det kräver inte dyra och resurskrävande konfigurationer med videoadapteremulering eller köp av kommersiella programvarulicenser. Utöver systemtjänstalternativet som vi har övervägt, finns det andra: körs i demonläge (via /etc/rc.local) vid systemstart eller på begäran via inetd. Det senare är intressant för att skapa fleranvändarkonfigurationer. Internet-superservern kommer att starta VNC-servern och ansluta klienten till den, och VNC-servern kommer att skapa en ny skärm och starta sessionen. För att autentisera inuti den kan du använda en grafisk displayhanterare (t.ex. LightDM), och efter att ha kopplat bort klienten kommer sessionen att stängas och alla program som arbetar med skärmen kommer att avslutas.

VPS på Linux med GUI: Kör en VNC-server på Ubuntu 18.04

Källa: will.com

Lägg en kommentar