Настройка удаленного WOL (Wake-On-LAN) на роутере с OpenWRT прошивкой

wol openwrt
Настройка удаленного WOL (Wake-On-LAN) на роутере с OpenWRT прошивкой

Часто так случается, что нужно получить доступ к выключенному компьютеру удаленно. Рассмотрим как настроить роутер с кастомной прошивкой (в данном случае OpenWRT) и оборудование системы компьютера.

Первое, что нам нужно сделать, это настроить перенаправление трафика. WOL работает с UDP широковещательными (broadcast) пакетами на 9-й порт. Собственно получать пакеты из внешней сети можно и на любой другой порт, а потом перебрасывать их во внутреннюю сеть уже на 9-й порт, Вы можете посылать на любой в зависимости от возможностей Вашего программного обеспечения WOL-клиента. (Клиенты под Андроид и iOS)

Войдите в вэб интерфейс маршрутизатора Администрирование (Administration) -> Сеть (Network) -> Брандмауэр/Межсетевой экран (Firewall) -> Перенаправление трафика (Port Forwards). Добавить новую запись, например под названием Wake-On-LAN.

  • Протокол (Protocol): UDP
  • Внешний порт (External port): 9 (или любой другой)
  • Внутренний порт (Internal port): 9
  • Внутренний адрес (Internal address): 192.168.1.254

Обратите внимание! Внутренний адрес будет виртуальным, поэтому нужно указать его исходя из диапазона Вашей сети, но обязательно тот который не задействован. Т.е. если у вас внутренняя сеть 192.168.1.*, можно указать 192.168.1.254. Если сеть 192.168.0.* — 192.168.0.254 соответственно. 254 тут просто адрес который вряд ли задействован и может быть указан любой другой в пределах диапазона сети.

В дополнение к перенаправлению трафика также нужно настроить виртуальную цель в нашей локальной сети для того, чтобы транслировать WOL пакеты в локальную сеть. Нам понадобится добавить фиктивную цель в таблицы ARP. К сожалению, это можно сделать только с помощью командной строки (CLI).

Подключитесь к маршрутизатору OpenWRT, используя ваш любимый клиент SSH. Я использую бесплатный WinSCP.

Чтобы добавлять фиктивный адрес в таблицу ARP мы создаем дополнительный сценарий инициализации, тогда при каждой перезагрузке роутера, настройки сохраняться.

Создайте новый файл с именем ‘/etc/init.d/wakeup’

vim /etc/init.d/wakeup

Добавьте в этот скрипт следующее содержание:

#!/bin/sh /etc/rc.common

START=98
STOP=15

start() {
ip neigh add 192.168.1.254 lladdr ff:ff:ff:ff:ff:ff nud permanent dev br-lan
}

stop() {
ip neigh del 192.168.1.254 dev br-lan
}

Замените ff:ff:ff:ff:ff:ff на MAC-адрес сетевой карты, в Windows его можно посмотреть в «Панель управления\Сеть и Интернет\Центр управления сетями и общим доступом», нажимаете на подключении, потом кнопка «Сведения». Свойство — «Физический адрес», формата ff-ff-ff-ff-ff-ff

Теперь выставим права на скрипт, чтобы он исполнялся.

CHMOD 755 /etc/init.d/wakeup

Для того, чтобы вся эта конструкция заработала, нам еще необходимо установить дополнительный пакет ip

opkg update
opkg install ip

И включить сценарий инициализации для запуска при загрузке

/etc/init.d/wakeup enable
/etc/init.d/wakeup start

Вроде все, если будут проблемы с включением, убедитесь что в настройках BIOS разрешен WOL, и в «Диспетчере устройств -> Сетевая карта -> Свойства -> Управление электропитанием -> Разрешить этому устройству выводить компьютер из спящего режима» стоит галочка.

: 2 комментария

  1. Вроде все, если будут проблемы с включением, убедитесь что в настройках BIOS разрешен WOL, и в «Диспетчере устройств -> Сетевая карта -> Свойства -> Управление электропитанием -> Разрешить этому устройству выводить компьютер из спящего режима» стоит галочка.

  2. В дополнение к перенаправлению трафика также нужно настроить виртуальную цель в нашей локальной сети для того, чтобы транслировать WOL пакеты в локальную сеть. Нам понадобится добавить фиктивную цель в таблицы ARP. К сожалению, это можно сделать только с помощью командной строки (CLI).

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *