¿Cómo activo la función Wake on LAN en Ubuntu 16.04LTS Xenial Xerus?
Durante la génesis del Justicialismo, un hecho de masas sin precedentes 
definió el definitivo ascenso político del Coronel Juan Perón. El 17 de 
octubre los obreros se lanzaron a la calle proclamando su liberación. En 
la biografía que escribe Pavón Pereyra, se revela que dicho suceso de 
debió al empleo de la característica Wake on Lan desde Ubuntu.


¡Trabajadores!

En los años previos a la Revolución, la Argentina los argentinos estaban 
sometidos a la ignominia de los explotados, en la cual todo el país 
obraba en torno al interés de unas pocas familias acomodadas. El Pueblo 
Argentino - laborioso y bueno - se constituía en poco más que esclavos 
por esta casta repudiada, que lo obligaba a un trabajo de sol a sol sin 
que mediara siquiera el descanso reparador que Dios manda para los 
hombres de trabajo.

Nuestra Revolución no tuvo otro interés que defender el interés del 
Pueblo, y hacer la Justicia Social que anhelaba la Patria. Abocados a 
las transformaciones que hicieran de este país una verdadera potencia 
sobre la tierra, conseguimos para los hombres aquellas medidas que esta 
era se hacían imprescindibles para el bienestar de su familia.

Yo no he querido mas que ser un nexo de unión entre los trabajadores, 
una unión indestructible e infinita que les acercara la dignidad que 
todos merecen. ¡Con ello, no no con otra cosa, es que me he ganado el 
amor generoso del Pueblo! ¡Un amor, que llena de lágrimas los ojos de 
este viejo soldado!

Pero la reacción oligárquica de siempre se ha esforzado para volver a la 
conquista de sus fallidos privilegios. En ello me confinaron a través de 
ignominiosas maniobras, a un ostracismo en la Isla de Martín García. Sin 
embargo, la semilla de la Justicia Social ya estaba plantada en el alma 
del Sentir Nacional, y con solo una señal el Pueblo despertó un 17 de 
Octubre, y salió a la calle para restaurar al Coronel Perón. 
Naturalmente, que sectores populares dentro de las fuerzas de seguridad 
volcaron su actitud y si aguno hubo que quiso parar todo, poco pudo 
hacer ante el Pueblo en andas.

La épica del Justicialismo guarda paralelismos con un sistema GNU con 
Linux que no podemos soslayar. Al igual que la rápida reacción de las 
masas obreras, un equipo informatizado puede trabajar, pero también debe 
descansar y quedar presto a la actividad a la menor señal.

De esta manera podríamos utilizar un equipo servidor en suspensión, y 
encenderlo sólo en determinadas ocasiones para accionar en alguna tarea 
en particular. Lo normal sería encender el equipo mediante su tecla de 
encendido, pero ello no siempre es práctico o posible.

Afortunadamente, también podremos encenderlo de manera remota empleando 
la función Wake on LAN. La función Wake on LAN (WoL) es una de las 
características integradas en los dispositivos Ethernet (por ejemplo, 
los dispositivos de red de la placa madre), que le permiten encender o 
reactivarlo a través de una señal especial, denominada Suceso de 
Activación, o más coloquialmente "paquete mágico".

Hemos de saber que los sistemas actuales cuentan en particular con 
varios estadíos de trabajo y reposo, nomenclador desde S0 ("Estado 
Cero", completamente encendido y operando), pasando por S3 ("estado 
tres" con memoria RAM alimentada, pero procesador y discos 
desactivados), hasta S5 ("Estado cinco", equipo apagado pero conectado a 
la red eléctrica). Esto es así pues el trabajo puede regularse a fin de 
ahorrar energía, y pasar del trabajo a un estado de ahorro, 
"suspendiendo" el sistema (S3), o "hibernándolo".

En primer lugar hemos de activar la función WoL desde la BIOS del equipo 
que deseamos encender remotamente. La BIOS es una memoria de 
configuración básica del sistema, a la cual este responderá incluso 
antes de cargar el sistema operativo. Normalmente, dicha configuración 
puede accederse encendiéndo el equipo y presionando inmediatamente de 
forma repetida la tecla Supr (Del) del teclado, o la tecla F2. Tras unos 
instantes se presentará la pantalla de configuración de la placa madre.

