Cómo habilitar Wake On Lan (WOL) en Ubuntu 16.04

Respuestas:

21

He encontrado una mejor manera que funcionó para mí. Al menos una forma más limpia. Aparentemente, Ubuntu cambió el sistema de arranque para systemd , en Ubuntu 15.04, Ubuntu 16.04 y presumiblemente las próximas versiones también. Soy nuevo en ambos sistemas, pero esto funcionó para mí.

Estoy publicando esto porque mientras busqué en google Ubuntu 16 wol y otras búsquedas similares me encontré con esta publicación varias veces. Esto podría ayudar a alguien más.

Para mantener el funcionamiento de WOL, tuve que volver a habilitarlo cada vez que el sistema se iniciaba. Para evitar hacer esto manualmente, usé systemd para este propósito. Esto es lo que hice:

  1. Primero, cree el archivo /etc/systemd/system/[email protected](mantenga el símbolo @). Pon esto en esto:

    [Unit]
    Description=Wake-on-LAN for %i
    Requires=network.target
    After=network.target
    
    [Service]
    ExecStart=/sbin/ethtool -s %i wol g
    Type=oneshot
    
    [Install]
    WantedBy=multi-user.target
    
  2. Habilite esto para la interfaz en el arranque, ejecute el siguiente comando (cambie eth3 con su interfaz):

    systemctl enable wol@eth3
    

    Debería ver algo como esto:

    Created symlink from /etc/systemd/system/multi-user.target.wants/[email protected] to /etc/systemd/system/[email protected].
    
  3. Para verificar si está habilitado, ejecute el siguiente comando (cambie eth3 con su interfaz) y debería regresar enabled:

    systemctl is-enabled wol@eth3
    
  4. Para probar esto, reinicie y ejecute (cambie eth3 con su interfaz):

    ethtool eth3
    

    Debería ver una línea con lo siguiente:

    Wake-on: g
    

Fuentes:

loco.loop
fuente
2
+1 esto es mucho mejor. Debería ser el aceptado.
Stefanos Kalantzis
19

En Ubuntu 16.04 conjunto WOL_DISABLE=Nde /etc/default/tlpevitar de conseguir WOL desactivado por la administración de energía TLP.

http://linrunner.de/en/tlp/docs/tlp-configuration.html

Añadir NETDOWN=noen /etc/default/haltpara evitar apagar la tarjeta de red durante el apagado

Active Wake on LAN /etc/network/interfacescuando se use la configuración de red estática.

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface

auto lo
iface lo inet loopback
# The primary network interface

auto eth0
iface eth0 inet static
        address 192.168.0.10
        netmask 255.255.255.0
        gateway 192.168.0.1
        dns-nameservers 192.168.0.1
        up ethtool -s eth0 wol g

Active Wake on LAN en BIOS, ingrese a la configuración de BIOS y busque algo llamado "Wake up on PCI event", "Wake up on LAN" o similar. Cámbielo para que esté habilitado. Guarde su configuración y reinicie.

https://help.ubuntu.com/community/WakeOnLan

Advertencia: algunas placas base / controladores de red no admiten WOL desde el arranque en frío (estado S5, donde la alimentación del sistema se apaga físicamente y se vuelve a encender). En ese caso, se debe realizar al menos un ciclo de encendido (encendido, apagado). Para mitigar el problema, el BIOS se puede configurar para que se encienda cuando se restablezca la CA y luego se programe un apagado dentro de Ubuntu. Consulte el manual de la placa base para obtener más detalles.

nkef
fuente
Esto funcionó para mí en 14.04 LTS. ¡Gracias!
TenLeftFingers
esos dos comentarios sobre WOL_DISABLE=Ny NETDOWN=nodeberían ser parte de help.ubuntu.com/community/WakeOnLan
Alecz
3

Ejecute lo siguiente en la terminal:

sudo ethtool -s {your network interface} wol g 
sudo ethtool {your network interface}

deberías ver una g junto a Wake on LAN después de escribir el segundo comando

fuente

Marwan Nabil
fuente
3

Para que WOL funcione, asegúrese de que su sistema apaga correctamente la interfaz de Ethernet cuando la apaga.

Intenta lo siguiente:

  1. Cree un script bash llamado wol_poweroff.sh en el directorio /etc/rc6.d/ :

    sudo nano /etc/rc6.d/wol_poweroff.sh
    
  2. Pon este código en él:

    #!/bin/bash
    ifconfig eth0 down
    poweroff
    
  3. Copiarlo en el /etc/rc0.d directorio (por lo que también trabaja con alto ):

    sudo cp /etc/rc6.d/wol_poweroff.sh /etc/rc0.d/wol_poweroff.sh
    
  4. Haz que ambos sean ejecutables:

    sudo chmod 755 /etc/rc6.d/wol_poweroff.sh
    sudo chmod 755 /etc/rc0.d/wol_poweroff.sh
    

Ahora pruebe para ver si funciona apagando su máquina con sudo shutdown nowo sudo poweroffy usando una herramienta WOL para enviarle un paquete mágico.


Eso fue lo único que funcionó para mí. Encontré esos pasos en un informe de error en launchpad.net.

Según el autor, Robbie Williamson, esto funciona debido a lo siguiente:

Para que WOL funcione, la interfaz de Ethernet debe desactivarse correctamente como parte del apagado del sistema. Esto debe realizarse como parte de los niveles de ejecución rc0 y rc6, teniendo en cuenta que Linux generalmente tiene 7 niveles de ejecución diferentes (o modos operativos):

rc0.d - Sistema detenido

rc1.d - Modo de usuario único

rc2.d - Modo de usuario único con funciones de red

rc3.d - Modo multiusuario: arranque en modo texto

rc4.d - Aún no definido

rc5.d - Modo multiusuario: arranque en X Windows

rc6.d - Apagado y reinicio


Fuente: https://bugs.launchpad.net/ubuntu/+source/ifupdown/+bug/981461

Edson Jr.
fuente
2

Si usa NetworkManager, puede habilitar WOL a través de nmcli:

nmcli connection show

Recuerde NOMBRE de la conexión del TIPO "802-3-ehternet" para el DISPOSITIVO de interés. Digamos que su nombre es "Conexión por cable 1". Luego modifíquelo correctamente:

nmcli connection modify "Wired connection 1" 802-3-ethernet.wake-on-lan magic

Para obtener su dirección MAC:

nmcli connection show "Wired connection 1" | grep 802-3-ethernet.mac-address

A partir de ahora puede apagarlo y encenderlo desde otra máquina en la misma LAN mediante wakeonlan 1a:2b:3c:4d:5e:6fcomando, donde se 1a:2b:3c:4d:5e:6fencuentra la dirección MAC de la tarjeta LAN del paso anterior.

Orientar
fuente
1

Además de los parámetros sugeridos por @nkef, puede establecer lo siguiente en / etc / network / interfaces si utiliza DHCP en lugar de la configuración de IP estática para el adaptador LAN (aquí denominado eth0):

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp
        ethernet-wol g

(probado en Ubuntu 16.04 LTS).

rpr
fuente
1

Esto también me mordió en Ubuntu 18.04 (instalación sin cabeza / mínima), desafortunadamente las respuestas que se enumeran aquí, aunque a veces parecen funcionar, no proporcionarán una solución confiable ya que crean condiciones de carrera o luchan con los gustos de systemd, netplan y udev.

Al principio también probé este enfoque y parecía funcionar, estoy programando un sistema para que arranque cada noche a través de WakeOnLan para ejecutar copias de seguridad ya que el BIOS del sistema no proporciona una opción de CA programada.

Funcionaría durante unos días y luego se negaría a despertarse, al encenderlo manualmente y ejecutar ethtool reveló que WoL había sido desactivado:

    Wake-on: d

Así que pensé que algo más tenía que estar apagándolo y habiendo tenido muchos de estos problemas en los últimos años con el sistema tomando el control de partes del sistema, decidí comenzar aquí, he aquí:

WakeOnLan = .. .. Por defecto está desactivado.

https://www.freedesktop.org/software/systemd/man/systemd.link.html

Los ejemplos en línea muestran algo como:

/etc/systemd/network/50-wired.link

[Match]
MACAddress=<MAC ADDRESS>

[Link]
WakeOnLan=magic

Cómo alguna vez esto todavía no funcionaba. Entonces me encontré con esto:

udevadm test-builtin net_setup_link  /etc/systemd/network/50-wired.link

que resultó en:

Load module index
Parsed configuration file /lib/systemd/network/99-default.link
Parsed configuration file /etc/systemd/network/50-wired.link
Parsed configuration file /run/systemd/network/10-netplan-eno1.link

¿Y qué encuentro en /run/systemd/network/10-netplan-eno1.link?

[Match]
MACAddress=<MAC ADDRESS>

[Link]
Name=eno1
WakeOnLan=off

Solución Cualquiera:

  1. eliminar netplan,
  2. configurar redes a través de una configuración de plan de red,
  3. o configure el archivo systemd .link para que tenga una mayor prioridad.

Como ya tenía el archivo systemd .link, simplemente lo renombré a 00-wired.link, reinicié y ahora ethtool eno1 informa:

    Wake-on: g

Sin ningún servicio adicional con el único fin de intentar habilitar WoL.

Daniel Squires
fuente