Der Einplatinencomputer Raspberry Pi 3

etherwake – Der Raspberry Pi als Wake On LAN-Server

Die Artikelserie zum Raspberry Pi
Teil 1 (Link): Der Raspberry Pi 3 – der Alleskönner im Scheckkartenformat
Teil 2 (Link): Installation und Konfiguration von Raspbian Stretch auf Raspberry Pi 3
Teil 3 (Link): Fernzugriff per SSH und VNC auf den Raspberry Pi
Teil 4 (Link): Installation PiVPN – Den Raspberry Pi einfach zum VPN-Server ausbauen
Teil 5 (Link): OpenVPN/PiVPN Benutzerverwaltung auf dem Raspberry Pi
Teil 6 (Link): Installation und Konfiguration von Raspbian Stretch Lite auf Raspberry Pi 3 (ohne Desktop)
Teil 7: Dieser Artikel
Teil 8 (Link): Adblocker mit Pi-hole: Das schwarze Loch für Werbung im Internet
Teil 9 (Link): Die private Cloud auf dem Raspberry Pi – Seafile Server auf Raspian Stretch Lite installieren

Wake On LAN??? Wake On LAN!

Ich bin kein Fan davon, daheim alle Netzwerkgeräte dauerhaft eingeschaltet zu lassen, auch wenn mein z. B. mein NAS durchaus dafür ausgelegt wäre. Wofür? So oft muss ich auf meine Daten auch nicht zugreifen. Aber wenn, dann möchte ich auch gerne möglichst alle Geräte verfügbar haben. Also was tun, wenn das NAS daheim aus ist, du aber eine wichtige Datei oder die Urlaubsbilder jetzt brauchst und nicht erst, wenn du wieder daheim bist?

Das Zauberwort hier heißt Wake On LAN oder auch kurz WoL. Infos dazu findet ihr natürlich auf Wikipedia.

Das Projekt – Wake On LAN Server mit dem Raspberry Pi und etherwake

Zusammengefasst machen wir folgendes: Unseren Raspberry Pi (Desktop oder Lite ist egal), auf dem eventuell bereits unser PiVPN-Server läuft und der daher eigentlich immer eingeschaltet ist mit etherwake zum WoL-Server ausbauen. Die Geräte, die wir aus der Ferne starten möchten, müssen WoL unterstützen, was leider nicht alle tun. Meine alte Synology DiskStation 209 beispielsweise ist nicht WoL-fähig, die DS214 dafür aber schon. Desktop-PCs sind in aller Regel ebenfalls WoL-fähig, auch wenn man hier ein bisschen was einstellen muss.

Wie ihr WoL auf euremPC aktiviert ist sehr stark abhängig vom Betriebssystem und der jeweils verbauten Hardware. Wichtig ist, dass WoL nur über Kabel funktioniert, WLAN ist nicht möglich! Am besten befragt ihr z. B. mal Google. Sucht nach der Typenbezeichnung eures Mainboards oder eurer Netzwerkkarte, je nachdem ob ihr eine onBoard-Netzwerkkarte im PC nutzt oder eine separate.

Wie ihr WoL auf einer DiskStation wie meiner DS214 / DS218j * aktiviert, das habe ich bereits in diesem Artikel beschrieben.

* Bei dem Link handelt es sich um einen Amazon Affiliate-Link. Für euch ändert das nichts am Preis, aber ich erhalte von Amazon eine kleine Provision.

Installation von etherwake unter Raspbian

Los geht’s, die Installation geht schnell und einfach und nach nur ein paar Minuten habt ihr einen funktionierenden WoL-Server.

Zuerst einmal loggt ihr euch auf der Shell eures Raspi ein, per SSH oder lokal am Bildschirm spielt keine Rolle. Dann aktualisieren wir erst mal unser System. Das passiert mit den folgenden beiden Befehlen:

Als nächstes folgt die Installation von etherwake. Die Dokumentation von etherwake findet ihr hier. Die Installation starten wir mit

