Genom att in­stal­le­ra en VNC-server på Ubuntu 22.04 får du möjlighet att komma åt din Linux-dator var du än befinner dig. Oavsett om du arbetar hemifrån, är på af­färs­re­sa eller bara vill arbeta från ett annat rum – med en VNC-server har du alltid tillgång till din ar­bets­mil­jö.

Vilka är för­de­lar­na med en VNC-server på Ubuntu 22.04?

Att använda en VNC-server på Ubuntu 22.04 erbjuder många möj­lig­he­ter att göra det dagliga arbetet mycket enklare. Med en VNC-server kan du komma åt ditt Ubuntu-skrivbord var som helst i världen. Det innebär att du inte behöver sitta vid ditt skrivbord för att hantera dina program och data. Denna flex­i­bi­li­tet är extremt praktisk för di­stans­ar­be­ta­re, af­färs­re­se­nä­rer eller personer som vill arbeta från olika platser. Dessutom är det relativt enkelt att kon­fi­gu­re­ra en VNC-server, så även mindre tekniskt kunniga användare kan snabbt upprätta en fun­ge­ran­de fjär­ran­slut­ning.

En VNC-server främjar också sam­ar­be­tet inom team. Den gör det möjligt för flera medlemmar att samtidigt få åtkomst till samma skrivbord. Detta gör att team kan arbeta effektivt till­sam­mans oavsett var de befinner sig, arbeta med projekt till­sam­mans och lösa problem i realtid. IT-ad­mi­nist­ra­tö­rer och support kan också lösa fel på distans utan att behöva vara på plats. Detta sparar tid och kostnader för resor och extra möten. När det gäller säkerhet har många VNC-servrar på Ubuntu 22.04 robusta al­ter­na­tiv. Kryp­te­ra­de an­slut­ning­ar och olika au­ten­ti­se­rings­me­to­der skyddar dina data och sä­ker­stäl­ler att endast behöriga personer har tillgång till ditt system.

Detta är kraven för en VNC-server på Ubuntu 22.04

Först behöver du en fun­ge­ran­de in­stal­la­tion av Ubuntu 22.04. Många VNC-servrar är fullt kom­pa­tib­la med detta ope­ra­tiv­sy­stem och alla nöd­vän­di­ga paket och beroenden finns i de of­fi­ci­el­la Ubuntu-arkiven. Se till att ditt system är upp­da­te­rat för att undvika even­tu­el­la kom­pli­ka­tio­ner under in­stal­la­tio­nen. I allmänhet bör du uppfylla följande krav:

  • Ubuntu 22.04: En fun­ge­ran­de och upp­da­te­rad in­stal­la­tion av Ubuntu 22.04.
  • Nät­verk­san­slut­ning: En stabil Ethernet- eller WLAN-an­slut­ning för fjär­råt­komst.
  • Root-be­hö­rig­het: VNC-serverns användare behöver root-be­hö­rig­het för in­stal­la­tion och kon­fi­gu­ra­tion.
  • Pro­gram­pa­ket: In­stal­la­tion av VNC-ser­ver­pro­gram­va­ra, såsom TigerVNC, RealVNC eller x11vnc från Ubuntu-arkiven.
  • Skriv­bords­mil­jö: Den er­for­der­li­ga skriv­bords­mil­jön (t.ex. GNOME, XFCE) bör vara in­stal­le­rad.
  • Brand­vägg­s­kon­fi­gu­ra­tion: Öppna port 5900 eller justera brand­vägg­s­reg­ler­na för att tillåta VNC-trafik.

Hur man in­stal­le­rar en VNC-server på Ubuntu 22.04

Det finns många al­ter­na­tiv när det gäller att välja en VNC-server och skriv­bords­mil­jö. I den här hand­led­ning­en in­stal­le­rar vi de senaste paketen för skriv­bords­mil­jön XFCE och paketet TigerVNC som finns till­gäng­li­ga i det of­fi­ci­el­la Ubuntu-arkivet. Både XFCE och TigerVNC kräver få resurser och har snabb prestanda. Det gör att VNC-an­slut­ning­en förblir smidig och stabil även med lång­sam­ma­re in­ter­ne­tan­slut­ning­ar.

