
Ich habe wake on lan
den Dienst auf meinem Server eingerichtet. Im lokalen Netzwerk funktioniert alles einwandfrei:
root@server$: poweroff
user@local$ wakeonlan AA:BB:CC:DD:EE:FF
und der Server wird aktiviert.
AA:BB:CC:DD:EE:FF
ist eine MAC-Adresse von mir server
, die IP 192.168.1.2
und Hostname hat: example.com
. Es ist mit dem Router verbunden, der die IP 192.168.1.1 hat (öffentlich: xxx.xxx.xxx.xxx)
Wenn der Server aktiv ist, kann ich Folgendes anpingen:
ping example.com
oder per SSH einloggen:
ssh [email protected]
So weit, so gut. Jetzt kann ich den Server lokal wecken, aber wie wecke ich den Server vom Remote-Standort aus?
Ich habe Folgendes versucht:, user@local$ wakeonlan -i xxx.xxx.xxx.xxx AA:BB:CC:DD:EE:FF
aber es funktioniert nicht (nichts passiert;).
Muss ich meinen Router irgendwie so konfigurieren, dass er Magic Packets weiterleitet? Wie?
Die Lösung
NachRagnars Antwortdie Lösung sah sehr einfach aus.
Aber eigentlich war es ein bisschen knifflig.
Mein Router ist Linksys WAG200g
, der Wake on LAN standardmäßig nicht unterstützt. Außerdem erlaubt er keine Weiterleitung an die oben genannten Drillinge 254
(meine Broadcast-Adresse war 192.168.1.255
).
7
Die Lösung bestand darin, den UDP-Port an die Adresse des Servers weiterzuleiten ( ) 192.169.1.2
, und dann aufzurufen:
wakeonlan -i example.com -p 7 AA:BB:CC:DD:EE:FF
Außerdem habe ich eine neue Firmware installiert:
Dies ist eine großartige Erweiterung der Router-Optionen (fügt z. B. die Option „Wake on LAN“ hinzu).
Ich habe außerdem meine Netzmaske von 255.255.255.0
in geändert 255.255.255.128
, sodass meine Übertragung jetzt lautet 192.168.1.127
und die Validierungsregeln des Routers besteht.
Hier ist das Skript, das ich verwende, um eine Verbindung mit der Maschine herzustellen und sie bei Bedarf aufzuwecken:
#!/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"
Vergessen Sie nicht, Folgendes zu installieren:Wake on LAN
Antwort1
Sie müssen UDP-Port 9 an die Broadcast-Adresse in Ihrem Netzwerk weiterleiten (192.168.1.255 oder ähnlich).