Die Ein­rich­tung eines VNC-Servers unter Ubuntu 22.04 er­mög­licht es dir, flexibel auf deinen Linux-Desktop zu­zu­grei­fen. Ganz egal, ob du im Ho­me­of­fice bist, auf Reisen oder in einem anderen Raum – mit einem VNC-Server hast du deine gewohnte Ar­beits­um­ge­bung immer dabei.

Welche Vorteile bietet ein VNC-Server unter Ubuntu 22.04?

Ein VNC-Server unter Ubuntu 22.04 macht deinen Ar­beits­all­tag deutlich flexibler. Du kannst von jedem Ort der Welt auf deinen Ubuntu-Desktop zugreifen und bist nicht mehr an einen festen Ar­beits­platz gebunden, um Programme oder Daten zu verwalten. Das ist ideal für Remote-Work, Ge­schäfts­rei­sen oder hybride Ar­beits­mo­del­le. Da die In­stal­la­ti­on un­kom­pli­ziert ist, gelingt der Aufbau einer stabilen Remote-Ver­bin­dung auch ohne tiefes Ex­per­ten­wis­sen im Hand­um­dre­hen.

Zudem pro­fi­tiert die Team­ar­beit massiv: Mehrere Personen können gleich­zei­tig auf denselben Desktop zugreifen. So lassen sich Projekte gemeinsam be­ar­bei­ten und Probleme in Echtzeit lösen, völlig un­ab­hän­gig vom je­wei­li­gen Standort. Auch die IT-Ad­mi­nis­tra­ti­on spart Zeit und Kosten, da Support-Einsätze direkt aus der Ferne erfolgen können. In Sachen Si­cher­heit punktet Ubuntu 22.04 mit robusten Optionen: Ver­schlüs­sel­te Tunnel und sichere Logins schützen deine Daten zu­ver­läs­sig vor un­be­fug­tem Zugriff.

Das sind die Vor­aus­set­zun­gen für einen VNC-Server unter Ubuntu 22.04

Du startest mit einer sauberen In­stal­la­ti­on von Ubuntu 22.04. Da die meisten VNC-Server voll kom­pa­ti­bel sind, findest du alle nötigen Pakete direkt in den of­fi­zi­el­len Ubuntu-Quellen. Halte dein System aktuell, um einen rei­bungs­lo­sen Ablauf zu ga­ran­tie­ren. Folgende Punkte solltest du erfüllen:

  • Ubuntu 22.04: Ein in­stal­lier­tes und ak­tua­li­sier­tes System.
  • Netzwerk: Eine stabile Internet- oder WLAN-Ver­bin­dung für den Fern­zu­griff.
  • Root-Rechte: Du benötigst ad­mi­nis­tra­ti­ve Rechte für die In­stal­la­ti­on und das Setup.
  • Software: Pakete wie TigerVNC, RealVNC oder x11vnc aus den Re­po­si­to­ries.
  • Desktop-Umgebung: Eine in­stal­lier­te Ober­flä­che (z. B. GNOME oder XFCE).
  • Firewall: Port 5900 (oder ent­spre­chend angepasst) muss für den VNC-Traffic offen sein.

Schritt-für-Schritt-Anleitung: VNC-Server unter Ubuntu 22.04 in­stal­lie­ren

Bei der Wahl des VNC-Servers und der Desktop-Umgebung hast du viele Mög­lich­kei­ten. In diesem Guide setzen wir auf die XFCE-Ober­flä­che und das TigerVNC-Paket aus dem Ubuntu-Re­po­si­to­ry. Diese Kom­bi­na­ti­on ist besonders res­sour­cen­scho­nend und schnell, wodurch deine Ver­bin­dung selbst bei ge­rin­ge­rer Band­brei­te flüssig läuft.

Schritt 1: Pakete ak­tua­li­sie­ren

Bevor es losgeht, bringst du dein System auf den neuesten Stand. Nutze dafür diese Befehle:

sudo apt update
sudo apt upgrade
bash

Schritt 2: In­stal­la­ti­on der Desktop-Umgebung

Der VNC-Server braucht eine grafische Ober­flä­che, um diese über das Netzwerk zu über­tra­gen. Ubuntu nutzt stan­dard­mä­ßig GNOME, wir in­stal­lie­ren hier jedoch das schlanke XFCE.

sudo apt install xfce4 xfce4-goodies
bash

Das Paket xfce4-goodies liefert dir zu­sätz­lich prak­ti­sche Tools und Er­wei­te­run­gen für XFCE.

Schritt 3: Einen neuen Benutzer anlegen

Aus Si­cher­heits­grün­den solltest du den VNC-Server nicht als Root-User betreiben. Wir erstellen daher einen User namens „john“ und geben ihm die nötigen Rechte.

Lege den Benutzer an und vergib ein Passwort:

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

Der Befehl sudo useradd -m -s /bin/bash john erstellt „john“, legt ein Home-Ver­zeich­nis an und setzt die Standard-Shell auf /bin/bash. Mit sudo passwd john setzt du ein Passwort – achte hier auf maximale Si­cher­heit.

Damit „john“ ad­mi­nis­tra­ti­ve Aufgaben erledigen kann, fügst du ihn der sudo-Gruppe hinzu:

sudo usermod -aG sudo john
bash

Jetzt kann der neue User Befehle mit erhöhten Rechten ausführen.

Prüfe die Be­rech­ti­gun­gen, indem du dich als „john“ anmeldest und die Root-Rechte testest:

su - john
sudo su
bash

Mit su - john wechselst du zum User, mit sudo su forderst du Root-Rechte an. Erscheint die Ein­ga­be­auf­for­de­rung root@hostname, hat alles geklappt.

Schritt 4: In­stal­la­ti­on der VNC-Server-Software

Wir nutzen TigerVNC, da es stabil läuft und sehr populär ist. In­stal­lie­re es so:

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

Damit sind die Server-Software und alle not­wen­di­gen Ab­hän­gig­kei­ten auf deinem System.

Schritt 5: Erstellen der VNC-Server-Instanz

Lege nun das Passwort für den Zugriff auf den VNC-Server fest:

vncserver
bash

Du wirst nach einem Passwort gefragt. Optional kannst du auch ein View-only-Passwort erstellen, falls jemand nur zuschauen, aber nicht steuern darf.

Beim ersten Start wird ein Display erzeugt, meist :1. Die Nummer findest du in der Terminal-Ausgabe.

Beispiel:

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

Merke dir die Display-Nummer (hier :1), du brauchst sie später für den Client.

Schritt 6: Kon­fi­gu­rie­ren der VNC-Server-Instanz

Damit XFCE beim Start au­to­ma­tisch lädt, erstellst du eine Kon­fi­gu­ra­ti­ons­da­tei. Die Datei ~/.vnc/xstartup sollte diesen Inhalt haben:

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

Mache die Datei mit diesem Befehl aus­führ­bar:

chmod +x ~/.vnc/xstartup
bash

Schritt 7: VNC-Server als System-Service ausführen

Als Systemd-Dienst lässt sich der VNC-Server kom­for­ta­bel steuern und startet bei jedem System-Boot au­to­ma­tisch mit.

Erstelle die Dienst-Datei mit einem Editor:

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

Füge diesen Inhalt ein:

[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

Ersetze <your-username> durch deinen Usernamen. Lade die Kon­fi­gu­ra­ti­on und aktiviere den Dienst:

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

Der Befehl sudo systemctl enable vncserver@1.service sorgt dafür, dass Display :1 beim Hoch­fah­ren be­reit­steht. Dabei wird vncserver@.service genutzt und der Platz­hal­ter %i durch 1 ersetzt.

Schritt 8: Firewall-Kon­fi­gu­ra­ti­on

Falls deine Firewall aktiv ist, musst du den VNC-Port freigeben. Standard ist Port 5900 plus Display-Nummer. Bei Display :1 ist das Port 5901.

Port öffnen:

sudo ufw allow 5901/tcp
bash

Status kon­trol­lie­ren:

sudo ufw status
bash

Die Ausgabe sollte so aussehen:

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

Schritt 9: Ver­bin­dung zum VNC-Server her­stel­len

Du brauchst nun einen VNC-Client (z. B. RealVNC, TigerVNC Viewer oder TightVNC Viewer). Für maximale Si­cher­heit empfehlen wir einen SSH-Tunnel, um die Daten ver­schlüs­selt zu über­tra­gen.

Baue den SSH-Tunnel auf:

ssh -L 59000:localhost:5901 -C -N -l <your-username>@<server-ip>
bash
  • ssh: Der Befehl für die ver­schlüs­sel­te SSH-Ver­bin­dung.
  • -L 59000:localhost:5901: Leitet Port 59000 lokal an Port 5901 auf dem Server weiter.
  • C: Kom­pri­miert die Daten für eine schnel­le­re Über­tra­gung.
  • N: Startet nur den Tunnel ohne Shell-Befehle aus­zu­füh­ren.
  • -l <your-username>: Dein Be­nut­zer­na­me auf dem Server.
  • <server-ip>: Die IP oder der Hostname deines Servers.
Hinweis

Nutze statt <your-username> deinen Usernamen und statt <server-ip> die Server-IP.

Verbinde dich im VNC Viewer nun einfach mit localhost:5901.

So ist deine gesamte Sitzung durch den SSH-Tunnel geschützt.

Schritt 10: VNC-Server verwalten

Hier sind die wich­tigs­ten Befehle zur Steuerung:

Server stoppen:

vncserver -kill :1
bash

Server neu starten:

vncserver :1
bash

Dienst beenden (via systemd):

sudo systemctl stop vncserver@:1
bash

Status abfragen:

sudo systemctl status vncserver@1
bash

Die Be­stä­ti­gung sieht etwa so aus:

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

Schritt 11: Feh­ler­be­he­bung

Klappt etwas nicht? Prüfe diese Punkte:

  • Logs: Schau in ~/.vnc nach Feh­ler­mel­dun­gen.
  • Netzwerk: Blockiert eine Firewall oder ein Router den Port?
  • Config: Checke die Datei ~/.vnc/xstartup auf Tipp­feh­ler beim Desktop-Start.

Nun kannst du dein System bequem aus der Ferne steuern. Falls du Windows-User bist, schau dir auch unseren Guide „VNC Server unter Windows in­stal­lie­ren“ an.

Zum Hauptmenü