Steg 1: Uppdatera paket

Innan du påbörjar in­stal­la­tio­nen, se till att ditt system är upp­da­te­rat. Kör följande kommandon för att in­stal­le­ra alla till­gäng­li­ga upp­da­te­ring­ar:

sudo apt update
sudo apt upgrade
bash

Steg 2: In­stal­le­ra skriv­bords­mil­jön

VNC-servern kräver en skriv­bords­mil­jö eftersom den till­han­da­hål­ler skriv­bor­det över nätverket. Ubuntu 22.04 levereras med GNOME som standard, men du kan också in­stal­le­ra andra skriv­bords­mil­jö­er, till exempel XFCE, som är särskilt lätt­vik­tig.

sudo apt install xfce4 xfce4-goodies
bash

Paketet xfce4-goodies in­ne­hål­ler yt­ter­li­ga­re an­vänd­ba­ra verktyg och plugins för XFCE.

Steg 3: Skapa en ny användare

När du har in­stal­le­rat skriv­bords­mil­jön måste du skapa en ny användare för att kunna använda VNC-servern. Av sä­ker­hets­skäl re­kom­men­de­ras det att inte göra detta som root-användare. I det här fallet skapar vi en ny användare med namnet ”john” och ger honom de be­hö­rig­he­ter som krävs för att köra VNC-servern under detta an­vän­dar­kon­to.

Först måste du skapa an­vän­da­ren “john” och tilldela honom ett lösenord. Du kan göra detta med följande kommandon:

sudo useradd -m -s /bin/bash john
sudo passwd john
bash

Kommandot sudo useradd -m -s /bin/bash john skapar en ny användare “john” och kon­fi­gu­re­rar en hem­ka­ta­log, där stan­dardska­let ställs in till /bin/bash. Använd sedan sudo passwd john för att ställa in ett lösenord för denna användare. Det är viktigt att välja ett säkert lösenord.

När an­vän­da­ren har skapats måste du lägga till den i sudo-gruppen så att den kan utföra ad­mi­nist­ra­ti­va kommandon. Det gör du med följande kommando:

sudo usermod -aG sudo john
bash

Detta kommando gör det möjligt för “john” att utföra kommandon med utökade rät­tig­he­ter som till­han­da­hålls med sudo.

För att kon­trol­le­ra om “john” har rätt be­hö­rig­he­ter, logga in som “john” och testa root-rät­tig­he­ter­na. För att göra detta, kör följande kommandon:

su - john
sudo su
bash

Med su - john byter du till an­vän­da­ren “john” och med sudo su får du root-rät­tig­he­ter, förutsatt att lö­senor­det har angetts korrekt. Om au­ten­ti­se­ring­en lyckas visas en prompt som root@hostname, som bekräftar att du har root-rät­tig­he­ter.

Steg 4: In­stal­le­ra VNC-ser­ver­pro­gram­va­ran

I den här hand­led­ning­en använder vi TigerVNC, eftersom det är en populär och välstödd VNC-server. In­stal­le­ra TigerVNC med följande kommando:

sudo apt install tigervnc-standalone-server tigervnc-common tigervnc-tools
bash

Denna post in­stal­le­rar VNC-ser­ver­pro­gram­va­ran samt några nöd­vän­di­ga ge­men­sam­ma paket som krävs för driften.

Steg 5: Skapa VNC-ser­verin­stan­sen

Innan du kan starta VNC-servern måste du ange ett lösenord som krävs för att få åtkomst till VNC-servern. Ange följande kommando i ter­mi­na­len:

vncserver
bash

Du kommer att bli ombedd att ange och bekräfta ett lösenord. Detta lösenord skyddar åtkomsten till din VNC-server. Du kan också välja ett al­ter­na­tiv för att ställa in ett lösenord för visning endast om du vill att andra användare endast ska kunna se skärmen utan att ha kontroll över den.

När servern startas för första gången skapas en ny skärm, van­ligt­vis :1. Ut­mat­ning­en visar det exakta numret på den skärm som du kan använda.

