Mit einem VNC-Server können Sie unter Ubuntu 24.04 eine grafische Desk­topober­flä­che aus der Ferne steuern und Ihren Server kom­for­ta­bel per Remote-Zugriff verwalten. Die Ein­rich­tung er­mög­licht es Ihnen, Programme zu bedienen, Ein­stel­lun­gen vor­zu­neh­men oder Dateien zu verwalten, als säßen Sie direkt vor dem Rechner.

Schritt 1: Vor­aus­set­zun­gen prüfen

Für die In­stal­la­ti­on eines VNC-Servers benötigen Sie zunächst ein ge­eig­ne­tes System wie Ubuntu 24.04 und Zugriff auf das Terminal. Der Zugriff kann lokal oder per SSH erfolgen, bei­spiels­wei­se über einen VPS oder einen Dedicated Server. Außerdem sollten Sie über ein Be­nut­zer­kon­to mit sudo-Rechten verfügen, damit sich benötigte Pakete in­stal­lie­ren lassen.

Damit die grafische Fern­steue­rung funk­tio­niert, muss eine Desk­top­um­ge­bung vorhanden sein. Falls auf Ihrem Server noch keine grafische Ober­flä­che in­stal­liert ist, können Sie bei­spiels­wei­se eine schlanke Umgebung wie XFCE nach­in­stal­lie­ren. Diese benötigt deutlich weniger Res­sour­cen als um­fang­rei­che Desktops wie GNOME und eignet sich daher besonders gut für Server.

Zu­sätz­lich benötigen Sie einen VNC-Client auf Ihrem lokalen Rechner. Programme wie RealVNC Viewer oder TigerVNC Viewer er­mög­li­chen die Ver­bin­dung zum Server über die IP-Adresse. Eine Freigabe des VNC-Ports in der Firewall ist nicht er­for­der­lich, wenn Sie die Ver­bin­dung über einen SSH-Tunnel her­stel­len.

vServer / VPS
VPS un­schlag­bar günstig auf Dell En­ter­pri­se Servern
  • 1 Gbit/s, un­be­grenzt Traffic & mehr Cores
  • Min­des­tens 99,99% Ver­füg­bar­keit & ISO-zer­ti­fi­zier­te Re­chen­zen­tren
  • Aus­ge­zeich­ne­ter 24/7 Premium-Support mit per­sön­li­chem Berater

Schritt 2: System ak­tua­li­sie­ren

Stellen Sie vor Beginn der In­stal­la­ti­on sicher, dass Ihr System auf dem aktuellen Stand ist. Nutzen Sie hierzu folgende Ter­mi­nal­be­feh­le:

sudo apt update
sudo apt upgrade -y
bash

Schritt 3: TigerVNC in­stal­lie­ren

Unter Ubuntu 24.04 empfiehlt sich die Nutzung von TigerVNC, da dieses Paket aktiv gepflegt wird und eine stabile Ver­bin­dung er­mög­licht. Die Open-Source-Software eignet sich zur Ein­rich­tung von VNC-Servern und er­mög­licht den Zugriff auf eine grafische Linux-Ober­flä­che. Sie gilt als stabil, per­for­mant und wird re­gel­mä­ßig gepflegt. TigerVNC un­ter­stützt ver­schlüs­sel­te Ver­bin­dun­gen und lässt sich ver­gleichs­wei­se einfach kon­fi­gu­rie­ren, weshalb die Lösung auch für Ein­stei­ge­rin­nen und Ein­stei­ger gut geeignet ist. In­stal­lie­ren Sie den VNC-Server mit folgendem Befehl:

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

Nach der In­stal­la­ti­on steht der Befehl vncserver zur Verfügung.

Schritt 4: VNC-Passwort festlegen

Starten Sie den VNC-Server zum ersten Mal, um ein sicheres Passwort zu vergeben:

vncpasswd
bash

Sie werden auf­ge­for­dert, ein Passwort fest­zu­le­gen, wobei nur die ersten acht Zeichen be­rück­sich­tigt werden. An­schlie­ßend können Sie optional ein reines An­sichts­pass­wort festlegen.

Nach dem ersten Start wird au­to­ma­tisch eine grund­le­gen­de Kon­fi­gu­ra­ti­on erstellt. Beenden Sie an­schlie­ßend die Sitzung wieder:

vncserver :1
vncserver -kill :1
bash

Schritt 5: VNC-Start­kon­fi­gu­ra­ti­on erstellen

Damit beim Start au­to­ma­tisch die ge­wünsch­te Desk­top­um­ge­bung geladen wird, erstellen Sie eine Kon­fi­gu­ra­ti­ons­da­tei. Wir nutzen hierzu den Text­edi­tor nano, Sie können aber jeden be­lie­bi­gen Text­edi­tor hierzu nutzen.

nano ~/.vnc/xstartup
bash

Fügen Sie folgenden Inhalt in die Datei ein:

#!/bin/bash
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
[ -r "$HOME/.Xresources" ] && xrdb "$HOME/.Xresources"
exec startxfce4
txt

Speichern Sie an­schlie­ßend die Datei und beenden Sie den Editor. Die Kon­fi­gu­ra­ti­on sorgt dafür, dass beim Aufbau einer Ver­bin­dung au­to­ma­tisch die XFCE-Ober­flä­che gestartet wird. Machen Sie die Datei nun mit folgendem Befehl aus­führ­bar:

chmod +x ~/.vnc/xstartup
bash

Schritt 6: VNC-Server starten

Starten Sie nun den VNC-Server erneut:

vncserver :1
bash

Mit diesem Befehl wird eine neue VNC-Sitzung mit der Display-Nummer :1 gestartet. Jede Display-Nummer ent­spricht dabei einer eigenen gra­fi­schen Sitzung und einem festen Netz­werk­port.

