#!/coding/blatt
Sammelsurium mit Schwerpunkten Linux & IT-Sicherheit

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.

Folgende Software bzw. Hardware wurde verwendet:
  • Router Flint 2 (GL-MT6000) mit OpenWrt v25.12.4
  • Beelink SER5 mit Arch Linux
  • etherwake v1.09-r5
  • luci-app-wol v26.134.75701~cd18b8e
  • ethtool v1:7.0-1

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
Terminal / Konsole

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
Terminal / Konsole

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
Terminal / Konsole

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.target
Datei: /etc/systemd/system/wake-on-lan.service

Abschließend den Service noch aktivieren:

sudo systemctl daemon-reload
sudo systemctl enable --now wake-on-lan.service
Terminal / Konsole

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
Terminal / Konsole

LuCI neu starten:

/etc/init.d/uhttpd restart
Terminal / Konsole

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.

OpenWrt: Wake-on-LAN mit LuCI

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.