Här är ett exempel:

New 'X' desktop is your-machine-name:1
bash

Notera dis­play­num­ret (i detta fall :1), eftersom du behöver det för att ansluta till VNC-klienten.

Steg 6: Kon­fi­gu­re­ra VNC-ser­verin­stan­sen

Skapa en kon­fi­gu­ra­tions­fil för VNC-servern för att sä­ker­stäl­la att XFCE laddas när VNC-servern startas. Filen ~/.vnc/xstartup kan till exempel ha följande innehåll:

#!/bin/sh
# Start up the standard system desktop
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
/usr/bin/startxfce4
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
x-window-manager &
bash

Filen blir körbar när du använder följande kommando:

chmod +x ~/.vnc/xstartup
bash

Steg 7: Kör VNC-servern som en system­tjänst

Genom att kon­fi­gu­re­ra VNC-servern som en Systemd-tjänst kan du starta, stoppa och starta om den precis som vilken annan tjänst som helst. Du kan också använda Systemd-kommandon för att starta VNC-servern au­to­ma­tiskt när systemet startar upp.

Skapa först en ny fil med ett tex­tre­di­ge­rings­pro­gram efter eget val:

nano /etc/systemd/system/vncserver@.service
bash

Lägg till följande innehåll i filen:

[Unit]
Description=Start TigerVNC server at startup
After=syslog.target network.target
[Service]
Type=forking
User=<your-username>
PAMName=login
PIDFile=/home/<your-username>/.vnc/%H:%i.pid
ExecStart=/usr/bin/vncserver %i
ExecStop=/usr/bin/vncserver -kill %i
[Install]
WantedBy=multi-user.target
bash

Ersätt <your-username> med ditt faktiska an­vän­dar­namn. Ladda den nya tjäns­te­fi­len och aktivera tjänsten:

sudo systemctl daemon-reload
sudo systemctl enable vncserver@1.service
sudo systemctl start vncserver@:1
bash

Kommandot sudo systemctl enable vncserver@1.service aktiverar VNC-ser­ver­tjäns­ten för skärm :1 så att den startar au­to­ma­tiskt nästa gång systemet startas. Systemd-tjänst­fi­len vncserver@.service används för detta, där %i ersätts med 1. Detta gör det möjligt att kon­fi­gu­re­ra VNC-servern för skärm :1 och sä­ker­stäl­la att den startar varje gång systemet startas. Kommandot skapar de genvägar som behövs för att inkludera tjänsten i rätt start­pro­cess.

Steg 8: Kon­fi­gu­re­ra brand­väg­gen

Om du har aktiverat en brandvägg på din Ubuntu-server måste du frigöra VNC-porten för att tillåta fjär­ran­slut­ning­ar. Som standard använder VNC-servern port 5900, följt av dis­play­num­ret. För display :1 är alltså porten 5901.

Öppna porten med ufw:

sudo ufw allow 5901/tcp
bash

Kon­trol­le­ra brand­vägg­s­reg­ler­na för att sä­ker­stäl­la att porten är öppen:

sudo ufw status
bash

Här är ett exempel på ett möjligt resultat:

Status: active
To                              Action        From
--                                ------            ----
22/tcp                    	ALLOW       Anywhere
80/tcp                  	ALLOW       Anywhere
443/tcp                  	ALLOW       Anywhere
5901/tcp                	ALLOW       Anywhere
22/tcp (v6)             	ALLOW       Anywhere (v6)
80/tcp (v6)             	ALLOW       Anywhere (v6)
443/tcp (v6)           		ALLOW       Anywhere (v6)
5901/tcp (v6)         		ALLOW       Anywhere (v6)
bash

Steg 9: Anslut till VNC-servern

För att upprätta en an­slut­ning till din VNC-server behöver du en VNC-klient på din lokala dator. Populära VNC-klienter är RealVNC, TigerVNC Viewer och TightVNC Viewer. För att förbättra sä­ker­he­ten för din VNC-an­slut­ning bör du överväga att använda en krypterad an­slut­ning via SSH. Detta skyddar kom­mu­ni­ka­tio­nen mellan din VNC-klient och servern.

