
Tengo wake on lan
un 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:FF
es una dirección MAC de mi server
, que tiene IP 192.168.1.2
y 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 7
a 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.0
a 255.255.255.128
, por lo que mi transmisión es ahora 192.168.1.127
y 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).