Die Syntax um ein Gerät zu starten lautet dann auf der Shell

Anstelle von [MAC] gebt ihr die MAC-Adresse des Gerätes im Format 00:11:22:33:44:55 ein, das ihr starten möchtet. Die MAC-Adresse eines Windows-PC findet ihr beispielsweise in der Eingabeaufforderung mit dem Befehl

Start-Skript bauen und/oder mehrere Geräte gleichzeitig starten

Nun ist es natürlich relativ unkomfortabel, sich für alle Geräte die MAC-Adressen zu merken oder aufzuschreiben und jedes Mal einzutippen. Selbstverständlich gibt es auch dafür eine Lösung. Wir legen uns einfach ein Skript an, in dem wir die MAC-Adresse(n) hinterlegen und rufen dann nur noch das auf. Das Skript bekommt einen Namen, den wir uns gut merken können.

Wir wechseln also wieder zurück auf die Shell:

Durch den Befehl oben wird der Texteditor „nano“ geöffnet und eine neue Datei „wol.sh“ erstellt. In diese Datei schreiben wir unseren Befehl von oben:

Anstelle des Namens „wol.sh“ könnt ihr hier natürlich auch so was wie „start-ds214.sh“ nehmen.

Habt ihr mehrere Geräte, die ihr gleichzeitig starten möchtet? Dann schreibt ihr den Befehl einfach mehrfach untereinander, immer mit der jeweils passenden MAC-Adresse.

Mit Strg + o speichern wir die Datei unter dem bereits angegebenen Namen und mit Strg + x beenden wir nano.

Mit dem Kommando

ruft ihr das eben erstellte Skript auf und startet alle dort hinterlegten Geräte. Die Datei könnt ihr auch jederzeit anpassen oder erweitern. Dafür loggt ihr euch wieder auf dem Raspi ein und startet wieder nano, genau wie oben. Da die Datei schon existiert, wird sie dann geladen und kann bearbeitet werden.

Das war’s auch schon!
Mit eurem WoL-Server könnt ihr jetzt nach belieben verschiedene Netzwerkgeräte starten. Im nächsten Artikel wird es dann darum gehen, wie ihr den Start und das Herunterfahren noch etwas komfortabler per Android-App gestalten könnt.

Steuerung mit eurem Android-Smartphone

Wollt ihr euer Startscript z. B. mit dem Android-Smartphone ausführen und so super schnell und ohne PC eure Geräte starten? Dann schaut euch mal meinen Artikel „Raspberry SSH (Android) – SSH-fähige Geräte mit einem Klick steuern“ an.

Dadurch spart ihr euch auch ganz nebenbei die Erstellung der Startscripte auf dem Raspberry Pi, da diese direkt in Raspberry SSH hinterlegt werden.

Euer Feedback

Hat alles geklappt? War die Anleitung gut zu verstehen? Fehlt noch was?

Hinterlasst euch Kommentare unten und ich melde mich bei euch. Ich freue mich immer über euer Feedback.

