Vad är ett Wake on LAN-magi­sket?

Wake on LAN startar en dator som är i viloläge eller avstängd via nätverket. Datorns nätverkskort förblir strömsatt och lyssnar efter ett magiskt paket: 6 byte med FF följt av datorns MAC-adress 16 gånger, totalt 102 byte. Paketet skickas vanligtvis som en UDP-sändning till port 9 eller 7, så att alla datorer i det lokala nätverket tar emot det och bara datorn med matchande adress startar. Wake on LAN måste först aktiveras i datorns BIOS- eller UEFI-inställningar.

Verktyg som wakeonlan och etherwake kan skicka paketet, men de är inte alltid installerade, och på en server eller NAS kanske du inte vill installera dem.

Verktygsbeskrivning

Det här verktyget skapar ett enradigt kommando som skickar paketet med hjälp av sådant som redan finns i Linux. Ange MAC-adressen till datorn som ska startas, till exempel 00:11:22:AA:BB:CC, 00-11-22-AA-BB-CC, 0011.22AA.BBCC eller 12 hexadecimala siffror i följd, och välj hur paketet ska skickas under Skicka med:

  • Python 3 eller Perl, som fungerar i bash och zsh, inte kräver root-åtkomst och kan skicka broadcast
  • Bash /dev/udp, som inte kräver att något installeras men bara fungerar i bash, inte zsh, och inte kan skicka broadcast

Broadcast- eller IP-adressen är som standard 255.255.255.255 och UDP-porten 9. Linux svarar med ”Åtkomst nekas” när bash skickar till en broadcast-adress, så verktyget varnar om du väljer Bash med en adress som slutar på .255. Använd datorns egen IP-adress där i stället.

Kommandot skapas i webbläsaren. Kopiera det och kör det på valfri Linux-dator i samma nätverk.

Exempel

För 00:11:22:AA:BB:CC, Python 3 med broadcast på port 9:

python3 -c 'import socket;s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM);s.setsockopt(socket.SOL_SOCKET,socket.SO_BROADCAST,1);s.sendto(bytes.fromhex("ff"*6+"001122aabbcc"*16),("255.255.255.255",9))'

Bash, skickat direkt till datorn på 192.168.1.20:

printf "$(printf '\\xff%.0s' {1..6})$(printf '\\x00\\x11\\x22\\xaa\\xbb\\xcc%.0s' {1..16})" > /dev/udp/192.168.1.20/9

Funktioner

  • Kommandovarianter för Python 3, Perl och bash
  • Godtar MAC-adresser med kolon, bindestreck, punkter eller utan avgränsare
  • Varnar när bash-varianten inte kan nå en broadcast-adress