updated:  2023 17. August
published:  2023 04. February

VNC

Gnome's VNC Server Vino

Das Virtual Network Computing (VNC) erlaubt es einen entfernten Rechner (Server) auf einem lokalen Rechner (Client) anzuzeigen und ggf. zu steuern. Im Gegensatz zu anderer Fernwartungssoftware ist VNC plattformunabhängig.

Befehlsübersicht


 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
 
 systemctl start   vino-server --user	# VNC-Server starten als user
 /usr/lib/vino/vino-server --sm-disable	# VNC starten als root

 systemctl status  vino-server --user	# Status prüfen
 systemctl restart vino-server --user	# VNC-Server restart
 systemctl stop    vino-server --user	# VNC-Server stop

Vino-Server

Vino wird mit dem gleichnamigen Packet installiert. Optionen bzw. Einstellungen für den Vino-Server werden unter Gnome mit einem der folgenden Programme vorgenommen:


 gsettings       (console)
 dconf           (console)
 dconf-editor    (gui)
   
Server-Optionen

Optionen auf der Konsole ausgegeben:


 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 true Hintergrundbild abschalten.
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 true Verschlüsselung an/abschalten. Für Testzwecke auf false setzen und bei Benutzung des VNC-Client xtightvncviewer. Bei der Nutzung von remmina auf true setzen.
use-alternative-port false
use-upnp false
view-only false
vnc-password ‘keyring’
Einstellungen vornehmen mit dconf-editor (Gui)

Die Einstellungen im dconf-editor sind unter folgendem Zweig zu finden: «Menu: org → gnome → desktop → remote‍-‍access». Sollte dieser Zweig nicht vorhanden sein, dann ist das Packet vino zu installieren.

Einstellungen mit gsettings (Konsole)

 # Bildschirmfreigabe aktivieren ab Ubuntu Jammy 22.04
 gsettings set  org.gnome.desktop.remote-desktop.rdp enable true

 # Listet alle Schlüssel auf
 gsettings	list-keys	org.gnome.Vino

 # Schlüssel ändern
 gsettings set org.gnome.Vino authentication-methods "['vnc']"
   

Bildschirmfreigabe in Ubuntu

Unter Umständen muss in Ubuntu die Bildschirmfreigabe aktiviert werden «Menu: Einstellungen → Freigabe → Bildschirmfreigabe». Aber, das ist abhängig welche Ubuntu Version installiert wurde. Bei älteren Ubuntuversion ist auch das Programm “Arbeitsflächenfreigabe”, bzw. “Desktop sharing” zu installieren.

Freigabe unter Ubuntu Focal 20.04

Unter der Bildschirmfreigabe kann ein VNC-Passwort gesetzt werden. Die Passwortlänge ist in Ubuntu Focal 20.04 auf maximal 8 Zeichen begrenzt. Im Prinzip reicht es jedoch den VNC-Server zu starten.


 # VNC-Server starten als user
 systemctl start   vino-server --user
   

Ein gesetztes VNC-Passwort wird in den Gnome-Desktop-Optionen des VNC-Server angezeigt.


 gsettings get org.gnome.Vino authentication-methods
 ['vnc']
   

Freigabe unter Ubuntu Jammy 22.04

In Ubuntu Jammy 22.04 kann die Bildschirmfreigabe auf der Konsole erfolgen:


 gsettings set  org.gnome.desktop.remote-desktop.rdp enable true
   

Die Begrenzung der Passwortlänge auf 8 Zeichen wurde aufgegeben.

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.

xtightvncviewer


 xtightvncviewer -via <USER-Name>@<IP-Address> -depth 8 -bgr233 -compresslevel 5 -quality 0 localhost:0
   

Die Option -via baut eine Verbindung mit SSH-Tunnel auf. Entsprechend ist das SSH-Passwort einzugeben. Ein gesetztes VNC-Passwort zur Bildschirmfreigabe (authentication-methods = ['vnc']) ist ebenfalls einzugeben. 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"
   

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.

Alternativer Text
 Grundlegende Einstellungen 
Alternativer Text
 SSH-Tunnel 

VNC mit SSH tunneln

Konsole 1: ssh -v -L 5900:localhost:5900 name@192.168.1.33 Konsole 2: xvnc4viewer localhost:0

oder nimm dieses Programm. Damit kannste gleich die Farbtiefe einstellen (geht gut)

xtightvncviewer -via name@xxx.xxx.xxx.xxx -depth 8 localhost:0

Stichworte (tags)