wakeonlan с удаленного хоста
У меня есть настройки wake on lan
сервис на моем сервере. Все отлично работает в локальной сети:
root@server$: poweroff
user@local$ wakeonlan AA:BB:CC:DD:EE:FF
и сервер просыпается.
AA:BB:CC:DD:EE:FF
это MAC-адрес моего server
, который имеет IP 192.168.1.2
и имя хоста: example.com
, Это связано с маршрутизатором, который имеет IP 192.168.1.1 (общедоступный: xxx.xxx.xxx.xxx)
Когда сервер работает, я могу пинговать:
ping example.com
или войдите через ssh:
ssh user@example.com
Все идет нормально. Теперь я могу разбудить сервер из локальной сети, но как разбудить сервер из удаленного местоположения?
Я старался: user@local$ wakeonlan -i xxx.xxx.xxx.xxx AA:BB:CC:DD:EE:FF
, но это не работает (ничего не происходит;).
Нужно ли как-то настраивать мой маршрутизатор для пересылки магических пакетов? Как?
Решение
После ответа Рагнара решение выглядело очень легко.
Но на самом деле это было немного сложно.
Мой роутер Linksys WAG200g
, который не поддерживает Wake on LAN по умолчанию. Кроме того, он не позволяет пересылать тройки выше 254
(мой широковещательный адрес был 192.168.1.255
).
Решением было переадресация UDP-порта. 7
на адрес сервера, который был 192.169.1.2
затем позвоните:
wakeonlan -i example.com -p 7 AA:BB:CC:DD:EE:FF
Также я установил новую прошивку:
это отличное обновление опций роутера (например, добавляет опцию Wake on LAN).
Я также изменил маску 255.255.255.0
в 255.255.255.128
так что моя трансляция сейчас 192.168.1.127
и проходит правила проверки маршрутизатора.
Вот скрипт, который я использую для подключения к машине, и, если нужно, разбуди его:
#!/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"
Не забудьте установить: wakeonlan
1 ответ
Вам нужно перенаправить порт UDP 9 на широковещательный адрес в вашей сети (192.168.1.255 или аналогичный).