• 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

 

Aucun commentaire

 

Laissez un commentaire