Wake On Lan и Linux






Удалённое выключение Linux-системы не представляет особого труда, лишь бы был доступ к SSH. А вот с аппаратным включением системы дело обстоит несколько иначе. В этой статье я расскажу о том, что и как необходимо сделать, чтобы удалённо включить компьютер, поддерживающий технологию Wake On Lan. Wake On Lan поддерживается практически во всех современных материнских платах. Для того, чтобы иметь возможность разбудить компьютер удалённо, необходимо, чтобы в нём был установлен источник питания ATX версии не ниже 2.01, материнская плата, поддерживающая Wake On Lan, а также сетевая плата с поддержкой этой технологии.


Настройка

Определить, поддерживает ли материнская плата вашего компьютера Wake On Lan, можно. зайдя в настройки CMOS Setup в раздел настроек управления питанием. Найдите там опцию «Wake On Lan» и убедитесь, что она включена.

После загрузки системы установите, если необходимо, пакет ethtool, при помощи которого можно в том числе и переключать сетевую плату в режим пробуждения по сигналу Wake On Lan от других машин:

Далее, необходимо определить, поддерживает ли установленная сетевая плата Wake On Lan, и включена ли эта опция:

В строке Supports Wake-On перечислены механизмы, поддерживаемые сетевой платой. В моём примере я пользуюсь методом отправки т. н. Magic Packet, и если вам нужно то же самое, то убедитесь, что в Supports Wake On присутствует буква «g». Буква «d» в строке Wake-on обозначает, что Wake On Lan для данного сетевого интерфейса отключён. Чтобы включить его в режим распознавания Magic Packet, необходимо:

Имейте ввиду, что после включения компьютера, вероятней всего, опция Wake-on опять перейдёт в состояние «d» и, если вам нужно, добавьте приведённую выше команду куда-нибудь в /etc/rc.local.

Теперь всё готово для пробуждения системы по получению Magic Packet. Для того, чтобы его отправить, необходимо знать MAC-адрес сетевого интерфейса включаемого компьютера, поэтому прежде, чем выключать систему, запишите его:

Теперь можно выключать систему:

Включение

Теперь с любого другого компьютера, находящегося в том же сегменте сети (в принципе, это необязательно, но  тогда необходимо, чтобы в вашей сети маршрутизаторы корректно пробрасывали широковещательные пакеты), можно включить ранее сконфигурированную удалённую систему. Для этого понадобится утилита wakeonlan, которую необходимо установить, если её ещё нет в вашей системе:

Разбудить выключенную систему теперь можно командой (обратите внимание, wakeonlan не требует прав суперпользователя):

Опцией -p указывается номер UDP-порта, с которого будет отправлен Magic Packet. Указание этой опции обязательно, поскольку по умолчанию wakeonlan использует девятый порт, помеченный в /etc/services как discard, что означает то, что пакет с этого порта отправить не получится. В принципе, можно использовать любой незанятый в системе UDP-порт.

Ссылки