Wakeonlan desde un host remoto

Wakeonlan desde un host remoto

Tengo wake on lanun servicio de configuración en mi servidor. Todo funciona bien en la red de área local:

root@server$: poweroff
user@local$ wakeonlan AA:BB:CC:DD:EE:FF

y el servidor se despierta.

AA:BB:CC:DD:EE:FFes una dirección MAC de mi server, que tiene IP 192.168.1.2y nombre de host example.com:. Está conectado al router, que tiene IP 192.168.1.1 (pública: xxx.xxx.xxx.xxx)

Cuando el servidor está activo, puedo hacer ping:

ping example.com

o inicie sesión a través de ssh:

ssh [email protected]

Hasta ahora, todo bien. Ahora puedo reactivar el servidor desde el área local, pero ¿cómo hacerlo desde la ubicación remota?

Intenté: user@local$ wakeonlan -i xxx.xxx.xxx.xxx AA:BB:CC:DD:EE:FF, pero no funciona (no pasa nada;).

¿Tengo que configurar mi enrutador de alguna manera para reenviar paquetes mágicos? ¿Cómo?

La solución

DespuésLa respuesta de RagnarLa solución parecía muy fácil.

Pero en realidad fue un poco complicado.

Mi enrutador es Linksys WAG200g, que no admite Wake on LAN de forma predeterminada. Además, no permite reenviar a los trillizos anteriores 254(mi dirección de transmisión era 192.168.1.255).

La solución fue reenviar el puerto UDP 7a la dirección del servidor, que era 192.169.1.2, luego llamar:

wakeonlan -i example.com -p 7 AA:BB:CC:DD:EE:FF

También instalé nuevo firmware:

lo cual es una excelente actualización de las opciones del enrutador (por ejemplo, agrega la opción Wake on LAN).

También cambié mi máscara de red de 255.255.255.0a 255.255.255.128, por lo que mi transmisión es ahora 192.168.1.127y pasa las reglas de validación del enrutador.

Aquí está el script que uso para conectarme a la máquina y reactivarla si es necesario:

#!/bin/bash
## This sends magic packets to Wake on Lan
## please note, you must formard port 7 to the target machine on your router

## host to wake up
host="example.com"
## mac address of the machive to wake up
mac="AA:BB:CC:DD:EE:FF"
## user to login
user="administrator"

echo "Looking for $host..."
wget -q --tries=2 --wait=1 --waitretry=5 http://$host/
if [ $? -ne 0 ];
then
    echo "$host is not available."
    echo "Waking up $host."
    wakeonlan -p 7 -i $host $mac
    echo "$host is booting up.  Please wait..."
    sleep 30
    wget -q --waitretry=5 --wait=5 http://$host/
    echo ^G
    echo $host is up! Lucky you!
fi
ssh "$user@$host"

No olvides instalar:activación de la LAN

Respuesta1

Debe reenviar el puerto UDP 9 a la dirección de transmisión de su red (192.168.1.255 o similar).

información relacionada