Mikä on Wake on LAN -taikapaketti?

Wake on LAN käynnistää lepotilassa olevan tai sammutetun tietokoneen verkon kautta. Tietokoneen verkkokortti pysyy päällä ja kuuntelee taikapakettia: 6 tavua FF:ää, joita seuraa tietokoneen MAC-osoite 16 kertaa, yhteensä 102 tavua. Paketti lähetetään yleensä UDP-lähetyksenä porttiin 9 tai 7, jolloin kaikki lähiverkon laitteet vastaanottavat sen ja vain oikean MAC-osoitteen omaava laite herää. Wake on LAN on ensin otettava käyttöön tietokoneen BIOS- tai UEFI-asetuksissa.

Työkalut, kuten wakeonlan ja etherwake, voivat lähettää paketin, mutta niitä ei aina ole asennettu. Palvelimelle tai NAS-laitteelle niitä ei myöskään välttämättä haluta asentaa.

Työkalun kuvaus

Tämä työkalu muodostaa yksirivisen komennon, joka lähettää paketin Linuxin valmiilla työkaluilla. Anna käynnistettävän tietokoneen MAC-osoite muodossa 00:11:22:AA:BB:CC, 00-11-22-AA-BB-CC, 0011.22AA.BBCC tai 12 peräkkäisenä heksadesimaalinumerona ja valitse lähetystapa kohdasta Lähetä:

  • Python 3 tai Perl: toimivat bashissa ja zsh:ssä, eivät vaadi root-oikeuksia ja tukevat lähetyksenä käytettävää yleislähetystä
  • Bash /dev/udp: ei vaadi mitään asennuksia, mutta toimii vain bashissa, ei zsh:ssä, eikä tue yleislähetystä

Yleislähetys- tai IP-osoitteena käytetään oletusarvoisesti osoitetta 255.255.255.255 ja UDP-porttina porttia 9. Linux vastaa ”Permission denied”, kun bash lähettää paketin yleislähetysosoitteeseen, joten työkalu varoittaa, jos valitset Bashin ja osoitteen viimeinen osa on .255. Käytä sen sijaan tietokoneen omaa IP-osoitetta.

Komento muodostetaan selaimessasi. Kopioi se ja suorita millä tahansa samaan verkkoon liitetyllä Linux-koneella.

Esimerkkejä

Osoitteelle 00:11:22:AA:BB:CC, Python 3:lla tehtävä yleislähetys porttiin 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))'

Bashilla suoraan tietokoneeseen 192.168.1.20 lähetettynä:

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

Ominaisuudet

  • Komennosta on Python 3-, Perl- ja bash-versiot
  • Hyväksyy MAC-osoitteet kaksoispisteillä, yhdysmerkeillä tai pisteillä eroteltuina tai ilman erottimia
  • Varoittaa, kun bash-versiolla ei voi lähettää pakettia yleislähetysosoitteeseen