wakeonlan с удаленного хоста

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 [email protected]

Пока все хорошо. Теперь я могу разбудить сервер из локальной сети, но как разбудить сервер из удаленного местоположения?

Я пробовал: 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"

Не забудьте установить:Wake On LAN

решение1

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

Связанный контент