Når du in­stal­le­rer en VNC-server på Ubuntu 22.04, får du mulighed for at få adgang til dit Linux-skri­ve­bord, uanset hvor du befinder dig. Uanset om du arbejder hjemmefra, er på for­ret­nings­rej­se eller blot ønsker at arbejde fra et andet rum – med en VNC-server har du altid adgang til dit ar­bejds­mil­jø.

Hvad er fordelene ved en VNC-server på Ubuntu 22.04?

Brug af en VNC-server på Ubuntu 22.04 giver mange mu­lig­he­der for at gøre det daglige arbejde meget nemmere. Med en VNC-server kan du få adgang til dit Ubuntu-skri­ve­bord fra hvor som helst i verden. Det betyder, at du ikke behøver at sidde ved dit skri­ve­bord for at ad­mi­ni­stre­re dine pro­gram­mer og data. Denne flek­si­bi­li­tet er yderst praktisk for fjer­n­ar­bej­de­re, for­ret­nings­rej­sen­de eller folk, der ønsker at arbejde fra for­skel­li­ge steder. Desuden er det for­holds­vis nemt at opsætte en VNC-server, så selv mindre teknisk kyndige brugere hurtigt kan etablere en fun­ge­ren­de fjer­n­for­bin­del­se.

En VNC-server fremmer også sam­ar­bej­det i teams. Den giver flere medlemmer mulighed for samtidig adgang til den samme skri­ve­bord. Det gør det muligt for teams at arbejde effektivt sammen uanset deres placering, at sam­ar­bej­de om projekter og løse problemer i realtid. IT-ad­mi­ni­stra­to­rer og support kan også løse fejl eksternt uden at skulle være til stede på stedet. Det sparer tid og om­kost­nin­ger til rejser og ekstra aftaler. Med hensyn til sikkerhed har mange VNC-servere på Ubuntu 22.04 solide sik­ker­heds­funk­tio­ner. Kryp­te­re­de for­bin­del­ser og for­skel­li­ge god­ken­del­ses­me­to­der beskytter dine data og sikrer, at kun au­to­ri­se­re­de personer har adgang til dit system.

Dette er kravene til en VNC-server på Ubuntu 22.04

Først og fremmest skal du have en fun­ge­ren­de in­stal­la­tion af Ubuntu 22.04. Mange VNC-servere er fuldt kom­pa­tib­le med dette ope­ra­tiv­sy­stem, og alle nød­ven­di­ge pakker og af­hæn­gig­he­der findes i de of­fi­ci­el­le Ubuntu-pak­kelag­re. Sørg for, at dit system er opdateret for at undgå even­tu­el­le problemer under in­stal­la­tio­nen. Generelt skal du opfylde følgende krav:

  • Ubuntu 22.04: En fun­ge­ren­de og opdateret in­stal­la­tion af Ubuntu 22.04.
  • Net­værks­for­bin­del­se: En stabil Ethernet- eller WLAN-for­bin­del­se til fjer­n­ad­gang.
  • Root-ret­tig­he­der: VNC-ser­ver­bru­ge­ren skal have root-ret­tig­he­der til in­stal­la­tion og kon­fi­gu­ra­tion.
  • Softwa­re­pak­ke: In­stal­la­tion af VNC-ser­ver­softwa­re, såsom TigerVNC, RealVNC eller x11vnc fra Ubuntu-repo­si­to­ri­er­ne.
  • De­sk­top­mil­jø: Det krævede de­sk­top­mil­jø (f.eks. GNOME, XFCE) skal være in­stal­le­ret.
  • Firewall-kon­fi­gu­ra­tion: Åbn port 5900, eller juster firewall-reglerne for at tillade VNC-trafik.

Sådan in­stal­le­res en VNC-server på Ubuntu 22.04

Der findes mange mu­lig­he­der, når det gælder valg af VNC-server og skri­ve­bord­s­mil­jø. I denne vej­led­ning in­stal­le­rer vi de nyeste pakker til XFCE-skri­ve­bord­s­mil­jø­et og TigerVNC-pakken, som findes i det of­fi­ci­el­le Ubuntu-arkiv. Både XFCE og TigerVNC kræver få res­sour­cer og yder hurtig ydeevne. Derfor forbliver VNC-for­bin­del­sen flydende og stabil, selv ved lang­som­me­re in­ter­net­for­bin­del­ser.

Trin 1: Opdater pakker

Før du går i gang med in­stal­la­tio­nen, skal du sikre dig, at dit system er opdateret. Udfør følgende kom­man­do­er for at in­stal­le­re alle til­gæn­ge­li­ge op­da­te­rin­ger:

sudo apt update
sudo apt upgrade
bash

Trin 2: Installer skri­ve­bord­s­mil­jø­et

VNC-serveren kræver et skri­ve­bord­s­mil­jø, da den leverer skri­ve­bor­det via netværket. Ubuntu 22.04 leveres som standard med GNOME, men du kan også in­stal­le­re andre skri­ve­bord­s­mil­jø­er, såsom XFCE, som er særligt res­sour­ce­be­spa­ren­de.

