OpenWrt: Ausgeschalteten Client mittels Wake-on-LAN starten
Um meinen ggf. ausgeschalteten Homelab-Server auch ohne physischen Zugriff aus der Ferne starten zu können, nutze ich Wake-on-LAN. Dazu verbinde ich mich einfach mit meinem OpenWrt-Router und kann dann über die Weboberfläche LuCI per Knopfdruck meinen Server starten. Falls euer Server mit LUKS voll-verschlüsselt ist, könnt ihr zudem euer System während des Bootvorgangs per SSH entsperren, wie ich bereits in einem anderen Beitrag beschrieben habe.
Voraussetzungen
Den Client bzw. das Gerät, welches ihr per Wake-on-LAN aus der Ferne aufwecken wollt, muss diese Funktionalität natürlich unterstützen. Oftmals lässt sich diese Funktion auch pauschal im BIOS aktivieren bzw. deaktivieren. Stellt sicher, dass sie im BIOS aktiviert ist.
Wake-on-LAN auf Client aktivieren
Nebst den genannten Voraussetzungen, muss ggf. auch auf Betriebssystemebene Wake-on-LAN noch einmal explizit aktiviert werden. Im Folgenden erläutere ich wie ich das bei meinem Arch-Linux-Server umgesetzt habe.
Als erstes ist das Paket ethtool zu installieren:
sudo pacman -S ethtool
Mit folgendem Befehl lässt sich prüfen, ob Wake-on-LAN für das entsprechende Ethernet-Interface aktiviert oder deaktiviert ist:
sudo ethtool enp1s0
In der Zeile Wake-On steht d für deaktiviert. Wenn das bei euch, wie bei mir, der Fall ist, dann lässt es sich temporär wie folgt aktivieren:
sudo ethtool -s enp1s0 wol g
Diese Einstellung ist jedoch nicht persistent, so dass diese nach einem Neustart wieder zurückgesetzt würde. Aus diesem Grund habe ich einen systemd-Service unter /etc/systemd/system/wake-on-lan.service mit folgendem Inhalt angelegt:
[Unit]
Description=Wake-on-LAN
[Service]
ExecStart=/usr/bin/ethtool -s enp1s0 wol g
Type=oneshot
[Install]
WantedBy=multi-user.targetAbschließend den Service noch aktivieren:
sudo systemctl daemon-reload
sudo systemctl enable --now wake-on-lan.service
OpenWrt-Router - Wake-on-LAN konfiguriern
Auf OpenWrt-Seite kommen die Pakete etherwake und luci-app-wol zum Einsatz. Letzteres benötigt man nur, wenn man Wake-on-LAN benutzerfreundlich über die LuCI-Weboberfläche konfigurieren möchte.
apk add etherwake luci-app-wol
LuCI neu starten:
/etc/init.d/uhttpd restart
In LuCI ruft jetzt den Menüpunkt Services - Wake on LAN auf. Hier lassen sich Clients hinzufügen, die man per WOL aufwecken möchte. Hier habe ich bspw. meinen Homelab-Server hinterlegt. Dazu ist ein Name sowie der entsprechende Client per MAC-Adresse anzugeben. Optional kann noch das zu verwendende Interface angegeben werden.

Schaltet euren Client bzw. Server nun aus und klickt anschließend in LuCI auf Wake. Wenn alles geklappt hat, sollte euer Client nun zum Leben erweckt worden sein und gebootet werden.
Fazit
OpenWrt lässt sich ohne größeren Aufwand zum Aufwecken von ausgeschalteten Clients per Wake-on-LAN einrichten.