Wake on LAN mit Linux, Windows und Synology
Entfernte Geräte starten mit Wake on LAN (WOL), ein 1995 von AMD in Zusammenarbeit mit HPE veröffentlichter Standard, um ausgeschaltete Computer über die Netzwerkkarte zu starten, diese ACPI unterstützen. Allgemeine Voraussetzung für WOL ist, dass die Netzwerkkarte über den Standby-Strom des Netzteils weiterhin mit Strom versorgt wird, auch wenn der Computer ausgeschaltet ist.
Die Netzwerkkarte wartet auf ein so genanntes Magic Packet, bei dessen Empfang der Computer eingeschaltet wird. Das Datenpaket ist entweder direkt an die Netzwerkkarte adressiert oder wird als Broadcast verschickt. Es enthält sechsmal in Folge den hexadezimalen Wert FF; unmittelbar danach erscheint die ununterbrochene 16-malige Wiederholung der MAC-Adresse der Netzwerkkarte des jeweiligen Zielsystems.
Wake on LAN unter Linux
Unter GNU/Linux gibt es das Tool „wakeonlan“, welches falls nicht schon installiert, wie folgt bereitgestellt wird.
$ sudo apt install etherwake
Der Linux Befehl um ein Computer mit WOL zu starten ist wakeonlan.
$ wakeonlan -i 10.10.10.1 00:11:22:33:44:55
Sending magic packet to 10.10.10.1 with 00:11:22:33:44:55
Ubuntu und Debian sendet ein Magic Packet mit wakeonlan zur MAC-Adresse eines Gerätes um es einzuschalten.
$ wakeonlan 00:00:33:44:55:66
Sending magic packet to 255.255.255.255:9 with 00:22:33:44:55:66
Hilfe zu Optionen erhält man mit dem Befehl: etherwake -u
Fedora wiederum weckt mit ether-wake, auch CentOS und RHEL.
$ sudo ether-wake -i eno1 00:11:22:33:44:55
-i eno1
ist hier das Ethernet Interface gemeint.
Die MAC-Adresse erhält man mit dem Befehlarp
wie folgt.
$ ping -c 4 10.10.10.1 && arp -n
Wake on LAN mit Synology
Synology DSM hat mit synonet in der Busybox Shell sein eigenes Tool.
$ synonet --wake xx:xx:xx:xx:xx ethX
WON für Windows
Microsoft Windows hat kein WOL Onboard, ein zuverlässiges WOL bietet hier WakeMeOnLan von Nirsoft.
WOL in macOS
Da auch macOS standardmäßig mit Python kommt, kann man sich eines Scripts behelfen, die folgenden Zeilen ermöglicht ein WON auf dem Mac.
#!/usr/bin/env python
import socket
import sys
if len(sys.argv) < 3:
print "Usage: wake.py <IP> <MAC> (example: 192.168.1.255 00:11:22:33:44:55)"
sys.exit(1)
mac = sys.argv[2]
data = ''.join(['FF' * 6, mac.replace(':', '') * 16])
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
sock.sendto(data.decode("hex"), (sys.argv[1], 9))
Den Script speichern und aus dem macOS Terminal ausführen.
$ python wake.py 192.168.1.255 00:11:22:33:44:55