Включаем компьютер по сети(Wake-on-LAN) в CentOS (linux)

Иногда бывает просто необходимо удалённо включить компьютер по сети, особенно если до нужной машинки идти далековато или просто лень. А так как я стараюсь придерживаться идеологии истинного джедая и покидаю своё рабочее место только в случае, если уж прижмет и решить по другому не получается. Вот собственно и пост.


формулировка задачи примерно следующая:

удаленное включение компьютера с другого компьютера в локальной сети.

Для того этого, на машине которую собрались будить по сети, необходимо:

  1. блок питания ATX 2.01 и выше
  2. материнская плата, поддерживающая Wake On Lan
  3. сетевая карта с поддержкой Wake On Lan

Включение в BIOS  функции Wake On Lan

При загрузке компьютера заходим в настройки BIOS (CMOS Setup). Обычно это клавиша DEL, но не факт, зависит от производителя. В разделе настроек управления питанием находим опцию «Wake On Lan» и включаем. У меня в BIOS это выглядит так:

Настраиваем CentOS для Wake on LAN

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

yum -y install ethtool

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

ethtool eth0 | grep -i wake-on

В первой строке «Supports Wake-on: pumbg» перечислены все возможные режимы WOL для указанного адаптера. Вот описание:

p — при физической активности
u - при получении unicast сообщения
m — при получении multicast сообщения
b — при получении broadcast сообщения
a — при получении ARP запроса
g - при получении MagicPacket
s — Активировать SecureOn пароль для MagicPacket
d — Отключить все функции «Пробуждения». Сбрасываются все предыдущие настройки.

В нашем случае интерес параметр g - пробуждение при получении «магического пакета».

Вторая строка указывает установленный на адаптере режим WOL . В вашем случае, скорее всего, будет стоять буква d - disabled. У меня (на Print Screen) уже все включено (Wake-on: g)

Включаем режим распознавания MagicPacket:

ethtool -s eth0 wol g

Но после включения компьютера, вероятней всего, опция Wake-on опять станет «d». Чтобы изменения сохранялись и при перезагрузке достаточно в файле ifcfg-eth0 дописать нужный параметр

vi /etc/sysconfig/network-scripts/ifcfg-eth0
в конце файла добавляем
ETHTOOL_OPTS="wol g"

Бывают случаи, когда данного файла нет и где искать ifcfg-eth0 тоже непонятно. Чтобы не выходить за рамки поста и не рассказывать он куда взять этот файл или как написать его с нуля, поступим иначе:

vi /etc/rc.local

и добавляем

ethtool -s eth0 wol g

Как разбудить компьютер по сети

Первым делом надо узнать mac нужного нам компьютера. Например так:

ifconfig eth0 | grep HWaddr | awk '{print $5}'

Можно также если используется dhcpd забрать данные из файла dhcpd.leases:

cat /var/lib/dhcpd/dhcpd.leases | grep -E "lease|hardware|hostname"

Далее на компьютере, с которого будем будит, устанавливаем net-tools:

yum -y install net-tools

Будим компьютер

ether-wake 00:00:00:00:00:00

, где 00:00:00:00:00:00 — mac-адрес компьютера который надо разбудить

Остались или есть ещё вопросы? Задавайте!
(не забудьте указать ссылку на этот пост)




Оставить комментарий

Установка, настройка, мониторинг и администрирование linux, unix, windows систем