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 или аналогичный).

Другие вопросы по тегам