23.05.2024 - Erste Veröffentlichung
Diese Anleitung/Information erhebt keinen Anspruch auf Vollständigkeit und kann Fehler enthalten und die Benutzung erfolgt auf eigene Gefahr.
Es wird keinerlei Haftung für Schäden und/oder Datenverluste übernommen.
Diese Anleitung setzt ein fertig konfiguriertes Raspberry Pi OS mit grafischer Oberfläche voraus.
Wer heute auf den Raspberry Pi von außen auf die grafische Oberfläche zugreifen möchte, ohne dafür Monitor/Maus/Tastatur direkt am Pi nutzen zu benutzen, hat mehrere Möglichkeiten:
- XRDP
- RealVNC
- TigerVNC
- Raspberry Pi Connect
XRDP
Bei dieser Art des Zugriffs installiert man auf dem Pi das gleichnamige Paket und kann dann z.B. über den in Windows 10/11 enthaltenen Remote Desktop Client eine Verbindung herstellen.
Diese Version des Zugangs habe ich früher gerne genutzt, da es recht unkompliziert ist/war und auch unter dem neuen grafischen System Wayland recht gut zu funktionieren scheint, zumindest kann ich es nach wie vor auch damit noch nutzen.
Infos:


RealVNC
Wenn beim Pi von VNC geredet/geschrieben wird, ist meist das von RealVNC realisierte VNC gemeint, das auch schon seit ewigen Zeiten im Raspberry Pi OS zu finden und/oder ggf. leicht nachzuinstallieren ist.
Hierbei ist zum Betrieb der VNC-Server meist schon vorinstalliert und für den Client gibt es je nach System die passende Clientsoftware.
Bzgl. dem neuen Wayland System auf dem Pi kann man von Zeit zu Zeit bei RealVNC schauen, wie die Unterstützung dort vorangeschritten oder bereits verwirklicht wurde.
Infos:


TigerVNC
Bei diesem Gespann aus Server und Client handelt es sich um System, dass bereits wunderbar mit der X11 Alternative Wayland arbeitet.
Auch die Erweiterung LabWC (angelehnt an OpenBox unter X11 / die auf dem Pi nachinstalliert werden kann) scheint bereits zu funktionieren.
Für mich ist TigerVNC daher momentan die erste Wahl und wird in dieser Anleitung auch beschrieben.
Infos:


Raspberry Pi Connect
Dieses neue System (aktuell noch BETA) ist im OS nachinstallierbar und am ehesten so beschreibbar:
Hierbei wird statt mit einem Client einfach per Browser auf den Pi zugegriffen.
Um diesen Service zu nutzen, ist eine Registrierung des Pis bei der Foundation notwendig, vergleichbar mit TeamViewer oder Anydesk.
Man kann damit weltweit auf seinen freigegebenen Pi zugreifen, die Verbindung wird über die Foundation hergestellt.
Trotzdem bleibt zu bedenken, dass hier auch Daten (wie auch bei TV oder AD) über den Diensteanbieter laufen.
Wer das nicht möchte, sollte also zu Diensten greifen, die Direktverbindungen zwischen Pi und Client herstellen.
Website dazu von der Foundation:


Weitere Services wie TeamViewer, Anydesk und Co. lasse ich außen vor, da das eher in professionelleren Umgebungen genutzt wird und weitere (auch kostenpflichtige) Services hier meist nicht notwendig sind, wenn man mal eben nur per Fernzugriff auf den Pi schauen möchte.
Doch nun geht es an die Installation:
Wie immer gilt: System aktualisieren
Code: Alles auswählen
sudo apt update && sudo apt full-upgrade -y
Code: Alles auswählen
sudo apt install tigervnc-standalone-server -y
Code: Alles auswählen
sudo nano /etc/tigervnc/vncserver-config-mandatory
Code: Alles auswählen
# $localhost should the TigerVNC server only listen on localhost for
# incoming VNC connections.
#
# Example: $localhost = "yes";
# Example: $localhost = "no";
Code: Alles auswählen
$localhost = "no";
Code: Alles auswählen
# $localhost should the TigerVNC server only listen on localhost for
# incoming VNC connections.
#
# Example: $localhost = "yes";
# Example: $localhost = "no";
$localhost = "no";
Der Zugriff auf den TigerVNC Server benötigt ein Passwort, welches wir als nächstes vergeben:
Code: Alles auswählen
sudo tigervncpasswd
Danach erscheint noch die Frage, ob wir ein "Nur-Ansicht-Passwort" festlegen möchten:
Code: Alles auswählen
Would you like to enter a view-only password (y/n)?
n
, was nach der Eingabe auch nochmal bestätigt wird.Jetzt starten wir den Server mit seinen neuen Einstellungen:
Code: Alles auswählen
tigervncserver
Code: Alles auswählen
New Xtigervnc server 'raspberrypi:1 (pi)' on port 5901 for display :1.
Use xtigervncviewer .... usw. usf.
pi
und dessen Passwort über den Port 5901
ein.Nun benötigen wir für den PC, von dem wir darauf zugreifen wollen, noch den passenden Client.
Diesen finden wir auf der entsprechenden GitHub Seite:


Hier habe ich nun keinen Direktlink platziert, da sich die Version von Zeit zu Zeit ändert.
Das ist aber kein Problem.
Auf der momentan aktuellen Versionsseite befindet sich beispielsweise der folgende Link:


Dieser bringt uns nun zur Auswahl der Clients zu den verschiedenen unterstützen Betriebssystemen.
Dort dann den passenden Client durch Klick darauf herunterladen:
Für Windows 10/11 z.B.:
vncviewer64-1.13.1.exe
<= Beispiel !! / Bitte die aktuellste Version nehmen !!Diese Datei am besten dort speichern, wo man sie leicht wiederfindet, denn diese kann direkt durch Doppelklick gestartet werden.
Nach dem Start erscheint die recht übersichtliche Clientoberfläche:

Wie auf dem Bild zu sehen ist, habe ich hier den Hostnamen meines Raspberry Pi eingetragen.
Wer hier ggf. Probleme hat, kann stattdessen auch die IP Adresse eingeben, die der Pi am Router bekommen hat.
Ganz wichtig: Der zuvor wie beim Start des Servers angezeigte Port muss mit angegeben werden !!
Also hier in meinem Beispiel:
raspberrypi:5901
In den
Options
können noch weitere Einstellungen vorgenommen werden.Wer nur intern im eigenen Netz arbeitet, kann die Voreinstellungen quasi so lassen, wie sie sind.
Bei Arbeiten von Außerhalb sollten auf jeden Fall die Sicherheitseinstellungen angepasst werden.
Und der Port müsste ebenfalls im Router freigegeben werden, was aber ausdrücklich nicht zu empfehlen ist !!
Dann lieber von außen per VPN Verbindung ins Netzwerk verbinden und dann den Client so nutzen, wie im internen Netz.
Was allerdings doch interessant in den Options ist:
Options
=>Input
=>Keyboard
=>Menu key
=>F8
Options
=>Display
=>Display mode
=> je nach Wunsch
Beim zweiten Punkt kann man den gewünschten Bildschirmmodus als Standard beim Öffnen festlegen.
Nach dem Klick auf
Connect
erscheint die Abfrage nach dem Passwort, was wir nach der Installation des Servers festgelegt haben:
Dass die Verbindung nicht sicher sei, kommt daher, weil wir die Verbindung auch nicht wirklich abgesichert haben, was aber im eigenen Netzt nicht weiter stört, wenn man den Zugang nicht vor Fremden (im eigenen Netz, wie z.B. Besuch) schützen muss.
Nach der Eingabe des Passworts und dem anschließenden Klick auf
OK
erscheint die grafische Oberfläche vom Pi OS:
Dies ist ein Screenshot im Fenstermodus unter Windows 11.
Diesen Fenstermodus habe ich gewählt, da ein Screenshot im Vollbildmodus weitaus aufwändiger wäre.
Oben link im Fenster steht daher nochmals der Hostname des Pi un dder aktuell benutze User (raspberrypi / pi).
Das verschwindet, wenn wir per F8 in den Optionen auf den Vollbildmodus umschalten.
Das darunter erschienene kleine
VNC config
Fenster können wir per Rechtsklick Fenster schließen
auf den Namen in der Leiste schließen.Dieses Beispiel geht also vom User
pi
aus.Wenn wir uns als User
root
oder einem anderen User anmelden möchten, müssen wir eine Instanz des Servers vom gewünschten User aus starten.Beim User
root
reicht der Start des Servers mit dem Voransetzen von sudo
, also so:Code: Alles auswählen
sudo tigervncserver
root
eingeloggt.Wird ein anderer User bevorzugt, kann dann eben eine Instanz entweder direkt in dem eingeloggten User gestartet werden oder wir nutzen halt wieder den Befehl
sudo
davor, z.B.:Code: Alles auswählen
sudo -u user tigervncserver
user
ist hierbei durch einen vorhandenen User zu ersetzen und ggf. wird auch nach dessen Passwort gefragt.Es können auch mehrere Instanzen des Servers parallel ausgeführt werden.
Dabei ist zu beachten, dass jede Instanz einen eigenen Port bekommt, der aufwärts gezählt wird, also ab 5901, 5902, ....
Der TigerVNC Server wird nach dem Booten nicht automatisch gestartet, sondern muss für die Benutzung manuell mit dem entsprechenden User gestartet werden.
Sicherlich kann dies auch automatisiert werden aber in der Zeit, während ich diese Anleitung erstellt habe, hat es sich herausgestellt, dass ein manuelles Starten auch seine Vorzüge hat und dadurch auch keine mehrfache Ressourcen verbrauchende Instanzen erzeugt.
Trotzdem kann man natürlich auch TigerVNC automatisch starten lassen.
Dazu müssen wir in der Konfiguration auch den/die User anlegen, mit denen nachher auf den Server zugegriffen werden soll.
Wir legen also für den gewünschten User eine eigene Instanz an, die dann beim Booten gestartet werden soll.
Dazu öffnen wir folgende Datei:
Code: Alles auswählen
sudo nano /etc/tigervnc/vncserver.users
Code: Alles auswählen
# TigerVNC User assignment
#
# This file assigns users to specific VNC display numbers.
# The syntax is <display>=<username>. E.g.:
#
# :2=andrew
# :3=lisa
pi
zu :1
.Das sieht fertig dann so aus:
Code: Alles auswählen
# TigerVNC User assignment
#
# This file assigns users to specific VNC display numbers.
# The syntax is <display>=<username>. E.g.:
#
# :2=andrew
# :3=lisa
:1=pi
Code: Alles auswählen
sudo systemctl enable tigervncserver@:1.service
Code: Alles auswählen
sudo systemctl start tigervncserver@:1.service
Jetzt den Pi rebooten und testen:
Code: Alles auswählen
sudo reboot
Code: Alles auswählen
sudo systemctl stop tigervncserver@:1.service
Code: Alles auswählen
sudo systemctl disable tigervncserver@:1.service
Code: Alles auswählen
sudo -u user tigervncpasswd
user
ist hier wieder mit einem im System vorhandenen User zu ersetzen.Damit das neue Passwort funktioniert, muss der Server beendet und neu gestartet oder der Pi neu gestartet werden.
Um die laufenden Instanzen anzuzeigen, hilft folgender Befehl:
Code: Alles auswählen
tigervncserver -list
Code: Alles auswählen
TigerVNC server sessions:
X DISPLAY # RFB PORT # RFB UNIX PATH PROCESS ID # SERVER
1 5901 1094 Xtigervnc
Code: Alles auswählen
tigervncserver -kill :DISPLAYNUMMER oder tigervncserver -clean -kill :DISPLAYNUMMER
-clean
löscht auch gleich noch die dazugehörigen Logdateien.Sieht dann so aus:
Code: Alles auswählen
pi@raspberrypi:~ $ tigervncserver -clean -kill :1
Killing Xtigervnc process ID 1094... success!
Code: Alles auswählen
tigervncserver -clean -kill :*

Dies nur als Tipp, da ich des Öfteren (auch in XRDP) den Client nie über das normale Abmeldenmenü beenden konnte.
Ansonsten gäbe es noch viel, dass man zum TigerVNC schreiben könnte, jedoch verweise ich da auf die dazugehörigen Dokumentationen auf der Website des Paketes unter der folgenden Adresse:


Gerade was Sicherheit im Falle des externen Zugriffs angeht, müssen hier weitere Maßnahmen getroffen werden.
Diese Anleitung stellt daher nur einen Anfang dar, um diesen Service auf dem Raspberry Pi intern im lokalen Netz nutzen zu können.
Ansonsten, wie immer: Viel Erfolg.