32 Antworten auf „etherwake – Der Raspberry Pi als Wake On LAN-Server“

  1. Hallo Dennis,

    Erstmal vielen Dank für dein TUT…. habe alles am laufen nur mit einem Pi3+

    Ist es möglich im Skript vom WOL eine Art Portüberwachung einzubauen?
    DH. Ich greife von Außen auf Port 67890 zu bspw. und der Pi schickt einen WOL an das NAS?

    Das war die Idee dahinter….. also Quasi meinenextcloud.ddns.net:67890 mein nas wird Gestartet von PI und ich hab zugriff 🙂

    1. Hi Marcel,

      uff, da bin ich ehrlich gesagt überfragt. Ich halte das aber insofern für keine allzu gute Idee, als dass du den Port ja dann auch nach außen freigeben musst. Es könnte also jeder, der die Adresse kennt, deine DS daheim starten.
      Dann stellt sich mir die Frage, was es dir bringt, das Ding nur zu starten, denn für den Zugriff auf Daten musst du ja dann doch wieder ins VPN. Schau dir doch lieber mal meinen Artikel zu Raspberry SSH an (falls du ein Android Phone hast), das dürfte dir helfen. Ob es eine ähnliche App für iOS gibt, weiß ich leider nicht.

      Grüße,
      Dennis

  2. Moin Dennis,
    etherwake kannte ich bisher noch gar nicht. Das ist wirklich praktisch, da ich meinen Homeserver (openmediavault) bisher immer über die Fritzbox Oberfläche gestartet habe. Nun erledige ich das dem Pi und der iOS App „SSH Remote“. Über die gleiche App kann ich ihn auch runterfahren lassen 🙂

    1. Hey Stephan,

      schön, dass dir der Artikel was gebracht hat! Die App muss ich mir mal angucken, dann könnte ich meine Geräte auch vom Firmenhandy aus steuern 🙂

      Gruß,
      Dennis

  3. Hallo Dennis,

    ich bin jetzt schon seit einer ganzen Weile am Recherchieren habe aber nicht gefunden was für mich passt.

    Ich habe 5 Mitarbieter die sich vom Homeoffice oder ähnliches per SSL VPN auf ihren eigenen Arbeitsplätzen im Büro anmelden wollen und arbeiten.

    Meine Problematik besteht darin das ich die WoL Pakete nicht über den VPN Tunnel bekomme.

    Nun kommt dein Gerät und meine Frage ins Spiel. Ich möchte im 1. Schritt das die Mitarbeiter den VPN Tunnel aufbauen und dann im 2. Schritt ein Script/Batch starten was ihren Arbeitsplatz über Wol (etherwake mit Raspberry PI) startet und im Anschlus der RDP Client mitgestartet wird.

    Meinst du man kann das mit dem Gerät so umsetzen??

    1. Hi Oliver,

      ja, das geht und ziemlich genau so habe ich es auch selbst bei mir im Netzwerk umgesetzt!
      Letztendlich ist es ganz einfach:
      Du installierst dir einen Raspberry Pi mit PiVPN und etherwake. Um danach verschiedene Geräte per WOL zu starten, müssen sich deine Mitarbeiter ja auf dem Raspi einloggen. Das geht z. B. mit plink.exe, die du mit Putty zusammen erhältst. Dafür brauchen die Personen aber das entsprechende Kennwort für den Raspi, das ich so nicht raus geben würde, wenn ich du wäre.

      Ich habe mir der Einfachheit halber ein kleines Programm gebaut, das mir meine verschiedenen Geräte startet, runterfährt und auch verschlüsselte Verzeichnisse meiner DiskStations mountet. Genau so was könntest du z. B. nutzen, um den Mitarbeitern die Zugangsdaten zum Raspi nicht geben zu müssen und dennoch Batch-Scripte für WOL auszuführen. Geschrieben habe ich das Tool mit AutoIt (https://www.autoitscript.com/).
      Wenn du Interesse an dem Tool hast, melde dich gerne, dann bereinige ich den Programmcode um meine eigenen Zugangsdaten und lasse ihn dir zukommen. Ist wirklich ganz einfach, sieht aber derzeit noch nicht schickt aus.

      Edit: Das Script findet ihr hier.

  4. Hallo Dennis,

    vielen Dank für die ausgezeichnete Doku. Es hat alles prima geklappt.
    Nutze als Funktion auf dem Android das von Dir getestete Raspberry SSH und verbinde mich auf einen Raspberry 3B im Büro, auf dem etherwake nach Deinem Tutorial installiert ist. Eine VPN-Verbindung habe ich ins Büro bereits über den Sonicwall-Client. Darüber habe ich die Gesamtfunktion aber noch nicht getestet, da ich im Homeoffice eine Standverbindung ins Büro habe. Zur Vervollständigung habe ich den Raspi um samba-common erweitert, wodurch ich auch die PCs im Büro wieder ausschalten kann und dass, obwohl die PCs Domänenmitglieder sind.
    Den Ansatz / die Erweiterung von Oliver sehe ich mir die Tage mal genauer an, da mir im Moment zu viele Kennwörter „offengelegt“ sind. Aber das wird noch…

    1. Servus Martin,
      cool, danke für deinen Kommentar! Es freut mich zu lesen, wenn euch meine Anleitungen gefallen und alles soweit klappt 🙂

      samba-common sollte ich mir vielleicht auch mal anschauen, denn aktuell muss ich meinen Desktop-PC noch per VPN wieder runterfahren, was mir nicht wirklich gefällt. Danke an der Stelle für deinen Tipp!

      Wenn du keine Kennwörter offen legen willst, kannst du dir auch noch mal mein AutoIt-Script angucken. Die Sourcen dazu habe ich gestern gepostet, das ist recht leicht anzupassen und du hast dann nur noch eine Exe-Datei.

      Viele Grüße,
      Dennis

  5. Hallo Denis,

    erst einmal vielen Dank für den Thread.

    Ich habe aber ein kleines Problem. Trotz einem konsequenten Doing dessen, startet das NAS nicht. Auch ein
    „sudo /usr/sbin/etherwake „MAC:ADRESSE“
    führt nicht dazu:-(
    Hättest Du eine Idee woran das liegen könnte?
    Liebe Grüße
    Beb

    1. Hey Beb,
      Xigmanas kannte ich bisher noch nicht, aber das ist ja „nur“ ein Software-Paket.
      Auf welcher Hardware hast du das NAS denn laufen? Falls das System ebenfalls auf einem Raspi läuft, denk dran, dass dieser kein WOL kann.
      Viele Grüße,
      Dennis

  6. Scheinbar gab es ein paar Änderungen in dem Programm (stand 25/1/2020) etherwake.
    Ich habe es jetzt so gelöst:

    sudo apt install wakeonlan

    wakeonlan -i „Hier IP“ „Hier MAC“

    Um ein zuverlässiges Hochfahren zu gewährleisten sollte man dem Gerät welches man per WOL hochfahren will eine feste IP verpassen.

    PS: Finde deinen Blog super ! Habe ihn leider erst jetzt entdeckt.

    1. Hey Simon,

      erst mal danke für dein Lob, freut mich, dass dir meine Seite gefällt! 🙂

      Ich hab es eben noch mal getestet mit der aktuellsten Raspbian Version Buster und der Befehl klappt bei mir immer noch so, wie im Artikel beschrieben, also „sudo etherwake [MAC-Adresse]“.

      Viele Grüße
      Dennis

  7. Hallo

    Habe auf meinem Pie VPN und dein etherwake – Der Raspberry Pi als Wake On LAN-Server installiert.
    Funkt alles super.
    Habe sogar die Raspberry SSH APP installiert um den Pi zu rebooten und meine Nas DS 218 + Synology im Netzwerk einzuschalten. Funkt alles.
    Nun würde ich gerne meine Nas Neustarten und Runterfahren über die App.
    Leider habe ich es noch nicht geschafft.
    Hast du vielleicht einen Leitfaden für mich ?

    mfg Chris

  8. Hallo

    Habe auf meinem Pie VPN und dein etherwake – Der Raspberry Pi als Wake On LAN-Server installiert.
    Funkt alles super.
    Habe sogar die Raspberry SSH APP installiert um den Pi zu rebooten und meine Nas DS 218 + Synology im Netzwerk einzuschalten. Funkt alles.
    Nun würde ich gerne meine Nas Neustarten und Runterfahren über die App.
    Leider habe ich es noch nicht geschafft.
    Hast du vielleicht einen Leitfaden für mich ?

    mfg Chris

    1. Hey Chris,
      hast du dir mal meinen Artikel zum Root-Zugriff auf die DS angesehen? Für Reboot und Shutdown brauchst du den, sonst klappt das nicht einfach so per Script.
      Ab DSM 6.2 oder so braucht es da eine etwas andere Vorgehensweise, die wollte ich aber die Tage mal in den Artikel einpflegen.
      Viele Grüße
      Dennis

  9. Hallo

    Danke für deine Antwort.
    Ich nutze die Version DSM 6.2.2-24922 Update 4 auf meiner Synology.
    Wenn du funktionierende Vorgehensweise hast schick mir bitte den Link.
    Danke vorerst für deine Mühe und weiter so.
    Deine Anleitungen sind sehr Ausführlich erklärt und auch gut für Laien umsetzbar.

    mfg
    Chris

  10. Hallo

    Danke für deine Antwort.
    Ich nutze die Version DSM 6.2.2-24922 Update 4 auf meiner Synology.
    Wenn du funktionierende Vorgehensweise hast schick mir bitte den Link.
    Danke vorerst für deine Mühe und weiter so.
    Deine Anleitungen sind sehr Ausführlich erklärt und auch gut für Laien umsetzbar.

    mfg
    Chris

  11. Hallo,

    danke für deine Anleitung.
    Über die Kommandozeile des PI klappt soweit alles, nur über die App SSH Remote in iOS komme ich leider nicht weiter.
    Über die Fritzbox ist eine feste IP für den Pi vergeben.
    Port in der App ist bei 22 belassen, aber nichts passiert.
    Kannst du mir verraten, was ich einstellen muss?

    Besten Dank vorab und Grüße
    Kersten

    1. Hey Kersten,
      dein Port 22 auf dem Pi ist aber schon geöffnet, oder? SSH ist nämlich standardmäßig deaktiviert.
      Was sagt die App denn im Log File, das du angezeigt bekommst, wenn du in die Einstellungen schaust?
      VG, Dennis

  12. Hallo Dennis,

    super, danke – genau was ich gesucht habe! Denn als Telekom-Kunde habe ich keine FritzBox, sondern einen Speedport Smart Router. Der hat zwar seit neuestem WireGuard fertig implementiert (für Leute die es nicht kennen: Deutlich schneller als VPN und genauso sicher), kann aber kein WoL.

    Nun habe ich – dank Dir – folgendes Setup: Raspberry Pi 3 per LAN mit Speedport verbunden. Mein Heimserver ist ein Mac Pro 2010, der per LAN mit dem Router verbunden ist (nicht direkt mit dem Raspi – das WoL läuft durch ganze Netzwerk und landet bei der IP, wo es hin soll).

    Bin ich von unterwegs über WireGuard verbunden, sende ich entweder über eine iPhone-App Namens ssh Remote das Bash-Skript ab, das ich von Deiner Seite übernommen habe, oder ich mache es auf dem MacBook manuell über Terminal. Der Server wacht dadurch auf und ich erreiche ihn unter MacOS über die Finder-Funktion „Gehe zu“ -> „Mit Server verbinden“ -> ssh://xxx (IP des Servers) (Odernderfreigabe) oder vnc://xxx (IP des Servers) (Bildschirmfreigabe à la Remote Desktop). Vom iPhone aus kann man die Server genau so aufrufen über die Apple-App „Dateien“.

    Für alle User von Speedport: Achtung, man kann auf diesem Router immer nur EINEN Klient über WireGuard verbinden – also entweder z.B. ein iPhone ODER ein MacBook, aber nicht beides gleichzeitig. Analog ist es natürlich für PC- und Android-Nutzer. Aber man kann dieselbe Konfigurations-Datei für beide Geräte benutzen, sie nur eben nicht gleichzeitig einsetzen. Will man mehrere Clients gleichzeitig benutzen, am besten auf dem Raspi VPN installieren (wie im anderen Tutorial 😉 oder WireGuard, das geht auch auf dem Raspi (Vielleicht ein Thema für ein weiteres Tutorial? 😉 Ein weiterer Workaround wäre unterwegs einen WireGuard-tauglichen Reiserouter einzusetzen und mehrere Geräte über dessen WLAN laufen zu lassen (z.B. Gl.iNet Mango, Greta oder Slate). Dann wäre der Reiserouter zu Hause auf dem Speedport ein einziger Klient, obwohl der mehrere Geräte bündelt.

    Ach ja, und der Raspi ist bei mir auch gleichzeitig Add-Blocker, dank Deines anderen Tutorials. WoL und Pi Hole funktioniert beides gleichzeitig wunderbar auf einem Raspi.

    Viele Grüße aus Hamburg,

    Thomas

  13. Danke. Tipp für Apple-Nutzer: auf dem iPhone funktioniert zum Absenden des Bash Scripts die App „ssh Remote“ gut, kostenlos im App Store erhältlich.

    Gruß aus Hamburg,

    Thomas

  14. Vielen Dank für Deinen Artikel!
    Ich hatte zuvor schon viel versucht aber leider löschte die Fritzbox nach einer Weile immer die Broadcast und der PC startete trotz VPN nicht mehr.
    Mit „Deiner“ Lösung funktioniert es einwandfrei. Ein seit längerer Zeit bestehendes Problem ist dadurch endlich gelöst. Danke! Danke!! Ich freu mich richtig 😀 *gg*

    Grüsse Brati

  15. Einen wunder schönen guten tag!!!

    Erst mal danke für dieses super Tutorial!!!

    Habe es direkt auf anhieb hinbekommen den Raspberry einzurichten und meiner Geräte zu starten.
    Was auch alles super funktioniert. Nur war meine Idee eigentlich ursprünglich das ganze per Website ausführbar zu machen, in dem ich den Py irgendwo mit einem kleinen Touchscreen stehen habe und dann nur auf diesen drücken muss und somit die Server oder die NAS´s hoch zu fahren. Hatte dazu eigentlich die Anleitung von Youtube von Apfelcast genommen, aber diese nicht umgesetzt bekommen.

    Daher währe meine frage ob es eventuell möglich ist diese befehle hier per PHP oder ähnliches, in eine Website, einzubinden.

    Währe super wenn mir da einer helfen kann. Denn ich verzweifle hier gerade auch irgendwie was das alles angeht.

    Danke schon mal im vor raus!!!

    Mit freundlichen Grüßen
    Sascha

  16. Ja, hallo aus Köln. Ich möchte das Thema noch einmal aufgreifen. Ich habe einen PLEX Server. Der läuft z.Zt. 24/7 und ich denke an eine Lösung wo ich über einen PI den Zugriff auf den Port 38400 (PLEX Server Port) feststellen kann und dann ein WOL für den PLEX Server auslöse das der dann automatisch hochfährt. Mit einer M.2 SSD geht das ja rech schnell und wäre dann eigentlich die praktischste Lösung.
    Zugriff auf einen bestimmten Port feststellen, WOL für bestimmtes Gerät auslösen.

    Gruß aus Köln
    Rudi

  17. Alternativ eventuell mit NGINX als Reverse Proxy.
    Zitat: „..Ein Reverse Proxy ist eine gute Möglichkeit, dies einzurichten, da es den eingehenden Traffic empfangen kann, bevor er den Ursprungsserver erreicht.“
    Ggf. könnte man hier auch den Zugriff auf einen bestimmten Port erfassen und dann etwas auslösen…

    Ich habe eh den NGINX schon als Reserve Proxy laufen, auf dem PLEX Server.. – der verteilt sämtliche Zugriffe über die Portauswahl auf die entsprechenden Server im Local Network. Dieser müsste dann auf den RASPI umziehen… der dann als Eingangstüre und WOL Auslöser für alle angeschlossenen Server dient, die nur sporadisch laufen sollen und sich nach 30 Min inaktivität selber wieder ins Nirvana schicken.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert