La función Wake-on-LAN (WoL) permite encender remotamente un ordenador Linux enviando un paquete Ethernet de difusión especial (magic packet) que contiene la dirección MAC del host que deseas encender.
Antes de habilitar WoL en Linux, asegúrate de que tu placa base soporta esta función y habilítala en la configuración del BIOS. Reinicia el sistema y accede a la configuración del BIOS/UEFI. La opción WoL puede variar según el fabricante, modelo de la placa base o versión del firmware, y podría llamarse Wake on PCI/PCI-E, Power or Resume on PCI/PCI-E o S5 Wake on LAN. Busca y activa esta opción, luego guarda los cambios.
Herramienta ethtool
La herramienta ethtool
se usa comúnmente para gestionar Wake-on-LAN en Linux. Instálala según tu distribución:
- En distribuciones basadas en Debian/Ubuntu:
sudo apt install ethtool
- En Fedora/RHEL/Rocky Linux:
sudo dnf install ethtool
- En Arch Linux:
sudo pacman -S ethtool
Lista las interfaces de red disponibles:
ip link
Identifica el nombre de tu interfaz Ethernet (por ejemplo, enp3s0
) y verifica el estado de WoL:
sudo ethtool enp3s0 | grep "Wake-on"
Si WoL está deshabilitado, el resultado mostrará Wake-on: d
.
Habilita Wake-on-LAN para la interfaz específica:
sudo ethtool -s enp3s0 wol g
Este comando activa el modo g
(Wake on MagicPacket). Verifica nuevamente con:
sudo ethtool enp3s0 | grep "Wake-on"
Si aparece el mensaje netlink error: cannot enable unsupported WoL mode (offset 36)
, el adaptador de red no soporta WoL o la función está deshabilitada en el BIOS. Comprueba el soporte del adaptador con:
ethtool enp3s0 | grep -i wake
La configuración de WoL se pierde al reiniciar, pero puedes hacerla persistente con las siguientes opciones.
Opción 1: Usar NetworkManager
NetworkManager es la herramienta de gestión de red predeterminada en distribuciones como Ubuntu, Debian y Rocky Linux. Habilita WoL con nmcli
:
Lista las conexiones de red:
nmcli con show
Copia el nombre de la conexión Ethernet (por ejemplo, wired
) y habilita WoL:
sudo nmcli c modify "wired" 802-3-ethernet.wake-on-lan magic
sudo nmcli con up "wired"
Verifica la configuración:
$ nmcli c show "wired" | grep 802-3-ethernet.wake-on-lan
Opción 2: Usar un servicio systemd
Para distribuciones sin NetworkManager o configuraciones personalizadas, crea un servicio systemd para habilitar WoL al iniciar:
sudo systemctl edit wol.service --full --force
Añade el siguiente contenido, reemplazando enp3s0
con el nombre de tu interfaz:
[Unit]
Description=Enable Wake-on-LAN
After=network.target
[Service]
Type=oneshot
ExecStart=/usr/sbin/ethtool -s enp3s0 wol g
RemainAfterExit=yes
[Install]
WantedBy=network.target
Guarda el archivo y habilita el servicio:
sudo systemctl daemon-reload
sudo systemctl enable wol.service
sudo systemctl start wol.service
Comprueba que el servicio esté activo:
systemctl status wol.service
Probar Wake-on-LAN
Obtén la dirección MAC de la interfaz Ethernet:
ip link show enp3s0 | grep ether
Verifica que el sistema soporta modos de suspensión:
cat /sys/power/state
Pon el sistema en suspensión:
sudo systemctl suspend
Instala las herramientas para enviar paquetes mágicos:
- En Debian/Ubuntu:
sudo apt install wakeonlan
- En Fedora/RHEL/Rocky Linux:
sudo dnf install wakeonlan
- En Arch Linux:
sudo pacman -S wakeonlan
Envía un paquete mágico desde otro equipo en la misma red LAN, usando la dirección MAC del host. Para activar una computadora de forma remota, ingresa su dirección MAC:
wakeonlan <dirección-MAC>
El ordenador debería encenderse tras recibir el paquete.
Nota: Los paquetes WoL no se enrutan, por lo que ambos dispositivos deben estar en el mismo segmento de red. Para redes más complejas, usa configuraciones como subnet directed broadcasts o routers compatibles con WoL.
WoL no requiere abrir puertos en el cortafuegos, ya que el adaptador de red procesa los paquetes de difusión UDP directamente, sin usar la pila de red de Linux.
¿Qué te parece?
Es bueno conocer tu opinión. Deja un comentario.