Door een VNC-server op Ubuntu 22.04 te in­stal­le­ren, kunt u overal toegang krijgen tot uw Linux-desktop. 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 veel mo­ge­lijk­he­den om het da­ge­lijk­se werk een stuk een­vou­di­ger te maken. Met een VNC-server hebt u overal ter wereld toegang tot uw Ubuntu-desktop. Dit betekent dat u niet achter uw bureau hoeft te zitten om uw ap­pli­ca­ties en gegevens te beheren. Deze flexi­bi­li­teit is uiterst 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 externe ver­bin­ding tot stand kunnen brengen.

Een VNC-server bevordert ook de sa­men­wer­king binnen teams. Het stelt meerdere leden in staat om te­ge­lij­ker­tijd toegang te krijgen tot hetzelfde bu­reau­blad. Hierdoor kunnen teams effectief sa­men­wer­ken, ongeacht hun locatie, samen aan projecten werken en problemen in realtime oplossen. IT-be­heer­ders en on­der­steu­ning kunnen ook op afstand fouten oplossen zonder ter plaatse te hoeven zijn. Dit bespaart tijd en kosten voor reizen en extra afspraken. Op het gebied van be­vei­li­ging hebben veel VNC-servers op Ubuntu 22.04 robuuste opties. Ver­sleu­tel­de ver­bin­din­gen en ver­schil­len­de 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

Eerst moet je een werkende in­stal­la­tie van Ubuntu 22.04 hebben. Veel VNC-servers zijn helemaal com­pa­ti­bel met dit be­stu­rings­sys­teem en alle benodigde pakketten en af­han­ke­lijk­he­den zijn te vinden 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 externe toegang.
  • Root-rechten: De VNC-ser­ver­ge­brui­ker heeft root-rechten nodig voor 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 zijn ge­ïn­stal­leerd.
  • 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 veel opties als het gaat om het kiezen van een VNC-server en desktopom­ge­ving. In deze tutorial 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. XFCE en TigerVNC vereisen beide weinig bronnen 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

Voordat u met de in­stal­la­tie begint, moet u ervoor zorgen dat uw systeem up-to-date is. Voer de volgende commando’s 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 vereist een desktopom­ge­ving, aangezien deze de desktop via het netwerk aanbiedt. Ubuntu 22.04 wordt standaard geleverd met GNOME, maar u 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 bedienen. Het is raadzaam om dit niet als root­ge­brui­ker te doen om de vei­lig­heid te waar­bor­gen. In dit geval maken we een nieuwe gebruiker aan met de naam ‘john’ en geven we hem de nodige rechten om de VNC-server onder dit ge­brui­kers­ac­count te draaien.

Eerst moet u de gebruiker ‘john’ aanmaken en hem een wacht­woord toewijzen. Dit kunt u 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 maakt u een nieuwe gebruiker ‘john’ aan en stelt u een ho­me­di­rec­to­ry in, waarbij u 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 es­sen­ti­eel om een veilig wacht­woord te kiezen.

Nadat de gebruiker is aan­ge­maakt, moet u deze toevoegen aan de sudo-groep, zodat deze 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 uit­ge­brei­de rechten die worden verleend door sudo.

Om te con­tro­le­ren of ‘john’ de juiste au­to­ri­sa­ties heeft, logt u in als ‘john’ en test u de root-rechten. Voer hiervoor de volgende commando’s uit:

su - john
sudo su
bash

Met su - john schakelt u over naar de gebruiker ‘john’ en met sudo su krijgt u root­rech­ten, mits het wacht­woord correct is ingevoerd. Als de au­then­ti­ca­tie succesvol is, ziet u een prompt zoals root@hostname, die bevestigt dat u root­rech­ten 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-ser­ver­op­tie is. In­stal­leer TigerVNC met deze opdracht:

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

Deze invoer in­stal­leert de VNC-ser­ver­soft­wa­re en enkele nood­za­ke­lij­ke algemene pakketten die vereist zijn voor de werking.

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 vereist 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 beschermt 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 alleen het scherm kunnen zien, maar geen controle hebben.

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

Hier is een voorbeeld:

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

Noteer het weer­ga­ve­num­mer (in dit geval :1), want u hebt dit nodig om ver­bin­ding te maken met de VNC-client.

Stap 6: Con­fi­gu­reer de VNC-ser­ver­in­stan­tie

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 u deze opdracht gebruikt:

chmod +x ~/.vnc/xstartup
bash

Stap 7: Start de VNC-server als een 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 starten. 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 uw 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 ervoor gezorgd dat deze elke keer start wanneer het systeem opstart. Het commando maakt de nodige snel­kop­pe­lin­gen om de service in het juiste op­start­pro­ces op te nemen.

Stap 8: Con­fi­gu­reer de firewall

Als u een firewall op uw Ubuntu-server hebt ge­ac­ti­veerd, moet u de VNC-poort vrijgeven om externe ver­bin­din­gen toe te staan. Standaard gebruikt de VNC-server poort 5900, gevolgd door het weer­ga­ve­num­mer. Voor weergave :1 is de poort dus 5901.

Open de poort met 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 een ver­bin­ding met uw VNC-server tot stand te brengen, hebt u een VNC-client op uw lokale computer nodig. Populaire VNC-clients zijn RealVNC, TigerVNC Viewer en TightVNC Viewer. Om de vei­lig­heid 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 een ver­bin­ding met uw server via SSH en stuur de VNC-poort door:

ssh -L 59000:localhost:5901 -C -N -l <your-username>@<server-ip>
bash
  • ssh: Het commando voor een veilige ver­bin­ding met een externe server via het SSH-protocol, dat gegevens in ge­co­deer­de vorm verzendt.
  • -L 59000:localhost:5901: Schakelt lokale poort­door­stu­ring in. Verkeer van 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 trans­mis­sie­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 op­drach­ten op de externe server worden uit­ge­voerd. Deze modus is handig als u alleen de tunnel wilt instellen zonder een shell op de externe server te starten.
  • -l <your-username>: Spe­ci­fi­ceert de ge­brui­kers­naam waarmee u zich aanmeldt bij de externe server.
  • <server-ip>: Het IP-adres of de hostnaam van de externe server waarmee u via SSH ver­bin­ding wilt maken.
Opmerking

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

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

Deze methode ga­ran­deert 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: Beheer de VNC-server

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

Stop VNC-server:

vncserver -kill :1
bash

VNC-server opnieuw opstarten:

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 kunnen wijzen op mogelijke problemen.
  • 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 zijn 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, ge­mak­ke­lijk te beheren via een VNC-server. Als u liever Windows gebruikt, raden we u onze tutorial’VNC-server in­stal­le­ren op Windows’aan.

Ga naar hoofdmenu