Полезная функция WakeOnLan позволяет запускать ПК по запросу из локальной сети. В основном её используют на оборудовании, которое обычно выключено ради экономии электричества и активно лишь иногда. Далее приведу небольшой bash скрипт, который и делает всю магию запуска.
Сразу стоит отметить, что должно быть выполнено несколько условий: удалённый компьютер должен быть соединён с сетью через провод (wifi зачастую неактивен при выключенной системе), должно присутствовать электропитание и активирован WOL в BIOS.
Подсказка: на материнской плате может быть несколько Ethernet разъёмов. Тогда в BIOS функция WOL будет активироваться для каждого отдельно.
Для подъёма системы по сети можно воспользоваться следующим bash скриптом:
MAC=мак_адрес Broadcast=ip_адрес PortNumber=4000 echo -e $(echo $(printf 'f%.0s' {1..12}; printf "$(echo $MAC | sed 's/://g')%.0s" {1..16}) | sed -e 's/../\\x&/g') | nc -w1 -u -b $Broadcast $PortNumber
Тут необходимо заменить *мак_адрес* и *ip_адрес* на данные системы, которую надо разбудить.
Как показывает практика, хоть у WOL функции есть строгие правила про номер порта и т.п., но отправлять этот запрос можно на любой порт - всё равно запустится.
Ещё есть требование использования статичного ip адреса (не DHCP), прописанного в BIOS запускаемой машины. Но и это требование оказывается на практике нестрогим. То есть если в скрипте выше вместо ip адреса указать широковещательный 255.255.255.255, то система всё равно проснётся по сети.
P.S.
Сам пока пробовал функцию WOL только на серверных материнских платах фирмы Supermicro. Но по слухам, у многих производителей тоже нестрогие правила к WOL запросам. Лишь бы тело запроса было составлено верно... А иногда и вовсе ничего не важно, кроме 12 букв "f" в начале запроса...
P.P.S.
Наличие функции WOL на материнских платах стимулирует параною по сохранности данных да диске. Ведь если кто-то со стороны может замкнуть контакты питания через отправку запроса по локальной сети, то что мешает производителю плат сделать функцию доступа к ssd m2 диску, которому надо лишь несколько вольт для работы (не шпиндельное устройство)? Получается, из выключенного компьютера можно вытащить данные по сети, верно?
А если подумать ещё дальше, то что мешает производителю материнских плат сделать аналог функции WOL для удалённого доступа к оперативной памяти работающего ПК? Ведь уже же фирма Gigabyte спалилась на том, что обновляла 271 модель своих материнских плат при запуске системы. Причём делала это по незащищённому каналу, без шифрования.