Cómo habilitar Wake-on-LAN (WOL) en Linux
La función Wake-on-LAN (WoL) le permite reactivar de forma remota una computadora Linux enviando un paquete Ethernet de transmisión especial (paquete mágico) que contiene la dirección MAC del host que desea encender.
Antes de habilitar WoL en Linux, debe asegurarse de que su placa base admita esta función y habilitarla en la configuración del BIOS. Reinicie el host y abra la configuración del BIOS (UEFI). El nombre de la opción WoL puede variar según el proveedor, el modelo de placa base y la versión de firmware. Esta opción se puede llamar
Wake on PCI/PCI-E,
Power or Resume on PCI/PCI-E,
S5 Wake on LAN. Busque y habilite esta opción. Guarde la configuración del BIOS.
La herramienta ethtool se usa comúnmente para administrar Wake On LAN en Linux. Instalarlo:
$ sudo apt install ethtoolListar interfaces de red:
$ ifconfigCopie el nombre de la interfaz de su adaptador LAN Ethernet y ejecute el comando:
$ sudo ethtool enp3s0 | grep "Wake-on"En este caso, WoL está deshabilitado (d).
Habilite Wake on LAN para el adaptador específico:
$ sudo ethtool --change enp3s0 wol gLa opción Wake On Lan debería cambiar a g (Wake on MagicPacket).
El '
netlink error: cannot enable unsupported WoL mode (offset 36)' indica que WoL no es compatible con el adaptador de red o está deshabilitado en el BIOS.
Ahora puede activar de forma remota su host Linux. Sin embargo, la opción WoL de la interfaz de red se restablecerá al reiniciar. Hay varias formas de habilitar automáticamente Wake on LAN para el adaptador cuando se inicia la computadora.
NetworkManager es la herramienta de administración de red predeterminada en muchas distribuciones de Linux, incluidas Ubuntu, Rocky y Debian. En NetworkManager, puede habilitar WoL para un adaptador usando el comando nmcli:
$ nmcli con showCopie el nombre de la conexión Ethernet (cableada en este ejemplo) y habilite WoL:
$ sudo nmcli c modify "wired" 802-3-ethernet.wake-on-lan magicVerifique que Wake on LAN esté habilitado en la interfaz:
$ nmcli c show "wired" | grep 802-3-ethPara otras distribuciones de Linux, puede usar systemd para habilitar WakeOnLan en el arranque. Cree una nueva unidad systemd:
$ sudo systemctl edit wol.service --full --forceAgregue la siguiente configuración:
[Unit]
Description=Enable Wake-on-LAN
After=network-online.target
[Service]
Type=oneshot
ExecStart=/sbin/ethtool --change enp3s0 wol g
[Install]
WantedBy=network-online.target
Habilite el servicio:
$ sudo systemctl daemon-reload
$ sudo systemctl enable wol.service
$ sudo systemctl start wol.serviceCompruebe que el servicio se esté ejecutando:
$ systemctl status wol
Ahora puede probar cómo funciona Wake on Lan en este host. Copie la dirección MAC del adaptador de red en el que ha habilitado WoL.
Verifique que el modo de suspensión esté habilitado en Linux:
$ sudo systemctl status sleep.target suspend.target hibernate.target hybrid-sleep.targetPon tu host Linux en suspensión:
$ sudo systemctl suspendPara enviar un paquete mágico en Linux, puede utilizar la herramienta wakeonlan o etherwake:
$ sudo apt-get install wakeonlan etherwakePara reactivar una computadora de forma remota, ingrese su dirección MAC (los paquetes WoL no se enrutan, por lo que las computadoras deben estar en el mismo segmento LAN):
$ wakeonlan <MAC-address>o:
$ etherwake <MAC-address>Después de recibir el paquete mágico, la computadora debería reactivarse. Tenga en cuenta que WoL no requiere abrir el puerto en el firewall de Linux. El adaptador de red recibe y procesa directamente el paquete de transmisión WoL UDP sin utilizar la pila de red de Linux.




