Любая современная сетевая плата и БИОС материнской платы поддерживают технологию Wake On Lan, которая позволяет включить данный компьютер удалённо.

Принцип работы WOL

При включенной функции Wake On Lan, компьютер, выключенный нормальным образом (не в аварийном режиме), продолжает подавать дежурное питание (5В с маленьким током) на сетевую плату, которая находиться в режиме ожидания всего лишь одного пакета — Magic packet (магический пакет). Поле получения этого пакета, сетевая плата подаёт сигнал для включения компьютера.

Передать этот пакет можно при помощи специальной программы, например WOL v2.0.3.

Настройка включаемого компьютера

В БИОС компьютера включаем технологию Wake On Lan, данная опция находиться в разделе управления питанием, и может называться Wake On Lan (установить в положение Power-On), Wake Up On LAN (в положение Enabled), Wake on LAN from S5 (в положение Power-On), или ERP Support (в положение Disabled).

Далее, необходимо настроить сетевую плату (в Windows). Заходим в «свойства» сетевой платы, по кабелю которой мы хотим включать компьютер и нажимаем «настроить».

Далее заходим на вкладкуУправление электропитаниеми выставляем следующие галочки.

Теперь, выключая компьютер нормальным образом, он будет ждать магического пакета, и включиться получив его.

Как отправить магический пакет

Для отправки магического пакета и дальнейшего включения компьютера, вам нужно знать MAC адрес (физический адрес) сетевой платы включаемого компьютера.

Так как выключенный компьютер просто не может иметь никакого IP адреса, то получить пакет он может только в широковещательном режиме. Выключенный компьютер также не может ответить на TCP пакет, который запрашивает соединение на порту и по этому, логично предположить, что пакет должен быть UDP (хотя, это не важно). Порт назначения в данном случае не важен, сетевая карта примет магический пакет на любом порту, но принято считать 7-й и 9-й порты, портами по умолчянию для WOL. Из вышесказанного следует что включаемый компьютер, и компьютер с которого отправляется пакет, должны находится в одной сети, иначе, широковещательный пакет (broadcast) скорее всего не выйдет за пределы маршрутизатора (о включении через интернет поговорим позже).

Как говорилось раньше, отправить магический пакет можно при помощи специальной программы, в которой нужно будет только ввести MAC адрес включаемого компьютера и его IP, для создания широковещательной рассылки в данной сети. Например, если IP компьютера 192.168.1.10, то программа будет слать на этот ip и на бродкаст 192.168.1.255. А если вам нужно организовать включение компьютеров онлайн (через браузер), то это можно сделать при помощи PHP скрипта.

Wake On Lan через интернет

Если вы имеете прямое подключение к интернету (по DHCP) и выделенный IP адрес, и если ваш провайдер поддерживает маршрутизацию широковещательных пакетов, то ваш компьютер можно будет включить отправить магический пакет на бродкаст вашей сети, например, ваш IP 37.37.37.59, то вам нужно отправить пакет на адрес 37.37.37.255.

Но в большинстве случаев, по той или иной причине это не сработает, тогда у вас должен быть маршрутизатор. Маршрутизатор (роутер) выполняет подключение к интернету, а ваш компьютер, по кабелю подключается к этому маршрутизатору. При таком раскладе, магический пакет необходимо отправлять не широковещательно, а на внешний IPадрес роутера. А в роутере необходимо создать правило (порт форвардинг) в котором прописать проброс нужного порта (по умолчанию 7 и 9 для магического пакета, хотя вы можете отправлять на любой) из WAN в LAN на бродкаст, то есть на XXX.XXX.XXX.255.

Но к сожалению, далеко не все роутеры умеют пробрасывать порты на бродкаст, делать это умеют некоторые модели D-link, все Linksys и Cisco, роутеры MikroTik, и по моему ZyXel.

Структура Magic пакета

Magic пакет – это специальная последовательность байтов, которая для нормальной работы посылаеться по протоколу UDP широковещательно. Вначале пакета идёт 6 байт равных 0xFF, а потом идёт MAC адрес повторённый 16 раз. Допустим, что MAC адрес 00:1D:7D:E5:06:E8, то магический пакет будет выглядеть так (без переводов строки конечно):

FFFFFFFFFFFF

001D7DE506E8

001D7DE506E8

001D7DE506E8

001D7DE506E8

001D7DE506E8

001D7DE506E8

001D7DE506E8

001D7DE506E8

001D7DE506E8

001D7DE506E8

001D7DE506E8

001D7DE506E8

001D7DE506E8

001D7DE506E8

001D7DE506E8

001D7DE506E8