Wake on LAN einrichten
In diesem Tutorial zeige ich wie ihr Wake on LAN einrichten könnt. Dafür ist eine WoL fähige Netzwerkkarte erforderlich. In meinem Beispiel werde ich einen Windows 10 Laptop verwenden um einen Linux (Ubuntu) Server mit einer Wake on LAN fähigen Netzwerkkarte über das Netzwerk zu starten.
Wake on LAN einrichten
Wake on LAN oder kurz WOL ist ein Industriestandard und in zahlreichen Netzwerkkarten umgesetzt. Eine solche Netzwerkkarte bezieht über das LAN Kabel Strom und wartet auf ein spezifisches Netzwerkpaket. Sobald ein solche Paket (auch Magic Packet genannt) mit der physischen Adresse der Karte (MAC Adresse) eintrifft führt die Karte einen Kaltstart des Rechners aus. Wenige Sekunden später sollte dieser über die Schnittstelle Antworten. Der Rechner ist somit vollständig aus der Ferne (remote) zu bedienen.
Setup
Mein Setup zum Testen sieht wie folgt aus: ein HP ProLian Microserver wurde mit Ubuntu 18.04 Linux als Server aufgesetzt und dient dank den 4 Slots für Festplatten als NAS. Dieses möchte man nicht rund um die Uhr laufen lassen, man soll es aber jederzeit einschalten können – ohne in den Keller zu gehen und den Power Knopf zu drücken. Der Client ist in meinem Fall mein Laptop mit Windows 10. Sofern ich Daten vom NAS benötige soll ich in wenigen Sekunden darauf zugreifen können.
Kann meine Netzwerkkarte Wake on LAN?
Wake on LAN ist bei den meisten Systemen eine Option im BIOS. Diese muss für das weitere Vorgehen aktiviert sein. Im Betriebssystem gibt es zudem auch die Möglichkeit abzufragen ob WOL funktioniert. Unter Linux funktioniert das mit dem folgenden Kommando:
1 | ethtool eth0 |
ihr müsst dabei jedoch eth0 mit der Bezeichnung eurer Netzwerkkarte ersetzen. Infos dazu findet man mit dem ifconfig Kommando. Bei mir sieht die Ausgabe wie folgt aus:
Wake on LAN ist möglich, wenn die Zeile „Supports Wake-on: pumbg“ ausgegeben wird. Unter der Zeile „Wake-on: g“ wird noch der aktuelle Typ ausgegeben. „g“ ist bereits korrekt gesetzt. Falls das bei euch anders aussieht könnt ihr das mit folgendem Kommando ändern:
1 | ethtool -s eth0 wol g |
Bevor wir nun den Server abschalten müssen wir uns noch eine Information besorgen. Wake on LAN funktioniert nur mit der MAC-Adresse der Netzwerkkarte. Diese müssen wir uns zuvor notieren. Unter Linux finden wir diese mit dem folgenden Kommando:
1 | ifconfig -a |
Die MAC-Adresse ist ein 6 stelliger Code aus jeweils zwei Hexadezimalzahlen durch Doppelpunkt getrennt. Bei mir wird diese Kombination aus Zahlen und Buchstaben nach ether ausgegeben (im Screenshot markiert). So nebenbei sei erwähnt, dass dieser Server gleich 2 Netzwerkkarten besitzt, diese haben unterschiedliche MAC-Adressen.
Sehr gut! Der Server ist somit bereits fertig konfiguriert und ihr könnt ihn abschalten. Die LAN Karte wartet nun auf das korrekte Paket um ihn erneut zu starten.
Magic Packet von Windows 10 senden
Wir wechseln nun auf den Laptop auf dem Windows 10 läuft. Dieser muss nun im selben Netzwerk sein, d.h. der Laptop sollte zuvor schon mit dem Server kommunizieren können (zum Beispiel über SSH). Wir müssen nun das WOL Signal über das Netzwerk senden. Es gibt dafür unterschiedliche Möglichkeiten. Zwei einfache unter Windows 10 sind:
- Powershell Script
unter dem Link findet ihr ein Powershell Script das die nötigen Kommandos zusammenfasst. - eigenes Programm
weitaus einfacher ist die Verwendung eines eigenen Programms. Ich habe dazu im Netz das Programm wol.exe gesucht und heruntergeladen.
wol.exe
Nachdem ich wenig erfahren mit PowerShell bin reicht mit ein kompiliertes Programm. wol.exe benötigt lediglich die MAC-Adresse, die wir uns zuvor schon vom Server notiert haben. Das Senden vom Wake on LAN Paket (Magic Packet) unter Windows 10 funktioniert so:
direkt über die PowerShell aufgerufen mit der Syntax:
1 | wol.exe MAC-Adresse |
eine Erfolgsmeldung gibt an, dass das Paket versendet wurde. Das bedeutet nun aber noch nicht, dass es auch funktioniert.
Probleme
Die Fehlersuche ist mühsam. Sofern die Wake-up Erfolgsmeldung erscheint ist das Paket gesendet. Für den ersten Test setzt man sich am besten direkt neben den Server und beobachtet, ob dieser nun startet. Falls nicht, gibt es mehrere mögliche Fehlerquellen:
- falsche MAC-Adresse
Fehlerursache Nummer eins, man hat sich vertippt. Am besten nochmals am Server die MAC-Adresse aufrufen und kontrollieren. Danach nochmals am Windows 10 Rechner eingeben und besonders auf 0 und O achten. Wichtig: O gibt es im Hexadezimalsystem nicht. Es gibt nur 0123456789ABCDEF. - falsches Netz
ein beliebter Fehler ist auch, dass man im falschen Netz ist, oder der Laptop gerade gar nicht im Netzwerk hängt. wol.exe gibt dazu keine Fehlermeldung aus. - Paket verloren gegangen
hin und wieder gehen Pakete verloren. Einfach mehrmals probieren um diesen Fehler auszuschließen. - kaputte Netzwerkkarte
sehr unwahrscheinlich, aber möglich
Erfolgreicher Testlauf
Bei mir hat das Setup gleich funktioniert. Ich habe den Server beendet. Danach ist er über dessen IP Adresse nicht mehr erreichbar.
Nun kommt die Magie ins Spiel. Mit dem Magic Packet vom Windows 10 System gesendet startet der Server wie von Zauberhand. Und ich werde wie gewohnt von Ubuntu 18.04 begrüßt.
Wichtig: zwischen dem senden vom Wake on LAN Paket bis zum Login habe ich zwei Minuten gewartet. Das ist im Screenshot nicht ersichtlich. Der Server benötigt einige Zeit um das Betriebssystem zu laden bevor er antworten kann.
Fazit
Wake on LAN einrichten ist super einfach und das Leben danach viel einfacher. Mein ProLiant MicroServer steht im Keller als NAS und ich kann ihn bei bedarf jederzeit vom Wohnzimmer aus einschalten, wenn ich zum Beispiel einen gespeicherten Film ansehen will oder die aktuellen Fotos der Kamera sichern möchte.
Wofür benötigst du die Wake on LAN Funktion?
Hallo,
danke für die Anleitung, hat super funktioniert! 🙂
In diesem Blog-Beitrag hab ich eine Möglichkeit gefunden, wie man ein WOL auch mit PowerShell durchführen kann:
https://www.itnator.net/wake-lan-script-wol/
Gruß Sabine