Door een VNC-server op Ubuntu 22.04 te installeren, 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 werkomgeving.

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

Het gebruik van een VNC-server op Ubuntu 22.04 biedt veel mogelijkheden om het dagelijkse werk een stuk eenvoudiger 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 applicaties en gegevens te beheren. Deze flexibiliteit is uiterst handig voor telewerkers, zakenreizigers of mensen die vanaf verschillende locaties willen werken. Bovendien is het opzetten van een VNC-server relatief eenvoudig, zodat zelfs minder technisch onderlegde gebruikers snel een werkende externe verbinding tot stand kunnen brengen.

Een VNC-server bevordert ook de samenwerking binnen teams. Het stelt meerdere leden in staat om tegelijkertijd toegang te krijgen tot hetzelfde bureaublad. Hierdoor kunnen teams effectief samenwerken, ongeacht hun locatie, samen aan projecten werken en problemen in realtime oplossen. IT-beheerders en ondersteuning 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 beveiliging hebben veel VNC-servers op Ubuntu 22.04 robuuste opties. Versleutelde verbindingen en verschillende authenticatiemethoden beschermen uw gegevens en zorgen ervoor dat alleen geautoriseerde personen toegang hebben tot uw systeem.

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

Eerst moet je een werkende installatie van Ubuntu 22.04 hebben. Veel VNC-servers zijn helemaal compatibel met dit besturingssysteem en alle benodigde pakketten en afhankelijkheden zijn te vinden in de officiële Ubuntu-repositories. Zorg ervoor dat je systeem up-to-date is om mogelijke problemen tijdens de installatie te voorkomen. Over het algemeen moet je aan de volgende vereisten voldoen:

  • Ubuntu 22.04: Een werkende en up-to-date installatie van Ubuntu 22.04.
  • Netwerkverbinding: een stabiele ethernet- of WLAN-verbinding voor externe toegang.
  • Root-rechten: De VNC-servergebruiker heeft root-rechten nodig voor installatie en configuratie.
  • Softwarepakket: installatie van VNC-serversoftware, zoals TigerVNC, RealVNC of x11vnc uit de Ubuntu-repositories.
  • Desktopomgeving: De vereiste desktopomgeving (bijv. GNOME, XFCE) moet zijn geïnstalleerd.
  • Firewallconfiguratie: Open poort 5900 of pas de firewallregels aan om VNC-verkeer toe te staan.

Hoe installeer je een VNC-server op Ubuntu 22.04?

Er zijn veel opties als het gaat om het kiezen van een VNC-server en desktopomgeving. In deze tutorial installeren we de nieuwste pakketten voor de XFCE-desktopomgeving en het TigerVNC-pakket dat beschikbaar is in de officiële Ubuntu-repository. XFCE en TigerVNC vereisen beide weinig bronnen en presteren snel. Daardoor blijft de VNC-verbinding soepel en stabiel, zelfs bij tragere internetverbindingen.

Stap 1: Pakketten bijwerken

Voordat u met de installatie begint, moet u ervoor zorgen dat uw systeem up-to-date is. Voer de volgende commando’s uit om alle beschikbare updates te installeren:

sudo apt update
sudo apt upgrade
bash

Stap 2: Installeer de desktopomgeving

De VNC-server vereist een desktopomgeving, aangezien deze de desktop via het netwerk aanbiedt. Ubuntu 22.04 wordt standaard geleverd met GNOME, maar u kunt ook andere desktopomgevingen installeren, 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 desktopomgeving hebt geïnstalleerd, moet u een nieuwe gebruiker aanmaken om de VNC-server te bedienen. Het is raadzaam om dit niet als rootgebruiker te doen om de veiligheid te waarborgen. 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 gebruikersaccount te draaien.

Eerst moet u de gebruiker ‘john’ aanmaken en hem een wachtwoord 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 homedirectory in, waarbij u de standaard shell instelt op /bin/bash. Gebruik vervolgens sudo passwd john om een wachtwoord voor deze gebruiker in te stellen. Het is essentieel om een veilig wachtwoord te kiezen.

Nadat de gebruiker is aangemaakt, moet u deze toevoegen aan de sudo-groep, zodat deze beheerdersopdrachten kan uitvoeren. Dit doet u met de volgende opdracht:

sudo usermod -aG sudo john
bash

Met dit commando kan ‘john’ commando’s uitvoeren met uitgebreide rechten die worden verleend door sudo.

Om te controleren of ‘john’ de juiste autorisaties 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 rootrechten, mits het wachtwoord correct is ingevoerd. Als de authenticatie succesvol is, ziet u een prompt zoals root@hostname, die bevestigt dat u rootrechten hebt.

Stap 4: Installeer de VNC-serversoftware

Voor deze tutorial gebruiken we TigerVNC, omdat dit een veelgebruikte en goed ondersteunde VNC-serveroptie is. Installeer TigerVNC met deze opdracht:

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

Deze invoer installeert de VNC-serversoftware en enkele noodzakelijke algemene pakketten die vereist zijn voor de werking.

Stap 5: Maak de VNC-serverinstantie aan

Voordat u de VNC-server kunt starten, moet u een wachtwoord 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 wachtwoord in te voeren en te bevestigen. Dit wachtwoord beschermt de toegang tot uw VNC-server. U kunt ook een optie selecteren om een wachtwoord voor alleen-lezen in te stellen als u wilt dat andere gebruikers alleen het scherm kunnen zien, maar geen controle hebben.

Wanneer de server voor het eerst wordt gestart, wordt een nieuw scherm aangemaakt, 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 weergavenummer (in dit geval :1), want u hebt dit nodig om verbinding te maken met de VNC-client.

Stap 6: Configureer de VNC-serverinstantie

Maak een configuratiebestand voor de VNC-server om ervoor te zorgen dat XFCE wordt geladen wanneer de VNC-server wordt gestart. Het bestand ~/.vnc/xstartup kan bijvoorbeeld 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 uitvoerbaar wanneer u deze opdracht gebruikt:

chmod +x ~/.vnc/xstartup
bash

Stap 7: Start de VNC-server als een systeemservice

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-opdrachten gebruiken om de VNC-server automatisch te starten wanneer het systeem opstart.

Maak eerst een nieuw bestand aan met een teksteditor 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 gebruikersnaam. Laad het nieuwe servicebestand 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-serverservice voor beeldscherm :1, zodat deze automatisch start wanneer het systeem de volgende keer wordt opgestart. Hiervoor wordt het systemd-servicebestand vncserver@.service gebruikt, waarin %i wordt vervangen door 1. Hierdoor kan de VNC-server voor beeldscherm :1 worden geconfigureerd en wordt ervoor gezorgd dat deze elke keer start wanneer het systeem opstart. Het commando maakt de nodige snelkoppelingen om de service in het juiste opstartproces op te nemen.

Stap 8: Configureer de firewall

Als u een firewall op uw Ubuntu-server hebt geactiveerd, moet u de VNC-poort vrijgeven om externe verbindingen toe te staan. Standaard gebruikt de VNC-server poort 5900, gevolgd door het weergavenummer. Voor weergave :1 is de poort dus 5901.

Open de poort met ufw:

sudo ufw allow 5901/tcp
bash

Controleer de firewallregels om te controleren 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 verbinding met de VNC-server

Om een verbinding 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 veiligheid van uw VNC-verbinding te verbeteren, kunt u overwegen om een versleutelde verbinding via SSH te gebruiken. Dit beschermt de communicatie tussen uw VNC-client en de server.

Maak een verbinding 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 verbinding met een externe server via het SSH-protocol, dat gegevens in gecodeerde vorm verzendt.
  • -L 59000:localhost:5901: Schakelt lokale poortdoorsturing in. Verkeer van poort 59000 op uw lokale computer wordt via de SSH-tunnel doorgestuurd naar poort 5901 op de externe server. localhost verwijst naar de externe server waarop de VNC-server draait.
  • C: Activeert de compressie van dataverkeer. Dit kan de transmissiesnelheid verbeteren en het bandbreedtegebruik verminderen, vooral bij trage verbindingen.
  • N: Voorkomt dat opdrachten op de externe server worden uitgevoerd. Deze modus is handig als u alleen de tunnel wilt instellen zonder een shell op de externe server te starten.
  • -l <your-username>: Specificeert de gebruikersnaam waarmee u zich aanmeldt bij de externe server.
  • <server-ip>: Het IP-adres of de hostnaam van de externe server waarmee u via SSH verbinding wilt maken.
Opmerking

Vervang <your-username> door uw gebruikersnaam en <server-ip> door het IP-adres van uw server.

Maak verbinding met de lokale poort 5901 die u via de SSH-tunnel hebt doorgestuurd door localhost:5901 in uw VNC-viewer in te voeren.

Deze methode garandeert dat uw VNC-verbinding via een versleutelde SSH-verbinding tot stand komt en daardoor veiliger is.

Stap 10: Beheer de VNC-server

Gebruik de volgende opdrachten 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 controleren:

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 ondervindt, controleer dan het volgende:

  • Logbestanden: De logbestanden voor de VNC-server bevinden zich in ~/.vnc. Controleer deze bestanden op foutmeldingen die kunnen wijzen op mogelijke problemen.
  • Netwerkverbinding: Zorg ervoor dat er geen netwerkbeperkingen of firewalls zijn die de toegang tot de VNC-poort blokkeren.
  • Configuratiebestanden: Zorg ervoor dat er geen fouten zijn in de configuratie van de desktopomgeving in het bestand ~/.vnc/xstartup.

U hebt nu de mogelijkheid om uw bestanden en programma’s, evenals uw systeeminstellingen, gemakkelijk te beheren via een VNC-server. Als u liever Windows gebruikt, raden we u onze tutorial’VNC-server installeren op Windows’aan.

Ga naar hoofdmenu