Upprätta en an­slut­ning till din server via SSH och vi­da­re­be­ford­ra VNC-porten:

ssh -L 59000:localhost:5901 -C -N -l <your-username>@<server-ip>
bash
  • ssh: Kommandot för säker an­slut­ning till en fjärr­ser­ver via SSH-pro­to­kol­let, som överför data i krypterad form.
  • -L 59000:localhost:5901: Aktiverar lokal portvi­da­re­be­ford­ran. Trafik från port 59000 på din lokala dator vi­da­re­be­fordras via SSH-tunneln till port 5901 på fjärr­ser­vern. localhost avser den fjärr­ser­ver på vilken VNC-servern körs.
  • C: Aktiverar kom­pri­me­ring av da­ta­tra­fik. Detta kan förbättra över­fö­rings­has­tig­he­ten och minska band­bredds­an­vänd­ning­en, särskilt vid långsamma an­slut­ning­ar.
  • N: För­hind­rar att kommandon exekveras på fjärr­ser­vern. Detta läge är an­vänd­bart om du bara vill kon­fi­gu­re­ra tunneln utan att starta ett skal på fjärr­ser­vern.
  • -l <your-username>: Anger det an­vän­dar­namn som du loggar in med på fjärr­ser­vern.
  • <server-ip>: IP-adressen eller värd­nam­net för den fjärr­ser­ver som du vill ansluta till via SSH.
Notis

Ersätt <your-username> med ditt an­vän­dar­namn och <server-ip> med IP-adressen till din server.

Anslut till den lokala porten 5901 som du vi­da­re­be­ford­ra­de via SSH-tunneln genom att ange localhost:5901 i din VNC-visare.

Denna metod ga­ran­te­rar att din VNC-an­slut­ning sker via en krypterad SSH-an­slut­ning och är därför säkrare.

Steg 10: Hantera VNC-servern

För att stoppa eller starta om VNC-servern använder du följande kommandon:

Stoppa VNC-servern:

vncserver -kill :1
bash

Starta om VNC-servern:

vncserver :1
bash

Avsluta VNC-servern (med systemd):

sudo systemctl stop vncserver@:1
bash

Kon­trol­le­ra status:

sudo systemctl status vncserver@1
bash

Ett möjligt resultat skulle kunna vara:

vncserver@1.service - Start TigerVNC server at startup
      Loaded: loaded (/etc/systemd/system/vncserver@.service; enabled; vendor preset: enabled)
      Active: active (running) since Mon 2024-07-29 16:57:26 UTC; 20s ago
     Process: 97088 ExecStartPre=/usr/bin/vncserver -kill :1 > /dev/null 2>&1 (code=exited, status=2)
     Process: 97092 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 -localhost :1 (code=exited, status=0/SUCCESS)
    Main PID: 97103 (Xtigervnc)
        Tasks: 77 (limit: 4665)
      Memory: 146.7M
          CPU: 4.459s
      CGroup: /system.slice/system-vncserver.slice/vncserver@1.service
. . .
bash

Steg 11: Fel­sök­ning

Om du stöter på problem, kon­trol­le­ra följande:

  • Loggfiler: Logg­fi­ler­na för VNC-servern finns i ~/.vnc. Kon­trol­le­ra dessa filer för fel­med­de­lan­den som kan indikera möjliga problem.
  • Nät­verk­san­slut­ning: Se till att inga nät­verks­be­gräns­ning­ar eller brand­väg­gar blockerar åtkomsten till VNC-porten.
  • Kon­fi­gu­ra­tions­fi­ler: Se till att det inte finns några fel i kon­fi­gu­ra­tio­nen av skriv­bords­mil­jön i filen ~/.vnc/xstartup.

Du har nu möjlighet att enkelt hantera dina filer och program samt dina syste­min­ställ­ning­ar via en VNC-server. Om du föredrar att använda Windows re­kom­men­de­rar vi vår hand­led­ning”In­stal­le­ra VNC-server på Windows”.

Gå till huvudmeny