sudo apt install xfce4 xfce4-goodies
bash

Pakken xfce4-goodies in­de­hol­der yder­li­ge­re nyttige værktøjer og plugins til XFCE.

Trin 3: Opret en ny bruger

Når du har in­stal­le­ret skri­ve­bord­s­mil­jø­et, skal du oprette en ny bruger til at betjene VNC-serveren. Af sik­ker­heds­mæs­si­ge årsager anbefales det ikke at gøre dette som root-bruger. I dette tilfælde opretter vi en ny bruger ved navn »john« og giver ham de nød­ven­di­ge ret­tig­he­der til at køre VNC-serveren under denne bru­ger­kon­to.

Først skal du oprette brugeren »john« og tildele ham en ad­gangs­ko­de. Det kan du gøre med følgende kom­man­do­er:

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

Kom­man­do­en sudo useradd -m -s /bin/bash john opretter en ny bruger ved navn »john« og opretter en hjem­me­map­pe, hvor standard-shell indstil­les til /bin/bash. Brug derefter sudo passwd john til at indstille en ad­gangs­ko­de for denne bruger. Det er vigtigt at vælge en sikker ad­gangs­ko­de.

Når brugeren er oprettet, skal du føje ved­kom­men­de til sudo-gruppen, så ved­kom­men­de kan udføre ad­mi­ni­stra­ti­ve kom­man­do­er. Det gør du med følgende kommando:

sudo usermod -aG sudo john
bash

Denne kommando giver ‘john’ mulighed for at udføre kom­man­do­er med udvidede ret­tig­he­der via sudo.

For at kon­trol­le­re, om »john« har de rette ret­tig­he­der, skal du logge ind som »john« og teste root-ret­tig­he­der­ne. Det gør du ved at køre følgende kom­man­do­er:

su - john
sudo su
bash

Ved at taste su - john skifter du til brugeren »john«, og ved at taste sudo su får du root-ret­tig­he­der, forudsat at ad­gangs­ko­den er indtastet korrekt. Hvis god­ken­del­sen lykkes, vises der en prompt som f.eks. root@hostname, der bekræfter, at du har root-ret­tig­he­der.

Trin 4: Installer VNC-ser­ver­softwa­ren

I denne vej­led­ning bruger vi TigerVNC, da det er en udbredt og ve­lun­der­støt­tet VNC-server. Installer TigerVNC med denne kommando:

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

Denne in­stal­la­tion in­stal­le­rer VNC-ser­ver­softwa­ren samt nogle nød­ven­di­ge stan­dard­pak­ker, der kræves for at pro­gram­met kan fungere.

Trin 5: Opret en VNC-ser­ve­rin­stans

Inden du kan starte VNC-serveren, skal du oprette en ad­gangs­ko­de, som er nødvendig for at få adgang til VNC-serveren. Indtast følgende kommando i ter­mi­na­len:

vncserver
bash

Du bliver bedt om at indtaste og bekræfte en ad­gangs­ko­de. Denne ad­gangs­ko­de beskytter adgangen til din VNC-server. Du kan også vælge en indstil­ling, der opretter en ad­gangs­ko­de til visning, hvis du ønsker, at andre brugere kun skal kunne se skærmen, men ikke have kontrol over den.

Når serveren startes for første gang, oprettes der en ny skærm, typisk :1. I ud­skrif­ten vises det nøjagtige nummer på den skærm, du kan bruge.

Her er et eksempel:

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

Notér skærm­num­me­ret (i dette tilfælde :1), da du skal bruge det for at oprette for­bin­del­se til VNC-klienten.

Trin 6: Kon­fi­gu­rer VNC-ser­ve­rin­stan­sen

Opret en kon­fi­gu­ra­tions­fil til VNC-serveren for at sikre, at XFCE indlæses, når VNC-serveren startes. Filen ~/.vnc/xstartup kan f.eks. have følgende indhold:

#!/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 bliver ek­se­kver­bar, når du bruger denne kommando:

chmod +x ~/.vnc/xstartup
bash

Trin 7: Kør VNC-serveren som en sy­stemtje­ne­ste

Ved at kon­fi­gu­re­re VNC-serveren som en Systemd-tjeneste kan du starte, stoppe og genstarte den på samme måde som enhver anden tjeneste. Du kan også bruge Systemd-kom­man­do­er til at starte VNC-serveren au­to­ma­tisk, når systemet starter op.

Start med at oprette en ny fil i et tek­stre­di­ge­rings­pro­gram efter eget valg:

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

Indsæt følgende indhold 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

Erstat <your-username> med dit egentlige bru­ger­navn. Indlæs den nye ser­vi­ce­fil, og aktiver tjenesten:

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

Kom­man­do­en sudo systemctl enable vncserver@1.service aktiverer VNC-ser­vi­ce­tje­ne­sten for skærm :1, så den starter au­to­ma­tisk næste gang systemet startes. Til dette bruges systemd-tje­ne­ste­fi­len vncserver@.service, hvor %i erstattes af 1. Dette gør det muligt at kon­fi­gu­re­re VNC-serveren til skærm :1 og sikre, at den starter hver gang systemet starter op. Kom­man­do­en opretter de nød­ven­di­ge genveje for at inkludere tjenesten i den korrekte op­start­s­pro­ces.

Trin 8: Kon­fi­gu­rer brand­mu­ren

Hvis du har aktiveret en firewall på din Ubuntu-server, skal du åbne VNC-porten for at tillade fjer­n­for­bin­del­ser. Som standard bruger VNC-serveren port 5900 ef­ter­fulgt af skærm­num­me­ret. For skærm :1 er porten altså 5901.

Åbn port ufw:

sudo ufw allow 5901/tcp
bash

Kon­trol­ler firewall-reglerne for at sikre dig, at porten er åben:

sudo ufw status
bash

Her er et eksempel på et muligt 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

Trin 9: Opret for­bin­del­se til VNC-serveren

For at oprette for­bin­del­se til din VNC-server skal du have en VNC-klient in­stal­le­ret på din lokale computer. Populære VNC-klienter er RealVNC, TigerVNC Viewer og TightVNC Viewer. For at øge sik­ker­he­den på din VNC-for­bin­del­se bør du overveje at bruge en krypteret for­bin­del­se via SSH. Dette sikrer kom­mu­ni­ka­tio­nen mellem din VNC-klient og serveren.

Opret en for­bin­del­se til din server via SSH, og vi­de­re­send VNC-porten:

ssh -L 59000:localhost:5901 -C -N -l <your-username>@<server-ip>
bash
  • ssh: Kom­man­do­en til op­ret­tel­se af en sikker for­bin­del­se til en fjern­ser­ver via SSH-pro­tokol­len, som overfører data i krypteret form.
  • -L 59000:localhost:5901: Aktiverer lokal po­rtvi­de­re­sen­del­se. Trafik fra port 59000 på din lokale computer vi­de­re­sen­des gennem SSH-tunnelen til port 5901 på fjern­ser­ve­ren. localhost henviser til den fjern­ser­ver, hvor VNC-serveren kører.
  • C: Aktiverer kom­pri­me­ring af da­ta­tra­fik. Dette kan forbedre trans­mis­sions­ha­stig­he­den og reducere bånd­bred­defor­bru­get, især ved langsomme for­bin­del­ser.
  • N: For­hin­drer, at kom­man­do­er udføres på fjern­ser­ve­ren. Denne tilstand er nyttig, hvis du kun vil oprette tunnelen uden at starte en shell på fjern­ser­ve­ren.
  • -l <your-username>: Angiver det bru­ger­navn, du logger ind på fjern­ser­ve­ren med.
  • <server-ip>: IP-adressen eller vært­s­nav­net på den fjern­ser­ver, som du vil oprette for­bin­del­se til via SSH.
Note

Erstat <your-username> med dit bru­ger­navn og <server-ip> med din servers IP-adresse.

Opret for­bin­del­se til den lokale port 5901, som du har vi­de­re­sendt via SSH-tunnelen, ved at indtaste localhost:5901 i din VNC-viewer.

Denne metode sikrer, at din VNC-for­bin­del­se oprettes via en krypteret SSH-for­bin­del­se og dermed er mere sikker.

Trin 10: Ad­mi­ni­strer VNC-serveren

Brug følgende kom­man­do­er til at stoppe eller genstarte VNC-serveren:

Stop VNC-serveren:

vncserver -kill :1
bash

Genstart VNC-serveren:

vncserver :1
bash

Afslut VNC-serveren (med systemd):

sudo systemctl stop vncserver@:1
bash

Tjek status:

sudo systemctl status vncserver@1
bash

Et muligt resultat kunne være:

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

Trin 11: Fejl­find­ing

Hvis du støder på problemer, skal du tjekke følgende:

  • Logfiler: Log­fi­ler­ne for VNC-serveren findes i ~/.vnc. Gennemgå disse filer for fejl­med­del­el­ser, der kan tyde på even­tu­el­le problemer.
  • Net­værks­for­bin­del­se: Sørg for, at ingen net­værks­be­græns­nin­ger eller firewalls blokerer adgangen til VNC-porten.
  • Kon­fi­gu­ra­tions­fi­ler: Sørg for, at der ikke er fejl i kon­fi­gu­ra­tio­nen af skri­ve­bord­s­mil­jø­et i filen ~/.vnc/xstartup.

Du har nu mulighed for nemt at ad­mi­ni­stre­re dine filer og pro­gram­mer samt dine sy­ste­mindstil­lin­ger via en VNC-server. Hvis du fo­re­træk­ker at bruge Windows, anbefaler vi vores vej­led­ning»Installer VNC-server på Windows«.

Gå til ho­ved­me­nu­en