| updated: | 2026 24. May |
| published: | 2023 04. February |
VNC
Gnome's VNC Server VinoDas Virtual Network Computing (VNC) ist ein Verbindungsdienst und erlaubt es einen lokalen Rechner (Client) einen entfernten Rechner anzuzeigen und ggf. fern (Remote) zu steuern. Im Gegensatz zu anderer Fernwartungssoftware ist VNC plattformunabhängig.
Vino-VNC-Server
Vino ist der alte GNOME-VNC-Server und wird mit dem gleichnamigen Packet installiert. Vino benötigt eine laufende X11-Session. Welches grafische Sitzungsprotokoll gestartet ist, erfährst du mit:
# Sitzungsprotokoll checken, Ergebnis muss Type=x11 sein
loginctl show-session $(loginctl | grep $(whoami) | awk '{print $1}') -p Type -p Id
Das grafische Sitzungsprotokoll Type=x11 muss für Vino gestartet sein. Ist das nicht der Fall, musst du diesen beim Logging im grafischen Display-Manager auswählen (z.B. Ubuntu Xorg). Auf Konsolenebene (also auch über eine SSH-Verbindung) kannst du die aktuelle grafische Sitzung anhalten und mit X11 neu starten.
# Ist gdm3 der aktuelle Display Manager
systemctl status display-manager
cat /etc/X11/default-display-manager
ls -l /etc/systemd/system/display-manager.service
# Auf dem System installierte Sessions anzeigen
grep '^Name=' /usr/share/{x,wayland-}*sessions/*.desktop
# Wayland auf false setzen in /etc/gdm3/custom.conf
sudo sed -i 's/^#WaylandEnable=false/WaylandEnable=false/' /etc/gdm3/custom.conf
# Neustart grafische Systen
sudo systemctl restart display-manager.service
# oder mit
sudo systemctl restart gdm.service
Im Weiteren sollte der Vino-Server nicht mit masked blockiert sein. Das überprüfst du mit:
systemctl --user list-unit-files | grep vino
# Ergebnis
# vino-server.service masked enabled -> falsch
# Vino-Server desmaskieren
systemctl --user unmask vino-server
# Ergebnis
# vino-server.service static -> richtig
Folgende Befehle starten den Vino-VNC-Server:
# Server Start, Status
systemctl --user restart vino-server # VNC starten als Benutzer
systemctl --user status vino-server
systemctl --user stop vino-server
/usr/lib/vino/vino-server --sm-disable # VNC starten als root
cp /usr/share/applications/vino-server.desktop ~/.config/autostart/
Sitzungsprotokolle im System
Welche weiteren Sitzungsprotokolle im System installiert sind, erfährst du mit:
# installierte Sessions anzeigen
grep '^Name=' /usr/share/{x,wayland-}*sessions/*.desktop
# verwendeter Display-Manager
systemctl status display-manager
cat /etc/X11/default-display-manager
ls -l /etc/systemd/system/display-manager.service
Netzwerk, Port
netstat -tulpen | grep -i vino # Prüfe ob Vino gestartet ist
pgrep -a vino # Prüfe mit ps
netstat -nl | grep -i 590 # Prüfe Port 590x
ip addr # Lokale IP-Adresse ermitteln
ifconfig # Lokale IP-Adresse ermitteln
Server-Einstellungen
Typischerweise werden unter Gnome alle Konfigurationseinstellungen in Schemas gespeichert und verwaltet. So auch für den GNOME-VNC-Server Vino. Mit einem der folgenden Programme können diese vorgenommen werden:
# Vino Einstellungen vornehmen mit:
gsettings (terminal)
dconf (terminal)
dconf-editor (gui)
Einstellungen mit dconf-editor (Gui)
Die Einstellungen im dconf-editor sind unter folgendem Zweig zu finden: .
Sollte dieser Zweig nicht vorhanden sein, dann ist das Packet vino zu installieren.
Hinweis: Vino ist der alte VNC-Server in Gnome. Die Einstellungen in und haben keine Auswirkung auf den Vino-Server. Sie sind nur für das neuere GNOME Remote Desktop zuständig und können für Vino auch abgeschaltet werden.
Einstellungen mit gsettings (console)
Optionen auf der Konsole ausgegeben:
# Listet alle Schlüssel auf
gsettings list-keys org.gnome.Vino
# Listet Schlüssel und Belegung auf
gsettings list-recursively org.gnome.Vino | column -t -s " "
# Listet Schlüssel und Belegung auf
for i in $(gsettings list-keys org.gnome.Vino); do echo -e "$i:$(gsettings get org.gnome.Vino $i)" | awk -F ":" ' {printf "%30s \t", $1; printf "%s \n", $2}' ; done
Für den Server stehen folgende Optionen bzw. Einstellungen zur Verfügung:
| Option | Standardwert | Beschreibung |
|---|---|---|
| alternative-port | 5900 | |
| authentication-methods | [‘vnc’] | |
| disable-background | false | Hintergrundbild abschalten. Sollte auf false bleiben, da ggf. der Vino-Server wegen der Verwendung alter Schemas und Schlüssels nicht startet. |
| disable-xdamage | false | XDamage - Erweiterung von Xorg abschalten bei Problemen mit Videotreiber. |
| icon-visibility | ‘client’ | |
| lock-screen-on-disconnect | false | |
| mailto | '' | |
| network-interface | '' | |
| notify-on-connect | true | Eine Meldung wird auf dem Desktop des Server angezeigt. |
| prompt-enabled | true | Der Benutzer muß die Verbindung zum Client mit einem Mausklick annehmen. |
| require-encryption | false | Verschlüsselung an/abschalten (unsicher, da zu alt). Auf false setzen und stattdessen SSH-Tunnel verwenden. |
| use-alternative-port | false | |
| use-upnp | false | |
| view-only | false | |
| vnc-password | ‘keyring’ |
Minimalkonfiguration zum Testen
gsettings set org.gnome.Vino authentication-methods "['none']"
gsettings set org.gnome.Vino prompt-enabled false
gsettings set org.gnome.Vino require-encryption false
gsettings set org.gnome.Vino disable-background false
systemctl --user restart vino-server.service
vncviewer -quality 0 -bgr233 -depth 8 <ip-adresse>
Mit der Taste [F8] öffnet sich ein Popup-Menu des VNC-Viewers. Damit kann der Viewer beendet werden.
Konfiguration mit Paßwort
Für die Verbindung mit Paßwort ist der Schalter authentication-methods wichtig und das VNC-Paßwort muss gesetzt werden.
gsettings set org.gnome.Vino authentication-methods "['vnc']"
gsettings set org.gnome.Vino prompt-enabled false
gsettings set org.gnome.Vino require-encryption false
gsettings set org.gnome.Vino disable-background false
gsettings set org.gnome.Vino vnc-password $(echo -n 'test123' | base64)
vncviewer -quality 0 -bgr233 -depth 8 -compresslevel 5 -encodings tight <ip-address>
xtightvncviewer -quality 0 -bgr233 -depth 8 -compresslevel 5 -encodings tight <ip-address>
Verbindung mit SSH-Tunnel
Die Option -via baut automatisch eine Verbindung mit SSH-Tunnel auf.
Dazu muss auf der Maschine des VNC-Server (Remote-PC) ein SSH-Server (Port 22 o.a.) laufen.
Nach dem Aufruf ist als Erstes das SSH-Passwort des Benutzers einzugeben.
Als Zweites wird das VNC-Passwort verlangt, das mit der Option gsettings set org.gnome.Vino vnc-password gesetzt wurde.
xtightvncviewer -quality 0 -bgr233 -depth 8 -compresslevel 7 -encodings tight -via <user-name>@<ip-address> localhost:0
Mit der Umgebungsvariable VNC_VIA_CMD können weitere SSH-Optionen übergeben werden.
export VNC_VIA_CMD="/usr/bin/ssh -f -v -L %L:%H:%R %G sleep 20"
Ein SSH-Tunnel kann auch manuell über zwei Konsolen erfolgen.
# Konsole 1
ssh -v -L 5900:localhost:5900 <user-name>@<ip-address>
# Konsole 2
xtightvncviewer localhost:0
VNC-Clients
Ein VNC-Client ist ein Programm, das es gestattet, auf einem PC mit installiertem VNC-Server zuzugreifen bzw. dessen Inhalt anzuzeigen. Es existiert eine Vielzahl an freien VNC-Clients z.B. xtightvncviewer oder Remmina.
VNC mit Remmina
Benötigt werden die IP-Adresse, der Benutzername sowie der Legitimierungstyp (SSH-Agent).
Ist auf dem VNC-Server die Option prompt-enabled auf TRUE gesetzt, dann erscheint eine Bildschirmnachricht auf dem VNC-Server und der Benutzer muss die Anmeldung mit einem Mausklick bestätigen.