Wake-on-LAN en Linux (solo red local)

Esta guía explica cómo habilitar Wake-on-LAN (WOL) en Linux después de haberlo activado a nivel de hardware / firmware.

Wake-on-LAN en Linux funciona solo con conexiones Ethernet por cable. No funciona de forma fiable a través de Wi-Fi.


Sistemas compatibles

Esta guía aplica a la mayoría de distribuciones Linux modernas, incluyendo:

Aplica solo a sistemas que utilizan:


Requisitos previos

Antes de continuar, asegúrate de que:

Si la BIOS / UEFI aún no está configurada, hazlo primero:

Habilitar Wake-on-LAN en BIOS / UEFI

No se necesita la dirección MAC en este paso.


Paso 1: Identificar la interfaz Ethernet

Abre Terminal y ejecuta:

ip link

Busca la interfaz Ethernet activa. Los nombres comunes incluyen:

Ignora:

Utilizarás este nombre de interfaz en los siguientes pasos.


Paso 2: Comprobar la compatibilidad con Wake-on-LAN

Ejecuta el siguiente comando, reemplazando INTERFACE por el nombre de tu interfaz Ethernet:

sudo ethtool INTERFACE

Busca la línea:

Supports Wake-on: Wake-on:

Ejemplo:

Supports Wake-on: pumbg Wake-on: d

Significado:

Si g no aparece en Supports Wake-on, la tarjeta de red no es compatible con Wake-on-LAN.


Paso 3: Habilitar Wake-on-LAN

Para habilitar Wake-on-LAN (magic packet):

sudo ethtool -s INTERFACE wol g

Verifica el cambio:

sudo ethtool INTERFACE

La salida debería mostrar:

Wake-on: g

Esto habilita Wake-on-LAN a nivel de sistema operativo.


Paso 4: Hacer la configuración persistente (importante)

En muchos sistemas Linux, la configuración de Wake-on-LAN se restablece después de reiniciar.

Debes hacer que la configuración sea persistente.


Opción A: NetworkManager (la mayoría de sistemas de escritorio)

Crea o edita un script de dispatcher:

sudo nano /etc/NetworkManager/dispatcher.d/99-wol

Añade el siguiente contenido:

#!/bin/sh

if [ "$2" = "up" ]; then /usr/sbin/ethtool -s INTERFACE wol g fi

Reemplaza INTERFACE por el nombre de tu interfaz Ethernet.

Haz el script ejecutable:

sudo chmod +x /etc/NetworkManager/dispatcher.d/99-wol


Opción B: servicio systemd (método genérico)

Crea un servicio systemd:

sudo nano /etc/systemd/system/wol.service

Añade:

[Unit] Description=Enable Wake-on-LAN After=network.target

[Service] Type=oneshot ExecStart=/usr/sbin/ethtool -s INTERFACE wol g

[Install] WantedBy=multi-user.target

Reemplaza INTERFACE por el nombre de tu interfaz Ethernet.

Habilita el servicio:

sudo systemctl enable wol.service


Paso 5: Consideraciones sobre estados de energía

Wake-on-LAN en Linux funciona cuando el sistema está en:

Requisitos:


Paso 6: Verificación (opcional)

Después de apagar el sistema:

Esto indica que la interfaz de red sigue con alimentación y escuchando.


Problemas comunes y soluciones

Wake-on-LAN se restablece después de reiniciar


Funciona desde suspensión pero no desde apagado


El nombre de la interfaz cambia