Wake on LAN (WoL) es una tecnología que permite encender o despertar un ordendar a través de una red local (LAN). Funciona enviando un paquete especial denominado "paquete mágico" (Magic Packet) a la dirección MAC de la tarjeta de red del dispositivo, incluso si el equipo está apagado o en estado de suspensión.
Para comprobar el estado de wake on lan en nuestra interfaz de red os recomiendo ethtool. ethtool es una utilidad de línea de comandos en sistemas Linux utilizada para consultar y modificar los parámetros de configuración de dispositivos de red (interfaces de red) basados en Ethernet. Proporciona un conjunto de herramientas avanzadas para interactuar con las tarjetas de red, permitiendo configurar y obtener información detallada sobre las mismas.
Para comprobar el estado de wake on lan en una interfaz de red buscaremos la cadena "Wake-on" despues de ejecutar el comando ethtool. Ejemplo:
apr@thinkpermu /h/apermuy$ sudo ethtool enp3s0
Settings for enp3s0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: Symmetric Receive-only
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: Symmetric Receive-only
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Link partner advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Link partner advertised pause frame use: Symmetric
Link partner advertised auto-negotiation: Yes
Link partner advertised FEC modes: Not reported
Speed: 1000Mb/s
Duplex: Full
Auto-negotiation: on
master-slave cfg: preferred slave
master-slave status: slave
Port: Twisted Pair
PHYAD: 0
Transceiver: external
MDI-X: Unknown
Supports Wake-on: pumbg
Wake-on: d
Link detected: yes
En este ejemplo "Wake-on: d" indica que wake on lan está desactivado. Para habitarlo de modo manual ejecutamos:
sudo ethtool -s enp3s0 wol g
El problema que me he encontrado es que estos cambios no son persistentes: al reiniciar Debian 12, se pierden los cambios. La solución que he encontrado aquí es crear un servicio de systemd que se ejecute al arrancar la máquina. Para ello debemos:
Crear el fichero /etc/systemd/system/wol.service con el siguiente contenido:
[Unit]
Description=Configure Wake-up on LAN
[Service]
Type=oneshot
ExecStart=/usr/sbin/ethtool -s enp3s0 wol g
[Install]
WantedBy=basic.target
Activar el servicio de systemd
sudo systemctl enable wol.service
sudo systemctl daemon-reload
Reiniciar el equipo
sudo reboot
Comprobar si está activado wake on lan al inicio:
root@tv /h/codery# ethtool enp3s0|grep Wake\-on
Supports Wake-on: pumbg
Wake-on: g
Para arrancar el equipo necesitamos el paquete wol (Arch Linux) y conocer la MAC de la interfaz de red. Ejemplo de arranque remoto:
┬─[root@permuplex:/h/apermuy]─[23:37:23]
╰─>$ wol 40:b0:34:31:c4:7d
Encendiendo 40:b0:34:31:c4:7d.
Más información en la página WakeOnLan de Debian.