Générateur de commande Linux de paquet magique
Générez une commande native bash ou zsh qui envoie un paquet magique Wake-on-LAN depuis Linux. Elle utilise Python 3, Perl ou bash /dev/udp : aucune installation de wakeonlan ou etherwake n’est nécessaire.
Entrée
Sortie
Documentation
Qu’est-ce qu’un paquet magique Wake-on-LAN ?
Wake-on-LAN allume un ordinateur en veille ou éteint via le réseau. Sa carte réseau reste alimentée et écoute un paquet magique : 6 octets FF suivis 16 fois de l’adresse MAC de l’ordinateur, soit 102 octets au total. Il est généralement envoyé en diffusion UDP sur le port 9 ou 7, afin que toutes les machines du réseau local le reçoivent et que seule celle dont l’adresse correspond se réveille. Wake-on-LAN doit d’abord être activé dans les paramètres du BIOS ou de l’UEFI de l’ordinateur.
Des outils comme wakeonlan et etherwake envoient ce paquet, mais ils ne sont pas toujours installés, et vous ne souhaitez peut-être pas les ajouter sur un serveur ou un NAS.
Description de l’outil
Cet outil génère une commande sur une ligne qui envoie le paquet avec les outils déjà présents sous Linux. Saisissez l’adresse MAC de l’ordinateur à réveiller au format 00:11:22:AA:BB:CC, 00-11-22-AA-BB-CC, 0011.22AA.BBCC ou sous la forme de 12 chiffres hexadécimaux consécutifs, puis choisissez le mode d’envoi dans « Envoyer avec » :
- Python 3 ou Perl, qui fonctionnent dans bash et zsh, ne nécessitent pas d’accès root et permettent la diffusion
- Bash /dev/udp, qui ne nécessite aucune installation, mais fonctionne uniquement dans bash, pas dans zsh, et ne permet pas la diffusion
L’adresse de diffusion ou l’adresse IP est initialement définie sur 255.255.255.255, et le port UDP sur 9. Linux répond « Permission denied » lorsque bash envoie un paquet à une adresse de diffusion ; l’outil vous avertit donc si vous choisissez Bash avec une adresse se terminant par .255. Utilisez plutôt l’adresse IP de l’ordinateur lui-même.
La commande est générée dans votre navigateur. Copiez-la et exécutez-la sur n’importe quelle machine Linux du même réseau.
Exemples
Pour 00:11:22:AA:BB:CC, avec une diffusion Python 3 sur le 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))'Avec Bash, envoyé directement à l’ordinateur à l’adresse 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/9Fonctionnalités
- Versions de la commande pour Python 3, Perl et bash
- Accepte les adresses MAC avec des deux-points, des tirets, des points ou sans séparateurs
- Avertit lorsque la version bash ne peut pas atteindre une adresse de diffusion