Cómo activar la compatibilidad con Wake-on-LAN (WOL) en Linux

Cómo conseguir que Wake-on-LAN funcione en tu equipo Linux sin perder la cabeza

Trabajar con WoL en Linux es un poco extraño y frustrante a veces. Configuras todo (BIOS, herramientas de red) y, de repente, nada. O peor aún, indica que WoL no es compatible, aunque se supone que tu hardware debería hacerlo. Esta guía te ahorrará molestias, explicándote los problemas más comunes y sus soluciones reales, para que finalmente puedas reactivar tu equipo Linux de forma remota sin tener que preocuparte cada vez.

Cómo solucionar el problema de WoL en Linux

Asegúrese de que el BIOS admita y tenga habilitado Wake-on-LAN

Este es el primer paso, pero a menudo se pasa por alto. A veces, esas configuraciones de la BIOS están ocultas tras menús extraños o tienen nombres diferentes según la placa base. Reinicia tu PC, pulsa Supr, F2 o cualquier otra tecla para abrir la BIOS/UEFI. Ve a las secciones «Administración de energía» o «Avanzado».Busca opciones con nombres como Wake on PCI/PCI-E, Power on By PCI-Eo S5 Wake on LAN. Activa esa opción. Guarda y sal. Porque, claro, Windows tiene que complicarlo más de lo necesario; Linux hereda todas estas peculiaridades.

En algunas configuraciones, esta configuración no es evidente y podría estar deshabilitada por defecto, por lo que WoL no activa nada. Después de habilitarla, reinicie de nuevo y compruebe si su tarjeta de red está lista para recibir paquetes mágicos.

Instalar y usar ethtool para comprobar y habilitar WoL

Esta herramienta es un salvavidas, pero la línea de comandos puede ser intimidante al principio.¿Por qué es útil ? Interactúa directamente con el controlador de tu tarjeta de red, así que si WoL es compatible, ethtool puede avisarte y habilitarlo. Si no es compatible o el controlador no es compatible con WoL, la verdad es que no hay solución.

Instálalo si aún no lo has hecho: $ sudo apt install ethtool

Encuentra tu interfaz Ethernet; probablemente algo como enp3s0o eth0. Enumere todas las interfaces: $ ifconfigo$ ip link

Correr: $ sudo ethtool enp3s0 | grep "Wake-on"

Se espera ver indicadores como «d» (deshabilitado), «w» (activación con paquete mágico) u otros. Si está deshabilitado, prueba: $ sudo ethtool --change enp3s0 wol g

Ese comando le indica a la tarjeta de red que acepte paquetes mágicos. Si el cambio se confirma, ¡genial! Ese es el primer paso. Si recibe un error como netlink error: cannot enable unsupported WoL mode (offset 36), es la señal: su hardware o controlador no es compatible con WoL en esa interfaz.

Cómo hacer que WoL se mantenga después de reiniciar: usar NetworkManager o systemd

Porque, claro, Linux reinicia todo esto al reiniciar. Necesitas una forma de automatizarlo. Aquí tienes algunas opciones:

Método 1: Usar nmcli (para NetworkManager)

Muchas distribuciones, especialmente Ubuntu, Debian, Rocky o Fedora, usan NetworkManager. Puedes habilitar WoL con: $ nmcli con showpara listar las conexiones y luego encontrar tu conexión cableada. Muestra nombres como » Conexión cableada 1″ o nombres personalizados.

Habilitar WoL para esa conexión: $ sudo nmcli c modify "Wired connection 1" 802-3-ethernet.wake-on-lan magic

Comprueba si está habilitado: $ nmcli c show "Wired connection 1" | grep 802-3-eth

Si está turbio o no funciona, es posible que tengas que volver a aplicarlo en cada arranque o incluirlo en el script de rutinas de inicio.

Método 2: Use systemd para ejecutar ethtool en el arranque

Esto es un poco complicado, pero funciona bien. Básicamente, se crea un servicio systemd que ejecute el ethtoolcomando al iniciar, de modo que active WoL automáticamente cada vez.

Crea un archivo /etc/systemd/system/wol.servicecon este contenido:

[Unidad] Descripción=Habilitar Wake-on-LAN Después de=red-online.objetivo [Servicio] Tipo=one-shot ExecStart=/sbin/ethtool --change enp3s0 wol g [Instalar] WantedBy=red-online.objetivo 

Reemplace enp3s0con el nombre de su interfaz. Guarde el archivo y ejecute: $ sudo systemctl daemon-reload $ sudo systemctl enable wol.service $ sudo systemctl start wol.service

Consultar estado con: $ systemctl status wol

De esta manera, WoL debería habilitarse automáticamente después de cada reinicio, lo que es un alivio.

Prueba y envío de paquetes mágicos

Una vez configurado todo, es hora de probar. Confirme que su máquina admita modos de suspensión (verifique con $ systemctl status suspend.target) y apáguela para probarla. Luego, use una aplicación cliente o herramientas CLI como wakeonlan o etherwake para ingresar la dirección MAC.

Instalar la herramienta: $ sudo apt-get install wakeonlan etherwake

Envía tu paquete mágico: $ wakeonlan <MAC-address>o: $ etherwake <MAC-address>

Si la configuración de red no es demasiado estricta y la BIOS está configurada correctamente, el PC debería reactivarse. Tenga en cuenta que los paquetes WoL generalmente solo funcionan dentro del mismo segmento de LAN; aquí no se produce ninguna acción de enrutamiento.

Una última cosa: no se garantiza que estos comandos y pasos de configuración funcionen en todas las combinaciones de hardware, pero cubren la mayoría de los escenarios. Algunas tarjetas de red no son compatibles con WoL o el controlador no funciona, así que revise las especificaciones del hardware si nada funciona.

Resumen

  • Asegúrese de que el BIOS tenga WoL habilitado.
  • Úselo ethtoolpara verificar y alternar la compatibilidad con WoL.
  • Haga que WoL sea persistente a través de NetworkManager o scripts systemd.
  • Prueba con wakeonlano etherwake.

Resumen

Conseguir que WoL funcione en Linux a veces se trata más de buscar compatibilidad de hardware y peculiaridades de controladores que de software en sí. Pero una vez configurado, es bastante práctico: reactivar servidores o PC desde otra habitación sin SSH no está nada mal. Solo ten en cuenta que a veces tu tarjeta de red no admite WoL, por mucho que la ajustes. Ojalá esto ayude a superar los obstáculos y a que las reactivaciones remotas sean realmente fiables.