Ihre Browserversion ist veraltet. Wir empfehlen, Ihren Browser auf die neueste Version zu aktualisieren.

Raspberry Pi Zero W V1.1, VNC, SSH, DDNS

Veröffentlicht am 08.09.2017

Anleitung: Grafische Fernsteuerung eines Raspberry Pi Zero W V1.1 mit Verschlüsselung. Bereich: Weltweit

 

Der Raspberry wurde mit NOOBS LITE aufgesetzt. Dort wurde als Betriebssystem das empfohlene Raspbian gewählt.

Das Bild stammt aus einer Fremdquelle und hat mit Sicherheit anders ausgesehen, aber Raspbian konnte man an der selben, ersten, Stelle auswählen und installieren.

 

 

Natürlich müssen für unsere Zwecke Netzwerk und Internet funktionieren. Dieses, manchmal sehr simple manchmal aber auch haarsträubende, Thema behandle ich hier nicht.

Hier sieht man eine aufgerufene Website und den Netzwerkmanager der die Verbindung zum, bei mir existierenden, WLAN-Netzwerk mit Namen "C05311" bestätigt.

 

 

Nun zu den Einstellungen; man öffne ein Terminal bzw. Console bzw. CLI und tippe dort "sudo raspi-config" gefolgt von einem Druck auf Enter. Es gibt dort auch sehr wichtige Dinge die man einstellen sollte, zum Beispiel das Standard-Passwort ändern. Konzentriert auf unser Ziel gehts aber zu Punkt "3 Boot options", dann weiter zu Punkt "B1 Desktop / CLI". Hier aktiviert man "B4 Desktop Autologin".

Danach, wenn man wieder im Hauptmenü von raspi-config ist, nutzt man "5 Interfacing Options" wo man "P2 SSH" einschaltet.

Jetzt kann man raspi-config beenden.

Nun zum VNC-Server. Man kann zwar auch den, bereits integrierten, realvnc-Server nutzen; Da das, meines Wissens, aber nur in Verbindung mit dem realvnc-viewer funktioniert, war mir das zu viel Abhängigkeit. Ich entschied mich für die x11vnc-Lösung.

Hierzu befiehlt man in der Console "sudo apt update", danach "sudo apt upgrade",  danach "sudo apt install x11vnc".

 

Jetzt brauchen wir eine Internetadresse welche mit unserem raspi verbunden ist. Dies sind Dinge die man vom raspi aus erledigen kann, aber auch von jedem anderen browserfähigen Gerät.

Hierzu werden benötigt:

-Dynamic DNS Server (DDNS). Der reagiert auf die Internetadresse, leitet dann alle Daten (bei uns also SSH- und VNC-Verbindungen) weiter.

-lokaler DDNS-Client. Welcher regelmäßig dafür sorgt dass die Weiterleitung dauerhaft funktioniert.

-lokaler Port forwarder. Sorgt lokal für die Weiterleitung an den richtigen Empfänger.

Die DDNS Technik sorgt dafür dass Verbindungen aus dem Internet bis zum Hausanschluß kommen. Zum Beispiel kann ein VNC-Client von irgendwo in der Welt ein lokales Gerät fernsteuern, z.B. unseren raspi. Oft wird dazu ein kostenloser Dienstleister in Anspruch genommen. Ich zum Beispiel habe mir eine kostenlose Domainadresse von der spdyn.de geben lassen.

Der lokale DDNS-Client teilt dem DDNS Anbieter in regelmäßigen Abständen die korrekte Verbindung zum Hausanschluß mit. Oft wird diese Aufgabe vom Router erledigt. Bei mir ist dies ein weiterer Raspberry.

Der lokale Port forwarder sorgt dafür dass die Daten-Pakete ans richtige lokale Gerät gesendet werden. Für VNC braucht man nur den Port 5900 weiterzuleiten. Doch wir brauchen auch die Verschlüsselung von SSH (Port 22). Siehe Bild.

 

 

An dieser Stelle starten wir den raspi mal neu und zwar ohne angeschlossenen Monitor.

In "sudo raspi-config", "7 Advanced Options", "A5 Resolution" stellt man nun die gewünschte Bildschirm-Auflösung ein. Damit das in Kraft tritt kann man den raspi neu starten. Ich vermute, diese Auflösung wird auch genutzt werden wenn man einen realen Monitor anschliesst.

Jetzt braucht man noch einen SSH-Tunnel. Ich nutze dafür putty. Die Tunnel einstellung sieht man auf dem Bild. Im Bereich "Session" sollte für unsere Verbindung als Hostname die Internetadresse eingetragen sein welche wir beim DDNS-Anbieter eingerichtet haben, z.B. MeineWunschAdresse.spdyn.de.

 

 

So, nach dem ganzen Aufwand: Der raspi läuft. Auf einem PC starten wir putty, und dort starten wir die eingerichtete Verbindung. Wir bekommen nun die linux-Console des raspi angezeigt. Dort starten wir das VNC-Host Programm x11vnc mittels ""x11vnc -localhost -display :0". VORSICHT, wenn man -localhost weglässt kann jeder aus dem Internet OHNE Verschlüsselung fernsteuern!

Auf dem PC starten wir einen VNC-Client/VNC-Viewer, da sollte so ziemlich jeder funktionieren tightvnc-viewer, realvnc-viewer, etc. Mit dem Viewer stellt man nun eine Verbindung zu "localhost:0" her. Zumindest der realvnc-viewer meckert wegen fehlender realvnc-Verschlüsselung. Aber wenn man das -localhost beim x11vnc-Aufruf benutzt hat kommt entweder gar keine Verbindung zustande oder eine verschlüsselte.

 

Viel Spaß.