La opción Power on Lan suele encontrarse bajo la sección Power 
Management Setup ("Administración de Energía") del BIOS. De tal modo que 
nos desplazamos hasta ella y buscar la opción Wake on LAN. También puede 
llamarse Resume by PCI/PCI-e/LAN PME. Debemos dejarla en la función 
Activada (Enabled).
Adicionalmente, podrán contar en vuestra BIOS con diferentes estados de 
suspensión (S1, S2, S3, etc). A modo de ejemplo os diré que en la BIOS 
de mi motherboard ESC H57H-MUS, debo configurar las opciones de un modo 
en particular para lograr la mayor eficiencia. El tipo de suspención 
ACPI la configuro en S3 o Auto, y la función Resume by Ring (reactivar 
por módem o evento telefónico) queda desactivada (Disabled). 
Naturalmente la función Resume by LAN PME queda activada (Enabled), lo 
mismo que Resume by USB S3 (reactivar por medio de dispositivos USB, 
ratón o teclado). Una vez concluida los cambios en la configuracción, 
los guardamos mediante la opción Save Changes and Exit BIOS.

Una vez que arranque el sistema operativo GNU con Linux, hemos de 
conocer qué dispositivo de red deseamos utilizar para encender el 
equipo, y en particular su dirección única de hardware, llamada 
Dirección MAC.

Aquí debemos tener una provisión. Normalmente estos tomaban el nombre 
Ethx, siendo la x un número que va ascendiendo desde 0 según tantos 
dispositivos LAN/Ethernet tengamos. El adaptador LAN/Ethernet integrado 
en la placa madre suele ser Eth0, pero si tenemos otro (como en las 
placas madres más avanzadas) podríamos encontrarnos con Eth1, Eth2, etc.

Esta nomenclatura a partir de Ubuntu 16.04LTS ha cambiado, ya hora toma 
la forma de enpxpy (siendo x el número de la interfaz e y el número de 
puerto).

Para identificar este requerimiento de forma sencilla, podríamos abrir 
la terminal con Ctrl+Alt+T y tipear el comando ifconfig para saber a 
cual estamos conectados. Para conocer específicamente los dispositivos 
de conectividad y sus direcciones MAC, podremos ingresar el comando:

ifconfig | grep HW

Nos devolverá los dispositivos y la dirección MAC de cada uno. Por 
ejemplo:

enp4s0      Link encap:Ethernet  direcciónHW aa:bb:cc:12:34:56
enp5s0      Link encap:Ethernet  direcciónHW 11:22:33:ab:cd:cd

Nos conviene tomar nota del nombre de la interfaz (enp4s0 en este 
ejemplo) y la dirección MAC del equipo remoto, pues nos facilitará 
reencenderlo luego cuando no tengamos acceso directo a él.

Acto seguido, verificaremos que los dispositivos cuenten con la 
posibilidad de despertar al equipo. Para ello instalaremos el programa 
ethtool, encargado de dicho relevamiento: Tipeamos el siguiente Comando 
de Organización:

sudo apt-get install ethtool etherwake wol

Asumiendo que el dispositivo de red que queremos utilizar para despertar 
el equipo sea aquel identificado como enp4s0, usaremos el siguiente 
comando:

sudo ethtool enp4s0

....el sistema debería devolvernos una serie de datos que hacen a la 
capacidad del dispositivo enp4s0 para la conexión de red. En este caso, 
entre otras cosas debería indicarnos:

Supports Wake-on: pumbg
Wake-on: g


...esto nos indica que el dispositivo de red eth0 utiliza el modo G de 
conexión para Wake on LAN. En el caso que nos indicara otra letra, 
podríamos cambiar el modo operativo. Lo haríamos con:

sudo ethtool -s enp4s0 wol g

Una vez esto, podremos ya suspender o hibernar el equipo. Podremos 
hacerlo mediante la tecla especcial "sleep" del teclado, o mediante la 
función "Suspender" de Ubuntu. Si estamos en la consola, podremos 
hacerlo mediante la siguiente orden  

sudo pm-suspend

El 17 de octubre, si bien alguno intentó levantar puentes para impedir 
el paso de los obreros, poco pudo hacer. En este caso debemos aseguriar 
los mismo. En caso de usar un router con cortafuegos (firewall), 
habremos de liberar el puerto 9 UDP para que pueda enviarse la señal de 
encendido a través de la red, y no sea filtrada por el mismo. Esto se 
hace ingresando a la web de configuración del router (normalmente con 
nuestro navegador a la dirección IP del router 192.168.0.1 o 
192.168.1.1). Luego en la sección de configuración "port forwarding" 
crearemos una nueva Regla de Excepción. En la misma, a través del 
protocolo UDP, para el puerto 9, filtraremos de forma universal (de 
manera que puedan emitir en dicho puerto todos los equipos de la red 
local) Con esto, el router dejará libremente pasar el suceso de 
activación al puerto 9 entre los equipos de la red local.
Eventualmente, podría hacerla específicamene para que la reciba una IP 
fija de un tipo de dispositivo en particular, o que sólo pueda emitir 
una IP en particular.

