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, но он не работает (ничего не происходит;). [ 1130]

Нужно ли как-то настраивать мой маршрутизатор для пересылки магических пакетов? Как?

Решение

После ответа Рагнара решение выглядело очень легко.

Но на самом деле, это было немного сложно.

Мой маршрутизатор - 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

2
задан 13 April 2017 в 15:23

1 ответ

Вам необходимо перенаправить порт UDP 9 на широковещательный адрес в вашей сети (192.168.1.255 или аналогичный).

0
ответ дан 13 April 2017 в 15:23

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

Похожие вопросы: