Иногда бывает просто необходимо удалённо включить компьютер по сети, особенно если до нужной машинки идти далековато или просто лень. А так как я стараюсь придерживаться идеологии истинного джедая и покидаю своё рабочее место только в случае, если уж прижмет и решить по другому не получается. Вот собственно и пост.
формулировка задачи примерно следующая:
удаленное включение компьютера с другого компьютера в локальной сети.
Для того этого, на машине которую собрались будить по сети, необходимо:
- блок питания ATX 2.01 и выше
- материнская плата, поддерживающая Wake On Lan
- сетевая карта с поддержкой 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(tm)
s — Активировать SecureOn(tm) пароль для MagicPacket(tm)
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-адрес компьютера который надо разбудить
Свежие комментарии