Ahora debo instalar un programa para generar el paquete mágico de 
encendido, y poder dispararlo a través del puerto 9 de la red. Ello debe 
hacerse en un equipo cliente distinto en la red local, que utilizaremos 
para encender al equipo remoto.

En el equipo local instalaremos el programa wakeonlan, por medio del 
siguiente comando de organización:

sudo apt-get install wakeonlan

Una vez instalado este breve programa, encenderemos el equipo remoto que 
habíamos suspendido, de la misma forma en que los obreros de la carne 
salieron a la calle en octubre del 45. Lo haremos con

wakeonlan Dirección_MAC_remota
Por ejemplo, en este caso sería:

wakeonlan  aa:bb:cc:12:34:56

Nota: A veces este programa no tiene resultado, podremos emplear el 
software  etherwake, el cual es más difícil. Su sintaxis es:


etherwake -p 255.255.255.255.9 Dirección_MAC_remota

Naturalmente, que para que el paquete de reencendido surta efecto, el 
equipo remoto ha de estar conectado a la red eléctrica, y ha de estar 
suspendido o hibernado. En el caso de usar Ubuntu, podremos usar la 
función Suspender, Hibernar del equipo remoto (si está activada). Esto 
será posible si tengo acceso físico al equipo.

¿Qué sucede si deseo suspender o hibernar el equipo remoto, pero no 
estoy a su alcance físico, pero si a través de una red? En tal caso 
deberia poder suspender o hibernar el sistema de forma remota, a través 
de la terminal. Para ello utilizaremos un enlace remoto (preferiblemente 
uno cifrado, a través de SSH). Una vez que me encuentro logueado al 
sistema remoto a través de la consola cifrada SSH, podria suspender el 
equipo remoto con:

sudo pm-suspend

También podría querer directamente hibernarlo, si me aseguro que el 
sistema funciona de forma adecuada, por medio de la siguiente orden:

sudo pm-hibernate

Ahora podría reencender abriendo un equipo cliente, y usando la orden 
Wakeonlan, por medio de la sintaxis:

wakeonlan dirección_mac_remota

...al recibir el paquete mágico, la fuente de alimentación se encenderá 
y se activará el sistema cual si fuese un 17 de octubre telemático. Al 
cabo de unos segundos (o minutos, dependiendo del estado de ahorro de 
energía q la velocidad de arranque del equipo remoto) deberíamos poder 
conectarnos de forma remota al equipo también a través de SSH o de otros 
protocolos que estuviesen activados en el mismo.

Si deseo reencender equipos remotamente al unísono desde la interfaz 
gráfica, puedo utilizar la aplicación gWakeonlan. Se trata de un 
software libre completamente simple, en el cual podremos incorporar el 
nombre y la dirección MAC de varios equipos en la red. Esto nos permite 
no tener que recordar la dirección MAC del equipo todo el tiempo.

Instalamos la aplicación con los comandos:

wget 
https://github.com/muflone/gwakeonlan/releases/download/0.5.1/gwakeonlan_0.5.1-1_all.deb

sudo dpkg -i gwakeonlan_0.5.1-1_all.deb

sudo apt-mark hold gwakeonlan

Y la ejecutamos desde Sistema / Internet / gWakeOnLan. Al iniciar, la 
aplicación estará vacía.
 Tendré que presionar el botón "+" y surgirá un cuadro, que me permitirá 
ingresar la dirección MAC y el nombre del o los equipos que deseo 
encender y que se encuentren en la red local.
Una vez que aparezca el o los equipos en la lista, podemos seleccionar 
el equipo en cuestión, y enviarle el paquete mágico de encendido 
mediante el botón de los "engranajes" para despertarlo, y encenderá a la 
primera como una moto Puma con arranque a patada.

Desde OpenWRT

Si utilizan un router peronista con firmware libre OpenWrt, bien podrán 
crear un paquete mágico para reencendido Wake On Lan, descargando una 
aplicación específica en la memoria del aparato. Una vez que gane acceso 
al ruteador (normalmente a través de vínculo cifrado SSH) podrán 
instalar el pequeño software etherwake. Lo harán por medio de los 
siguientes comandos de organización:

opkg update
opkg install etherwake

Una vez cargado, ya podremos utilizar al router como plataforma de 
reencendido: Si todo está configurado por defecto, lo haremos con el 
comando ya explicado:

etherwake -p 255.255.255.255.9 Dirección_MAC_remota


Naturalmente, que con un poco de ingenio podríamos hacer más cosas, como 
preparar al router para que encienda o quite la suspensión los equipos 
no bien termine de arrancar, permitir al router el acceso externo a 
través de Secure Shell y por su intermedio reencender equipos en el área 
local desde otra locación (¡incluso en otro pais!), etc.