Facebook Button Twitter Button YouTube Button RSS Button

IT-Runde

Raspberry Pi als Remote-Desktop-Gateway

  • Raspberry Pi als Remote-Desktop-Gateway

    Manchmal ist man unterwegs, im Büro bei der Arbeit oder in der Uni und müsste eigentlich „mal eben kurz“ etwas auf dem heimischen Desktop-PC nachsehen. Da wünscht man sich eine möglichst einfache Lösung, um von überall aus auf seinen heimischen PC zugreifen zu können. Ich möchte euch hier gerne zeigen, wie ihr eine solche Möglichkeit ganz einfach mit einem Raspberry Pi einrichten könnt. Der Raspberry Pi hat den Vorteil, dass er günstig in den Anschaffungs- und Unterhaltungskosten ist. Der kleine Rechner soll über das Internet erreichbar gemacht werden und uns den Zugang in unser Heimnetzwerk ermöglichen. Wenn unser Desktop-PC „Wake on Lan“ (WoL) unterstützt, soll der Raspberry Pi idealerweise auch in der Lage sein, unseren Desktop-PC nur bei Bedarf „aufzuwecken“. Das spart ungemein an Energiekosten, da der PC nicht rund um die Uhr eingeschaltet sein muss.

    Was benötigen wir?

    • Raspberry Pi mit Netzteil und SD-Karte
    • Desktop-PC mit „Wake on Lan“ (WoL)-Funktion
    • Einen Account bei einem dynamischen DNS Provider
    • Router mit dynamischem DNS-Provider Unterstützung

     
     

    Konfiguration des Raspberry Pi

    Eine Installation des Raspberry Pi Betriebssystems „Raspbian“ soll kein Bestandteil dieses Artikels werden und wird als vorausgesetzt angesehen. Wer mehr zur Installation des Betriebssystems wissen möchte, kann sich z.B. hier erkundigen. Da der Raspberry Pi über das Internet erreichbar werden soll, ist es ratsam den standard Benutzernamen und das Passwort aus Sicherheitsgründen zu ändern. Dieser Artikel beschreibt kurz die Konfiguration und Installation des XRDP-Servers, des Remotedesktop-Clients „Rdesktop“ und des WoL-Clients „wakeonlan“ auf dem Raspberry Pi.

     
     

    XRDP-Server einrichten

    Für die Verbindung zum Raspberry Pi über das Internet verwenden wir das Remotedesktop-Protokoll. Über dieses Protokoll können wir über den Remotedesktop-Client des Microsoft Windows Betriebssystems auf die grafische Benutzeroberfläche unseres Raspberrys zugreifen. Unter Linux oder Mac muss ein entsprechender Client erst installiert werden.

    Die Installation des XRDP-Servers erfolgt ganz einfach über die Eingabe des Befehls sudo apt-get install xrdp. Nach der erfolgreichen Installation des XRDP-Servers gilt: Aus Sicherheitsgründen ändern wir den Standard Remotedesktop-Port von 3389 auf einen beliebigen anderen Port, beispielsweise 1234. Hierzu muss die Datei /etc/xrdp/xrdp.ini bearbeitet werden und in der Sektion [globals] der Wert „port=3389“ in beispielsweise „port=1234“ abgeändert werden.

    Remotedesktop-Client unter Windows 7

    Die Änderungen müssen gespeichert werden und der Dienst muss durch den Befehl sudo service xrdp restart neugestartet werden.

    Über den Remotedesktop-Client unseres Rechners können wir jetzt die Verbindung zum Raspberry Pi testen. Dazu verwenden wir als Host-Adresse die IP-Adresse des Raspberrys, gefolgt von einem Doppelpunkt und dem konfigurierten Port, zum Beispiel: 192.168.0.5:1234. Sofern alles richtig eingerichtet ist, sehen Sie nach der erfolgreichen Verbindung den Login-Screen des Raspberrys:

    Login-Screen des Raspberry Pis

     
     

    WoL einrichten

    Damit der Desktop-Rechner nicht dauerhaft eingeschaltet sein muss, ist die Einrichtung von Wake on Lan sehr empfehlenswert. Das WoL-Protokoll „weckt“ den Rechner über ein sogenanntes Magic-Paket per Netzwerk auf. Für‘s Aufwecken des Rechners benötigt der WoL-Client einzig die MAC-Adresse des Rechners. Der Client wird ganz einfach über den Befehl sudo aptitude install etherwake installiert. Nach der Installation können wir die Funktion direkt testen. Wir notieren uns hierfür die MAC-Adresse des zu „weckenden“ und WoL-fähigen Rechners und fahren ihn herunter. Nachdem der Rechner ausgeschaltet ist, geben wir am Raspberry Pi den folgenden Befehl ein: sudo wakeonlan 28:D2:44:83:42:1D und der Rechner fährt hoch.

    WoL-Funktion

     
     

    Remotedesktop-Client einrichten

    Bis jetzt haben wir die Möglichkeit auf unseren Raspberry Pi per Remotedesktop zuzugreifen und von hier aus unseren Desktop-Rechner zu booten. Es fehlt nun noch die Möglichkeit per Remotedesktop vom Raspberry Pi aus auf den Desktop-Rechner zuzugreifen. Wichtig hierbei ist, dass auf dem Desktop-Rechner auch der Zugriff über das RDP-Protokoll erlaubt und aktiviert worden ist. Dann installieren wir über den Befehl sudo apt-get install rdesktop den RDP-Client Rdesktop auf dem Raspberry. Nach der Installation kann über den folgenden Befehl eine RDP-Verbindung zum Desktop-Rechner hergestellt werden: rdesktop 192.168.0.10 -f -u myUser -p myPassword -T Hostname

    Kurze Erläuterung der Parameter:

    • -f: Vollbild
    • -u: Benutzername
    • -p: Passwort
    • -T Beschriftung des Fensters

    Durch die Tastenkombination STRG – ALT – Enter kann man zwischen Vollbild- und Fenstermodus wechseln.

     
     

    WoL und Rdesktop automatisieren

    Zur Automatisierung des Verbindungsaufbaus habe ich ein Shell-Script geschrieben, welches mittels Ping-Befehl prüft, ob der Desktop-Rechner eingeschaltet ist. Wenn der Rechner nicht eingeschaltet ist, sendet er den Wake on LAN Befehl, wartet bis der Rechner auf einen Ping antwortet, und stellt automatisch die RDP-Verbindung her:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    
    #!/bin/bash
    host_name="MYHOST"
    host_ip="192.168.0.10"
    host_mac="28:D2:44:83:42:1D"
    username="myUser"
    password="myPassword"
     
    # Weckt den Host per WoL und wartet, bis er erreichbar ist
    function wakeHost() {
            # Host per WoL wecken
            sudo wakeonlan $host_mac
     
            # Warten, bis Host erreichbar ist...
            while ! ping -c 1 $host_ip > /dev/null; do
                    sleep 1;
            done
    }
     
    # Ist der Host gestartet?
    if ! ping -c 1 $host_ip > /dev/null
            then
                    # Host ist nicht erreichbar und muss gestartet werden
                    wakeHost
    fi
     
    # Host ist jetzt gestartet
    # Jetzt RDP-Verbindung aufbauen...
    exec rdesktop $host_ip -f -u $username -p $password -T $host_name

     
     

    Raspberry Pi im Internet erreichbar machen

    Um den Raspberry Pi von überall aus über das Internet zu erreichen, muss am Router ein Port-Forwarding eingerichtet werden. Hierfür ist es sinnvoll, dass der Raspberry Pi über eine feste IP-Adresse verfügt. Der Router muss alle Anfragen auf den Port, welchen wir im XRDP-Server konfiguriert haben, an den Raspberry weiterleiten.

    Da die wenigsten zuhause über eine feste öffentliche IP-Adresse verfügen, brauchen wir einen Account bei einem dynamischen DNS Provider. Hierfür habe ich mir einen Account bei www.no-ip.com eingerichtet. Die Zugangsdaten können im Router, beispielsweise dem Speedport der Telekom, eingetragen werden. Somit übermittelt der Router immer die aktuelle IP-Adresse an den dyn-DNS Provider. Dadurch könnt ihr über euren ausgesuchten Domain-Namen von No-Ip.com auf euer Heimnetzwerk zugreifen.

     

    Ich hoffe ich konnte euch die Konfiguration eines RDP-Gateways näher bringen und freue mich über Kritik und Anregungen.

    Wie gefiel euch der Artikel? Wollt ihr mehr Tutorials über die Einrichtung vom Raspberry Pi lesen? Uns interessiert eure Meinung! 🙂



  1. #1 Tom
    13.05.2015 um 13:28 Uhr

    Spannender Beitrag.
    Ich selbst verwende Teamviewer + Fritz!Box.
    Mit TeamViewer kann man von unterwegs per WOL den PC aufwecken.
    Es sind nur einige wenige Einstellungen nötig.
    Gruß, Tom

    Post ReplyPost Reply
  2. #2 Sergey
    14.08.2015 um 11:36 Uhr

    Ich würde ein Weg über VPN bevorzügen. Fast jeder guter Router hat die Möglichkeit ein VPN einzurichten.
    Es gibt verschiedene VPN-Clients für MacOSx, Linux oder Windows.

    Post ReplyPost Reply
  3. #3 Bernd Rubel
    23.01.2016 um 12:03 Uhr

    Vielen Dank,
    ich habe auf vielen Seiten vergeblich nach einer Möglichkeit gesucht von Raspberry auf einen Windows-Rechner zuzugreifen.
    Ein Hinweis noch. Wenn der Verbindungsversuch mit einer Fehlermeldung endet, muss auf dem Windows-Rechner eventuell eine Verringerung der Sicherheitseinstellungen des RDP-Protokolls eingestellt werden.
    Viele Grüße
    Bernd Rubel

    Post ReplyPost Reply
  4. #4 Mathias
    09.02.2016 um 19:18 Uhr

    Interessanter Ansatz. Ich selbst realisiere das über einen kleinen OpenVPN-Server, über dem ich dann die RDP-Sitzung von außen aufbaue. Alternativ bietet sich zuhause natürlich auch die Möglichkeit an, die FritzBox diese Aufgabe (VPN) übernehmen zu lassen.
    Grüße
    Mathias

    Post ReplyPost Reply
Kommentar schreiben

* Die Checkbox für die Zustimmung zur Speicherung ist nach DSGVO zwingend.

Ich stimme zu.