-
LINUX > wakeonline ou allumer un ordi à distance
Activer le WOL
Vérifier que la carte réseau supporte le WOL
sudo ethtool enp5s0 | egrep "^[[:blank:]]*Wake-on: (g|d)"
eth0 identifiant de la carte réseau.
Wake-on: g -> carte réseau activée pour le WOL Wake-on: d -> carte réseau n'est pas activée pour le WOL
Pour activer le WOL sur la carte :
sudo ethtool -s eth0 wol g
Conserver le paramétrage
Méthode 1
écrire la ligne de commande suivante dans le fichier /etc/rc.local :
/sbin/ethtool -s eth0 wol g
A mettre avant la ligne :
exit 0
Méthode 2
Un autre moyens est d’écrire les lignes de commande suivante dans le fichier /etc/network/interfaces :
auto lo iface lo inet loopback up ethtool -s eth0 wol g
Méthode 3
Un autre moyen est d’écrire les lignes de commande suivante dans un fichier /etc/network/if-up.d/wol_fix :
#!/bin/sh /sbin/ethtool -s [votre-carte] wol g
puis rendre executable
sudo chmod +x /etc/network/if-up.d/wol_fix
Note : le script ne sera exécuté que si le paquet ifupdown est installé.
Identifier l’adresse MAC
ifconfig enp5s0 enp5s0 Lien encap:Ethernet HWaddr 00:15:60:B1:DB:D4 inet adr:192.168.1.xx Bcast:192.168.1.255 Masque:255.255.255.0 adr inet6: fe80::215:60ff:feb1:2316/64 Scope:Lien UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Packets reçus:4722 erreurs:0 :0 overruns:0 frame:0 TX packets:2971 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 lg file transmission:1000 Octets reçus:918022 (896.5 KiB) Octets transmis:329459 (321.7 KiB) Interruption:169
Envoi du paquet magique
Cas des cartes mère NVidia
Si vous avez une carte réseau intégrée dans une carte mère à chipset NVidia et que l’envoi de paquet magique ne produit aucun effet, avant de casser tous les scripts de votre machine, essayez simplement d’envoyer l’adresse MAC à l’envers, exemple 00:1a:9f:81:ce:a4 ⇒ a4:ce:81:9f:1a:00.
Les modifications à faire sont extrêmement simples pour faire marcher le WOL (peut-être que ces commandes fonctionnent encore avec les nouvelles versions d’Ubuntu) :
Mettre NETDOWN=no dans /etc/default/halt ;
Mettre ethtool -s eth0 wol g (ou le nom de l’interface que vous utilisez) dans /etc/rc.local, avant la ligne exit 0.
En ligne de commande
sudo apt install wakeonlan
Réveiller une machine :
wakeonlan 00:15:60:B1:DB:D4
Si cela ne fonctionne pas alors que cela fonctionne avec etherwake, essayez de renseigner l’adresse de Broadcast de votre réseau grâce à l’option -i
wakeonlan -i 192.168.0.255 00:0D:9D:9B:BA:xx
man wakeonlan
WOL à travers internet avec un script PHP
Cela évite de se souvenir des adresses MAC et IP. Il suffit de modifier la fin du code. Changez le port, l’adresse MAC
<?php # Wake on LAN - (c) HotKey@spr.at, upgraded by Murzik # Modified by Allan Barizo http://www.hackernotcracker.com flush(); function WakeOnLan($addr, $mac,$socket_number) { $addr_byte = explode(':', $mac); $hw_addr = ''; for ($a=0; $a <6; $a++) $hw_addr .= chr(hexdec($addr_byte[$a])); $msg = chr(255).chr(255).chr(255).chr(255).chr(255).chr(255); for ($a = 1; $a <= 16; $a++) $msg .= $hw_addr; // send it to the broadcast address using UDP // SQL_BROADCAST option isn't help!! $s = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP); if ($s == false) { echo "Error creating socket!\n"; echo "Error code is '".socket_last_error($s)."' - " . socket_strerror(socket_last_error($s)); return FALSE; } else { // setting a broadcast option to socket: $opt_ret = socket_set_option($s, 1, 6, TRUE); if($opt_ret <0) { echo "setsockopt() failed, error: " . strerror($opt_ret) . "\n"; return FALSE; } if(socket_sendto($s, $msg, strlen($msg), 0, $addr, $socket_number)) { echo "Magic Packet sent successfully!"; socket_close($s); return TRUE; } else { echo "Magic packet failed!"; return FALSE; } } } // Port number where the computer is listening. Usually, any number between 1-50000 will do. Normally choose 7 or 9. $socket_number = "9"; // MAC Address of the listening computer's network device $mac_addy = "XX:XX:XX:XX:XX:XX"; // IP address of the listening computer. Input the domain name if you are using a hostname (like when under Dynamic DNS/IP) $ip_addy = gethostbyname("my.dns.domain.com"); WakeOnLan($ip_addy, $mac_addy,$socket_number); ?>
Types de Wake On Lan
ethtool -s eth0 wol V
(En remplaçant V par une lettre ci-dessous)
p Réveil dès moindre activité physique u Réveil dès réception d'un message unicast m Réveil dès réception d'un message multicast b Réveil dès réception d'un message broadcast a Réveil dès réception d'un ARP g Réveil dès réception d'un MagicPacket(tm) s Réveil dès réception d'un message SecureOn(tm) (mot de passe) pour MagicPacket(tm) d Désactiver