Nach dem Start sollten Sie eine Bei­spiel­aus­ga­be ähnlich der folgenden sehen:

new Xtigervnc server 'server:1 (user)' on port 5901
bash

Die Anzeige :1 ent­spricht dem Netz­werk­port 5901, über den die Ver­bin­dung her­ge­stellt wird. Die Port­num­mer ergibt sich aus der Display-Nummer: Display :1 verwendet Port 5901, Display :2 würde bei­spiels­wei­se Port 5902 verwenden. Diese Angaben benötigen Sie später für die Ver­bin­dung mit Ihrem VNC-Client.

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

Um eine sichere Ver­bin­dung zum VNC-Server her­zu­stel­len, wird ein so­ge­nann­ter SSH-Tunnel verwendet. Dabei wird die VNC-Ver­bin­dung durch eine ver­schlüs­sel­te SSH-Ver­bin­dung geleitet, sodass der VNC-Port nicht direkt im Internet er­reich­bar sein muss. Öffnen Sie zunächst ein Terminal auf Ihrem lokalen Rechner und stellen Sie die Ver­bin­dung zum Server mit folgendem Befehl her:

ssh -L 5901:localhost:5901 USERNAME@IP-ADRESSE
bash
Hinweis

Die SSH-Ver­bin­dung muss während der gesamten Nutzung aktiv bleiben, da der Tunnel sonst ge­schlos­sen wird. Wenn Sie die Ver­bin­dung trennen, wird auch die VNC-Sitzung im Client un­ter­bro­chen.

Ersetzen Sie USERNAME durch Ihren Be­nut­zer­na­men auf dem Server und IP-ADRESSE durch die öf­fent­li­che IP-Adresse Ihres Servers. Nach er­folg­rei­cher Anmeldung bleibt die SSH-Ver­bin­dung aktiv und leitet alle Anfragen von Ihrem lokalen Port 5901 an den VNC-Server auf dem Ziel­sys­tem weiter.

Starten Sie an­schlie­ßend den VNC-Client und geben Sie folgende Adresse ein:

localhost:5901
bash

Al­ter­na­tiv können einige VNC-Clients auch die kürzere Schreib­wei­se verwenden:

localhost:1
bash

Beide Varianten verweisen auf dieselbe VNC-Sitzung. Nach dem Ver­bin­dungs­auf­bau werden Sie zur Eingabe des zuvor fest­ge­leg­ten VNC-Passworts auf­ge­for­dert. An­schlie­ßend sollte die grafische Desk­topober­flä­che Ihres Ubuntu-Systems im VNC-Fenster er­schei­nen und kann wie ein normaler Desktop bedient werden.

Hinweis

TigerVNC un­ter­stützt ver­schlüs­sel­te Ver­bin­dun­gen über TLS (z. B. Security-Type TLSVnc), die jedoch explizit über die Option -SecurityTypes aktiviert werden müssen. Ohne diese Angabe nutzt der tigervncserver-Wrapper nur VncAuth und lauscht stan­dard­mä­ßig aus­schließ­lich auf localhost (127.0.0.1), der VNC-Port ist also von außen nicht direkt er­reich­bar. Erst mit -localhost no wird der Dienst auf allen Netz­werk­in­ter­faces geöffnet. Für den Fern­zu­griff empfiehlt sich deshalb der SSH-Tunnel: Er erlaubt die Ver­bin­dung, ohne den VNC-Port nach außen öffnen zu müssen, und sichert die Über­tra­gung zu­sätz­lich durch Ver­schlüs­se­lung und starke Au­then­ti­fi­zie­rung ab.

Schritt 8: VNC-Server au­to­ma­tisch starten (optional)

Damit der VNC-Server nach einem Neustart au­to­ma­tisch verfügbar ist, können Sie einen so­ge­nann­ten systemd-Dienst ein­rich­ten. Dadurch startet die VNC-Sitzung au­to­ma­tisch beim Hoch­fah­ren des Systems, ohne dass Sie den Server manuell starten müssen. Erstellen Sie zunächst eine Service-Datei:

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

Fügen Sie in die erstellte Datei den folgenden Inhalt ein:

[Unit]
Description=VNC Server
After=network.target
[Service]
Type=forking
User=USERNAME
WorkingDirectory=/home/USERNAME
ExecStart=/usr/bin/vncserver -geometry 1280x800 -localhost yes :%i
ExecStop=/usr/bin/vncserver -kill :%i
Restart=on-failure
PIDFile=/home/USERNAME/.vnc/%H:%i.pid
[Install]
WantedBy=multi-user.target
txt

Ersetzen Sie dabei USERNAME durch Ihren tat­säch­li­chen Be­nut­zer­na­men auf dem Server. Auf diese Weise wird si­cher­ge­stellt, dass der VNC-Server mit dem richtigen Be­nut­zer­kon­to gestartet wird. Laden Sie an­schlie­ßend die systemd-Kon­fi­gu­ra­ti­on neu und ak­ti­vie­ren Sie den Dienst:

sudo systemctl daemon-reload
sudo systemctl enable vncserver@1
bash

Starten Sie den Dienst an­schlie­ßend manuell:

sudo systemctl start vncserver@1
bash

Mit folgendem Befehl können Sie prüfen, ob der Dienst korrekt läuft:

sudo systemctl status vncserver@1
bash

Wenn der Dienst aktiv ist, steht Ihnen der VNC-Server nach jedem Neustart au­to­ma­tisch zur Verfügung. Sie können sich dann jederzeit per Remote-Desktop verbinden und die grafische Ober­flä­che Ihres Ubuntu-Systems bequem aus der Ferne nutzen.

Zum Hauptmenü