Während des Setups eines Linux Servers im Heimnetzwerk wollte ich wake-on-lan konfigurieren, damit ich den Server starten kann sobald ich diesen brauche.

Dazu muss man zunächst prüfen, ob wake-on-lan im BIOS aktiv ist. In meinem Fall war das zunächst nicht aktivierbar, da andere Einstellungen im Energiemanagement dies verboten haben. Nachdem ich andere Einstellungen deaktiviert hatte, konnte wake-on-lan aktiviert werden.

Im Serverbetriebssystem muss man herausfinden, wie das Netzwerkinterface heisst. ifconfig war nicht installiert, also musste ich folgenden Befehl nutzen um herauszufinden, dass das Interface enp2s0 heisst. Der Output zeigt auch, dass wake-on-lan nicht aktiv war.

root@server:$ ip -c a s

Man kann ethtool nutzen um wake-on-lan (wol) zu aktivieren.

root@server:$ sudo apt-get install ethtool
root@server:$ sudo ethtool -s enp2s0 wol g

Das Starten des Servers funktionierte immer noch nicht, beim Neustart war wake-on-lan im Betriebssystem wieder deaktiviert. Also musste ich folgende Konfigurationsdatei erstellen /etc/systemd/system/wol\@.service und in systemd registrieren und wake-on-lan dauerhaft aktiv zu haben.

[Unit]
Description=Wake-on-LAN (%i)
Requires=network.target
After=network.target

[Service]
ExecStart=/sbin/ethtool -s %i wol g
Type=oneshot

[Install]
WantedBy=multi-user.target

Die Konfiguration muss in systemd aktualisiert werden und der Service muss für das Netzwerkinterface enp2s0 auf Basis der Vorlage mit systemctl erstellt werden.

root@server:$ sudo systemctl daemon-reload
root@server:$ sudo systemctl enable wol@enp2s0.service
root@server:$ sudo systemctl start wol@enp2s0.service

Danach kann der Server gestartet werden, in dem man das Magic Packet von einem anderen Gerät an die IP des Servers und die Hardwareadresse der Netzwerkkarte schickt. schickt.

user@client:$ wakeonlan -i 192.168.0.100 aa:bb:cc:00:11:22