Door een VNC-server op Ubuntu 22.04 te in­stal­le­ren, kunt u overal toegang krijgen tot uw Linux-bu­reau­blad. Of u nu thuis werkt, op zakenreis bent of gewoon vanuit een andere kamer wilt werken — met een VNC-server hebt u altijd toegang tot uw werk­om­ge­ving.

Wat zijn de voordelen van een VNC-server op Ubuntu 22.04?

Het gebruik van een VNC-server op Ubuntu 22.04 biedt tal van mo­ge­lijk­he­den om het da­ge­lijk­se werk een stuk ge­mak­ke­lij­ker te maken. Met een VNC-server heb je overal ter wereld toegang tot je Ubuntu-bu­reau­blad. Dit betekent dat je niet achter je bureau hoeft te zitten om je ap­pli­ca­ties en gegevens te beheren. Deze flexi­bi­li­teit is uitermate handig voor te­le­wer­kers, za­ken­rei­zi­gers of mensen die vanaf ver­schil­len­de locaties willen werken. Bovendien is het opzetten van een VNC-server relatief eenvoudig, zodat zelfs minder technisch on­der­leg­de ge­brui­kers snel een werkende ver­bin­ding op afstand kunnen tot stand brengen.

Een VNC-server bevordert ook de sa­men­wer­king binnen teams. Hiermee krijgen meerdere teamleden te­ge­lij­ker­tijd toegang tot hetzelfde bu­reau­blad. Zo kunnen teams effectief sa­men­wer­ken, ongeacht hun locatie, ge­za­men­lijk aan projecten werken en problemen in realtime oplossen. IT-be­heer­ders en sup­port­me­de­wer­kers kunnen fouten ook op afstand verhelpen zonder ter plaatse te hoeven zijn. Dit bespaart tijd en kosten voor reizen en extra afspraken. Wat de be­vei­li­ging betreft, be­schik­ken veel VNC-servers op Ubuntu 22.04 over robuuste be­vei­li­gings­op­ties. Ver­sleu­tel­de ver­bin­din­gen en diverse au­then­ti­ca­tie­me­tho­den be­scher­men uw gegevens en zorgen ervoor dat alleen ge­au­to­ri­seer­de personen toegang hebben tot uw systeem.

Dit zijn de vereisten voor een VNC-server op Ubuntu 22.04

Al­ler­eerst heb je een werkende in­stal­la­tie van Ubuntu 22.04 nodig. Veel VNC-servers zijn volledig com­pa­ti­bel met dit be­stu­rings­sys­teem en alle benodigde pakketten en af­han­ke­lijk­he­den zijn be­schik­baar in de officiële Ubuntu-re­po­si­to­ries. Zorg ervoor dat je systeem up-to-date is om mogelijke problemen tijdens de in­stal­la­tie te voorkomen. Over het algemeen moet je aan de volgende vereisten voldoen:

  • Ubuntu 22.04: Een werkende en up-to-date in­stal­la­tie van Ubuntu 22.04.
  • Net­werk­ver­bin­ding: Een stabiele Ethernet- of WLAN-ver­bin­ding voor toegang op afstand.
  • Root-rechten: De VNC-ser­ver­ge­brui­ker heeft root-rechten nodig voor de in­stal­la­tie en con­fi­gu­ra­tie.
  • Soft­wa­re­pak­ket: In­stal­la­tie van VNC-ser­ver­soft­wa­re, zoals TigerVNC, RealVNC of x11vnc uit de Ubuntu-re­po­si­to­ries.
  • Desktopom­ge­ving: De vereiste desktopom­ge­ving (bijv. GNOME, XFCE) moet ge­ïn­stal­leerd zijn.
  • Fire­wall­con­fi­gu­ra­tie: Open poort 5900 of pas de fire­wall­re­gels aan om VNC-verkeer toe te staan.

Hoe in­stal­leer je een VNC-server op Ubuntu 22.04

Er zijn tal van mo­ge­lijk­he­den als het gaat om het kiezen van een VNC-server en een desktopom­ge­ving. In deze hand­lei­ding in­stal­le­ren we de nieuwste pakketten voor de XFCE-desktopom­ge­ving en het TigerVNC-pakket dat be­schik­baar is in de officiële Ubuntu-re­po­si­to­ry. Zowel XFCE als TigerVNC vragen weinig sys­teem­bron­nen en presteren snel. Daardoor blijft de VNC-ver­bin­ding soepel en stabiel, zelfs bij tragere in­ter­net­ver­bin­din­gen.

Stap 1: Pakketten bijwerken

Zorg ervoor dat uw systeem up-to-date is voordat u met de in­stal­la­tie begint. Voer de volgende op­drach­ten uit om alle be­schik­ba­re updates te in­stal­le­ren:

sudo apt update
sudo apt upgrade
bash

Stap 2: In­stal­leer de desktopom­ge­ving

De VNC-server heeft een desktopom­ge­ving nodig, omdat deze de desktop via het netwerk weergeeft. Ubuntu 22.04 wordt standaard geleverd met GNOME, maar je kunt ook andere desktopom­ge­vin­gen in­stal­le­ren, zoals XFCE, dat bijzonder licht is.

sudo apt install xfce4 xfce4-goodies
bash

Het xfce4-goodies -pakket bevat extra handige tools en plug-ins voor XFCE.

Stap 3: Maak een nieuwe gebruiker aan

Nadat u de desktopom­ge­ving hebt ge­ïn­stal­leerd, moet u een nieuwe gebruiker aanmaken om de VNC-server te kunnen gebruiken. Omwille van de vei­lig­heid is het raadzaam dit niet als root-gebruiker te doen. In dit geval maken we een nieuwe gebruiker aan met de naam ‘john’ en geven we hem de benodigde rechten om de VNC-server onder dit ge­brui­kers­ac­count te draaien.

Eerst moet je de gebruiker ‘john’ aanmaken en hem een wacht­woord toewijzen. Dit kun je doen met de volgende commando’s:

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

Met het commando sudo useradd -m -s /bin/bash john maak je een nieuwe gebruiker ‘john’ aan en stel je een thuismap in, waarbij je de standaard-shell instelt op /bin/bash. Gebruik ver­vol­gens sudo passwd john om een wacht­woord voor deze gebruiker in te stellen. Het is van es­sen­ti­eel belang om een veilig wacht­woord te kiezen.

Nadat de gebruiker is aan­ge­maakt, moet u deze toevoegen aan de sudo-groep, zodat hij be­heer­ders­op­drach­ten kan uitvoeren. Dit doet u met de volgende opdracht:

sudo usermod -aG sudo john
bash

Met dit commando kan ‘john’ commando’s uitvoeren met de uit­ge­brei­de rechten die door sudo worden geboden.

Om te con­tro­le­ren of ‘john’ over de juiste rechten beschikt, logt u in als ‘john’ en test u de root-rechten. Voer hiervoor de volgende op­drach­ten uit:

su - john
sudo su
bash

Met su - john schakel je over naar de gebruiker ‘john’ en met sudo su krijg je root-rechten, mits het wacht­woord correct is ingevoerd. Als de au­then­ti­ca­tie is gelukt, krijg je een prompt te zien zoals root@hostname, waarmee wordt bevestigd dat je root-rechten hebt.

Stap 4: In­stal­leer de VNC-ser­ver­soft­wa­re

Voor deze tutorial gebruiken we TigerVNC, omdat dit een veel­ge­bruik­te en goed on­der­steun­de VNC-server is. In­stal­leer TigerVNC met de volgende opdracht:

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

Met dit item worden zowel de VNC-ser­ver­soft­wa­re als enkele nood­za­ke­lij­ke stan­daard­pak­ket­ten ge­ïn­stal­leerd die nodig zijn voor de werking ervan.

Stap 5: Maak de VNC-ser­ver­in­stan­tie aan

Voordat u de VNC-server kunt starten, moet u een wacht­woord instellen dat nodig is om toegang te krijgen tot de VNC-server. Voer de volgende opdracht in de terminal in:

vncserver
bash

U wordt gevraagd een wacht­woord in te voeren en te be­ves­ti­gen. Dit wacht­woord beveiligt de toegang tot uw VNC-server. U kunt ook een optie se­lec­te­ren om een wacht­woord voor alleen-lezen in te stellen, als u wilt dat andere ge­brui­kers het scherm alleen kunnen bekijken, maar geen controle hebben.

Wanneer de server voor het eerst wordt gestart, wordt er een nieuw scherm aan­ge­maakt, meestal :1. In de uitvoer wordt het exacte nummer van het scherm weer­ge­ge­ven dat u kunt gebruiken.

Hier is een voorbeeld:

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

Noteer het scherm­num­mer (in dit geval :1), want dat heb je nodig om ver­bin­ding te maken met de VNC-client.

Stap 6: De VNC-ser­ver­con­fi­gu­ra­tie instellen

Maak een con­fi­gu­ra­tie­be­stand voor de VNC-server om ervoor te zorgen dat XFCE wordt geladen wanneer de VNC-server wordt gestart. Het bestand ~/.vnc/xstartup kan bij­voor­beeld de volgende inhoud hebben:

#!/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

Het bestand wordt uit­voer­baar wanneer je deze opdracht gebruikt:

chmod +x ~/.vnc/xstartup
bash

Stap 7: Start de VNC-server als sys­teem­ser­vi­ce

Door de VNC-server als een Systemd-service in te stellen, kunt u deze net als elke andere service starten, stoppen en opnieuw opstarten. U kunt ook Systemd-op­drach­ten gebruiken om de VNC-server au­to­ma­tisch te starten wanneer het systeem opstart.

Maak eerst een nieuw bestand aan met een tekst­edi­tor naar keuze:

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

Voeg de volgende inhoud toe aan het bestand:

[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

Vervang <your-username> door je eigen ge­brui­kers­naam. Laad het nieuwe ser­vi­ce­be­stand en activeer de service:

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

Het commando sudo systemctl enable vncserver@1.service activeert de VNC-ser­ver­ser­vi­ce voor beeld­scherm :1, zodat deze au­to­ma­tisch start wanneer het systeem de volgende keer wordt opgestart. Hiervoor wordt het systemd-ser­vi­ce­be­stand vncserver@.service gebruikt, waarin %i wordt vervangen door 1. Hierdoor kan de VNC-server voor beeld­scherm :1 worden ge­con­fi­gu­reerd en wordt ge­waar­borgd dat deze bij elke sys­teem­start wordt gestart. Het commando maakt de benodigde snel­kop­pe­lin­gen aan om de service in het juiste op­start­pro­ces op te nemen.

Stap 8: De firewall con­fi­gu­re­ren

Als u een firewall op uw Ubuntu-server hebt in­ge­scha­keld, moet u de VNC-poort vrijgeven om ver­bin­din­gen op afstand mogelijk te maken. Standaard gebruikt de VNC-server poort 5900, gevolgd door het nummer van het beeld­scherm. Voor beeld­scherm :1 is de poort dus 5901.

Open poort ufw:

sudo ufw allow 5901/tcp
bash

Con­tro­leer de fire­wall­re­gels om te con­tro­le­ren of de poort open is:

sudo ufw status
bash

Hier is een voorbeeld van een mogelijke uitvoer:

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

Stap 9: Maak ver­bin­ding met de VNC-server

Om ver­bin­ding te maken met uw VNC-server, hebt u een VNC-client op uw lokale computer nodig. Populaire VNC-clients zijn RealVNC, TigerVNC Viewer en TightVNC Viewer. Om de be­vei­li­ging van uw VNC-ver­bin­ding te ver­be­te­ren, kunt u overwegen om een ver­sleu­tel­de ver­bin­ding via SSH te gebruiken. Dit beschermt de com­mu­ni­ca­tie tussen uw VNC-client en de server.

Maak via SSH ver­bin­ding met je server en stel de VNC-poort in:

ssh -L 59000:localhost:5901 -C -N -l <your-username>@<server-ip>
bash
  • ssh: Het commando voor een be­vei­lig­de ver­bin­ding met een externe server via het SSH-protocol, waarmee gegevens in ge­co­deer­de vorm worden verzonden.
  • -L 59000:localhost:5901: Schakelt lokale poort­door­stu­ring in. Verkeer vanaf poort 59000 op uw lokale computer wordt via de SSH-tunnel door­ge­stuurd naar poort 5901 op de externe server. localhost verwijst naar de externe server waarop de VNC-server draait.
  • C: Activeert de com­pres­sie van da­ta­ver­keer. Dit kan de over­drachts­snel­heid ver­be­te­ren en het band­breed­te­ge­bruik ver­min­de­ren, vooral bij trage ver­bin­din­gen.
  • N: Voorkomt dat commando’s op de externe server worden uit­ge­voerd. Deze modus is handig als u alleen de tunnel wilt opzetten zonder een shell op de externe server te starten.
  • -l <your-username>: Geeft de ge­brui­kers­naam op waarmee u inlogt op de externe server.
  • <server-ip>: Het IP-adres of de hostnaam van de externe server waarmee u ver­bin­ding wilt maken via SSH.
Opmerking

Vervang <your-username> door je ge­brui­kers­naam en <server-ip> door het IP-adres van je server.

Maak ver­bin­ding met de lokale poort 5901 die je via de SSH-tunnel hebt door­ge­stuurd door localhost:5901 in te voeren in je VNC-viewer.

Deze methode zorgt ervoor dat uw VNC-ver­bin­ding via een ver­sleu­tel­de SSH-ver­bin­ding tot stand komt en daardoor veiliger is.

Stap 10: De VNC-server beheren

Gebruik de volgende op­drach­ten om de VNC-server te stoppen of opnieuw te starten:

VNC-server stoppen:

vncserver -kill :1
bash

VNC-server opnieuw starten:

vncserver :1
bash

VNC-server afsluiten (met systemd):

sudo systemctl stop vncserver@:1
bash

Status con­tro­le­ren:

sudo systemctl status vncserver@1
bash

Een mogelijke uitvoer zou kunnen zijn:

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

Stap 11: Problemen oplossen

Als u problemen on­der­vindt, con­tro­leer dan het volgende:

  • Log­be­stan­den: De log­be­stan­den voor de VNC-server bevinden zich in ~/.vnc. Con­tro­leer deze bestanden op fout­mel­din­gen die op mogelijke problemen kunnen wijzen.
  • Net­werk­ver­bin­ding: Zorg ervoor dat er geen net­werk­be­per­kin­gen of firewalls zijn die de toegang tot de VNC-poort blokkeren.
  • Con­fi­gu­ra­tie­be­stan­den: Zorg ervoor dat er geen fouten zitten in de con­fi­gu­ra­tie van de desktopom­ge­ving in het bestand ~/.vnc/xstartup.

U hebt nu de mo­ge­lijk­heid om uw bestanden en programma’s, evenals uw sys­teem­in­stel­lin­gen, eenvoudig te beheren via een VNC-server. Als u liever Windows gebruikt, raden wijuonze hand­lei­ding‘VNC-server in­stal­le­ren op Windows’aan.

Ga naar hoofdmenu