вторник, 21 августа 2018 г.

Wake On Lan в Debian

Удалённое выключение Linux не представляет особого труда, лишь бы был доступ ssh. А вот с аппаратным включением системы дело обстоит несколько иначе.
Итак, поговорим о том, что и как необходимо сделать, чтобы удалённо включить компьютер, поддерживающий технологию Wake On Lan.
Wake On Lan поддерживается практически во всех современных материнских платах. Для того, чтобы иметь возможность разбудить компьютер удалённо, необходимо, чтобы на нём был установлен источник питания ATX версии не ниже 2.01, материнская плата, поддерживающая Wake On Lan (сокращённо WOL), а также сетевая плата с поддержкой этой технологии.
Настройка:
Определить, поддерживает ли материнская плата Wake On Lan, можно зайдя в настройки CMOS Setup в раздел настроек управления питанием. Найдите там опцию «Wake On Lan» и убедитесь, что она включена.
После загрузки системы установите, если необходимо, пакет ethtool, при помощи которого можно в том числе и переключать сетевую плату в режим пробуждения по сигналу WOL от других машин:
# apt-get install ethtool
Далее, необходимо определить, поддерживает ли установленная сетевая плата WOL, и включена ли эта опция:
# ethtool eth0 | grep -i wake-on
    Supports Wake-on: pumbg
    Wake-on: d
В строке Supports Wake-On перечислены механизмы, поддерживаемые сетевой платой.
Для удаленного включения используется отправка Magic Packet ("волшебного пакета") на MAC адрес сетевой карты через широковещательный адрес сети.

Убедитесь, что в Supports Wake On присутствует буква «g». Буква «d» в строке Wake-on обозначает, что WOL для данного сетевого интерфейса отключён. Чтобы включить его в режим распознавания Magic Packet, необходимо:
# ethtool -s eth0 wol g
Имейте ввиду, что после включения компьютера, вероятней всего, опция Wake-on опять перейдёт в состояние «d» и, если вам нужно, добавьте приведённую выше команду куда-нибудь в автозагрузку.
Теперь всё готово для пробуждения системы по получению Magic Packet. Для того, чтобы его отправить, необходимо знать MAC-адрес сетевого интерфейса включаемого компьютера, поэтому прежде, чем выключать систему, запишите его:
# ifconfig eth0 | grep -i hwaddr
eth0      Link encap:Ethernet  HWaddr 00:00:2e:b9:cb:ad
Теперь можно выключать систему:
# poweroff
Включение:
Теперь с любого другого компьютера, находящегося в том же сегменте сети (в принципе, это необязательно, но тогда необходимо, чтобы в вашей сети маршрутизаторы корректно пробрасывали широковещательные пакеты), можно включить ранее сконфигурированную удалённую систему. Для этого понадобится утилита wakeonlan, которую необходимо установить, если её ещё нет в вашей системе:
# apt-get install wakeonlan

Разбудить выключенную систему теперь можно командой (обратите внимание, wakeonlan не требует прав суперпользователя):
$ wakeonlan -p 8 00:0e:2e:b9:cb:ad
Опцией -p указывается номер UDP-порта, с которого будет отправлен Magic Packet. Указание этой опции обязательно, поскольку по умолчанию wakeonlan использует девятый порт, помеченный в /etc/services как discard, что означает то, что пакет с этого порта отправить не получится. В принципе, можно использовать любой незанятый в системе UDP-порт.

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

  1. Добрый день, подскажите - принципиально из интернета машину под Дебиан можно включить или только из локалки?

    ОтветитьУдалить
    Ответы
    1. Можно из интернета. Для этого на машину нужно пробросить порт с маршрутизатора и потом, на этот порт, слать wol

      Удалить