Generador de comandos de paquetes mágicos para Linux
Genera un comando nativo de bash o zsh que envía un paquete mágico Wake on LAN desde Linux. Usa Python 3, Perl o bash /dev/udp, así que no necesitas instalar wakeonlan ni etherwake.
Entrada
Salida
Leerme
¿Qué es un paquete mágico de Wake on LAN?
Wake on LAN enciende a través de la red una computadora en suspensión o apagada. La tarjeta de red permanece encendida y escucha un paquete mágico: 6 bytes FF seguidos de la dirección MAC de la computadora repetida 16 veces, 102 bytes en total. Por lo general, se envía como una difusión UDP al puerto 9 o 7, de modo que todas las máquinas de la red local lo reciben y solo se activa la que coincide. Primero, hay que activar Wake on LAN en la configuración del BIOS o UEFI de la computadora.
Herramientas como wakeonlan y etherwake pueden enviarlo, pero no siempre están instaladas, y quizá no quieras añadirlas a un servidor o NAS.
Descripción de la herramienta
Esta herramienta crea un comando de una sola línea que envía el paquete usando lo que Linux ya tiene disponible. Introduce la dirección MAC de la computadora que quieres activar, en uno de estos formatos: 00:11:22:AA:BB:CC, 00-11-22-AA-BB-CC, 0011.22AA.BBCC o 12 dígitos hexadecimales seguidos, y elige cómo enviarlo en «Enviar con»:
- Python 3 o Perl, que funcionan en bash y zsh, no necesitan acceso root y pueden enviar difusiones
- Bash /dev/udp, que no requiere instalar nada, pero solo funciona en bash, no en zsh, y no puede enviar difusiones
La dirección de difusión o IP empieza por 255.255.255.255 y el puerto UDP por 9. Linux responde «Permission denied» cuando bash envía datos a una dirección de difusión, así que la herramienta te avisa si eliges Bash con una dirección que termina en .255. En su lugar, usa la dirección IP de la propia computadora.
El comando se genera en tu navegador. Cópialo y ejecútalo en cualquier máquina Linux de la misma red.
Ejemplos
Para 00:11:22:AA:BB:CC, difusión con Python 3 en el puerto 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, enviado directamente a la computadora en 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/9Características
- Versiones del comando para Python 3, Perl y bash
- Acepta direcciones MAC con dos puntos, guiones, puntos o sin separadores
- Avisa cuando la versión de bash no puede llegar a una dirección de difusión