Скрипт для включение компьютера по wake on lan

Обновлено: 07.07.2024

Сетевым администраторам и пользователям конечно порой хочется ощутить себя хоть немного богами компьютерных сетей, управлять своими системам удаленно. И не обязательно держать всё свою компьютерную технику включенной, чтобы получить к ней доступ. Выход из этой ситуации есть — технология включения по сети Wake on Lan.

Для этого надо посмотреть инструкцию о Вашей материнской платы. Поддерживает ли она такой режим удаленного включения.

Материнская плата + eth (Wi-Fi) + утилита.

В БИОСе нужно включить поддержку Wake-On-LAN.

На всякий случай, значение остальных опций:

По умолчанию для WOL пакета используются порты 7 и 9 (протокол UDP).

Вариант №1 под Windows:

Требуются следующие утилиты и комп должен быть подключен к сети.

В батнике mc-wol.bat прописываем

mc-wol 20:CF:30:3C:30:9C

Включить компьютер в локальной сети с MAC= 20:CF:30:3C:30:9C

wol.exe 20:CF:30:3C:30:9C:

  • Включить компьютер с использованием IP=212.248.111.222 и MAC=20:CF:30:3C:30:9C: wol.exe 212.248.111.222- 20:CF:30:3C:30:9C

Вариант №2 под Ubuntu:

1) определяем mac адрес сетевой карты

$ ifconfig | grep HWaddr

eth0 Link encap:Ethernet HWaddr 00:24:1d:82:1b:74

$ apt-cache search wakeonlan

$ sudo apt-get install wakeonlan

00:25:22:83:33:25 - mac адрес домашнего пк.

Посылаем волшебный пакет на домашний комп.

sudo wakeonlan -i 192.168.1.255 00:25:22:83:33:25 (где мой мас-адресс mac адресс домашнего пк.)

Sending magic packet to 192.168.1.255:9 with 00:25:22:83:33:25

Используйте прокси ((заблокировано роскомнадзором, используйте vpn или proxy)) при использовании Telegram клиента:

Поблагодари автора и новые статьи

будут появляться чаще :)

Карта МКБ: 4432-7300-2472-8059

Большое спасибо тем кто благодарит автора за практические заметки небольшими пожертвованиями. С уважением, Олло Александр aka ekzorchik.

… а также без проброса портов, SSH/telnet и установки сторонних приложений. С любого компьютера, подключённого к интернет и даже с телефона!


Где ifname — имя интерфейса, с которого будет рассылаться волшебный пакет, XX:XX:XX:XX:XX:XX — mac адрес вашего компьютера.

Вроде всё просто, но Winbox с телефона не особо запускается и mac адрес по памяти замучаешься вводить. Можно запускать SSH и отправлять в него одну единственную команду, но это тоже долго и нудно. Используем фаервол!

Напрямую из правил фильтра запускать исполнение команд нельзя, из всех действий нам больше всех подойдёт добавление адреса в address-list, т.к. оно позволяет создать новый объект в операционной системе роутера, доступный из скриптов.

Добавим новое правило для цепочки input и расположим его среди других разрешающих правил этой цепочки. Укажем протокол tcp и dst-port — любой из верхних портов.


Действие выберем add src (можно и dst) to address list, укажем имя листа.


Для отслеживания появления записей используем планировщик. Заходим System -> Sheduler, создаём задание планировщика, задаём имя. Указываем Start time: startup, и желаемый интервал, к примеру каждые 15 секунд.

В поле on event напишем простенький скрипт:


Не забываем указать правильный mac, имя интерфейса и адрес-листа. Данный скрипт при обнаружении элементов в адрес-листе выполнит команду, отправляющую магические пакеты на ваш компьютер, после чего удалит запись из адрес-листа.

Только не забывайте про безопасность, данный способ ничем не защищён и кто угодно может включить Ваш компьютер, зная или подобрав нужный порт. Для защиты можно использовать VPN, port knocking, whitelist или метод Неуловимого Джо — решать Вам. Если Вам требуется включать таким образом по-отдельности несколько компьютеров, создайте соответствующее количество правил на разных портах, каждое из которых будет кидать адреса в свой адрес-лист, скрипт в задании планировщика также размножаем через Ctrl+C, Ctrl+V, либо создаём отдельные задания для каждого — как хотите.

Wake-on-LAN (WOL; в переводе с англ. — «пробуждение по [сигналу из] локальной сети») — технология, позволяющая удалённо включить спящий, выключенный или компьютер в режиме гибернации, но поддержка этого (особенно для выключенного компьютера) зависит от аппаратного обеспечения и настроек BIOS/UEFI. Большинство современных компьютеров имеют функцию WOL - она ​​может быть указана в разделе PME (Power Management Events - События управления питанием).

Причины использовать WOL с DD-WRT:

  • Вы не хотите, чтобы компьютер был включен всё время, но вы хотите использовать его вне своего дома или офиса, и компьютер подключен к маршрутизатору DD-WRT, который постоянно включен.
  • Компьютер является медиасервером, который автоматически засыпает, но вы хотите, чтобы он автоматически активировался для доступа к файлам.

[edit] Подготовка

  1. Компьютер с поддержкой WOL. Большинство современных компьютеров поддерживают эту технологию.
  2. Права администратора на компьютере, который вы хотите иметь возможность разбудить по сети.
  3. Компьютер должен иметь статический IP-адрес, назначенный вручную или полученный через резервирование DHCP. В приведенном ниже примере мы предполагаем, что локальная сеть маршрутизатора - 192.168.1.x (по умолчанию), а компьютер со статическим IP - 192.168.1.254.
  4. В идеале, второй компьютер для проверки возможности первого к пробуждению. Вы также можете использовать веб-интерфейс устройства DD-WRT для отправки тестовых пакетов вместо второго ПК.

[edit] Включение WOL на компьютере

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

[edit] Проверьте, что WOL работает в локальной сети

Переведите первый компьютер в спящий режим, режим ожидания и выключите, каждый раз нажимая кнопку Send на втором компьютере, чтобы проверить каждый режим и убедиться, что WOL работает и компьютер запускаться.

После того, как этот шаг заработает, вы сможете приступить к проверке WOL, находясь вне локальной сети, например, в кафе или другом удаленном месте.

[edit] Устранение неполадок

Wake-on-LAN обычно отключена по умолчанию на большинстве ПК. Эта функция должна быть включена в BIOS компьютера, иначе WOL не будет работать. Обратитесь к руководству по материнской плате и экрану BIOS (чтобы к нему попасть, нужно обычно нажать клавишу DEL при запуске компьютера). Если вы не видите опции типа WakeOn в своем BIOS, обычно где-то в Power Management, ваша материнская плата может не поддерживать WOL.

[edit] Способы пробуждения компьютера

[edit] По Telnet или SSH

Примечание. Это предпочтительный способ удаленной отправки магических пакетов WOL.

Если у вас есть локальный или удаленный доступ к маршрутизатору по Telnet или SSH, вы можете активировать компьютер в локальной сети, используя следующую команду:

Обратите внимание, что важно указывать полный путь к "/usr/sbin/wol". Просто "wol" не будет работать.

Замените AA:BB:CC:DD:EE:FF фактическим MAC-адресом компьютера, который вы хотите запустить удаленно. Аналогичным образом замените 192.168.1.255 фактическим широковещательным адресом сети (192.168.1.255 - широковещательный адрес, когда компьютер имеет IP-адрес 192.168.1.x и маску подсети 255.255.255.0). Замените «PP» на номер порта, который прослушивает ваша машина (обычно 7 или 9).

[edit] Через переадресацию портов

Чтобы удаленно разбудить компьютер через Интернет с помощью Wake-on-LAN следуйте этим инструкциям:

1 - Создайте правило переадресации порта в веб-интерфейсе (Applications & GamingPort Range Forward) на выбранный IP-адрес:

  • Здесь 9 - это значение по умолчанию, но вы можете использовать любой номер порта, если программа для пробуждения поддерживает работу с портами, отличными от 9. Большинство служб WOL будут использовать UDP-порт 7 или 9.
  • 192.168.1.254 - это IP-адрес в локальной сети, это может быть любой IP-адрес, если он не назначен никакому другому устройству.

2 - Добавьте статическую запись ARP, введя следующую строку в разделе AdministrationCommands веб-интерфейса, а затем сохраните с помощью кнопки Save Startup.

  • Не изменяйте MAC-адрес FF:FF:FF:FF:FF:FF, это специальный MAC-адрес, используемый для широковещательной рассылки. Волшебные пакеты WOL создаются с использованием MAC-адреса целевого компьютера, но должны и почти всегда отправляться через широковещательную рассылку. MAC-адрес, используемый здесь, управляет тем, как пакет отправляется, а не как он формируется.
  • IP-адрес 192.168.1.254 должен соответствовать IP-адресу, который вы использовали на предыдущем шаге. Опять же, этот IP-адрес должен соответствовать вашей локальной сети, и не должен быть назначен любому другому устройству сети.
  • Объяснение / обоснование этой настройки: как правило, пакеты WOL отправляются на специальный широковещательный IP-адрес - на конечный .255 в подсети или на 255.255.255.255. Поскольку переадресация портов на эти специальные выделенные широковещательные IP-адреса не работает, нам нужно создать собственный широковещательный IP-адрес, взяв неиспользуемый IP-адрес и назначив ему широковещательный MAC-адрес, а затем перенести порт на него.
  • В качестве необязательной альтернативы, вместо команды arp, можно использовать ip neigh (которая делает то же самое, что и arp). Поддержка ip neigh была удалена из DD-WRT начиная со сборки 17650, а поддержка arp недоступна в сборках DD-WRT ранее 5672.

3 - Перезагрузите маршрутизатор или выполните команды вручную.

[edit] Automatic Wake-On-LAN Daemon

Служба (демон) автоматического включения Automatic Wake-On-LAN Daemon будет периодически отправлять пакет пробуждения по локальной сети через заданные интервалы. Это может быть полезно для поддержания системы в сети во включенном состоянии (например, компьютер-медиацентр).

Пакеты, сгенерированные службой WOL, отправляются на UDP-порт 40000. Скорее всего, вам не нужно об этом беспокоиться, если только система, которую вы пытаетесь пробудить, не находится в другой подсети или вы не пытаетесь отслеживать пакеты.

Примечание: пользовательский интерфейс говорит, что интервал Interval принимает диапазон от 1 до 86400 секунд, но он будет отправлять пакет WOL с интервалом не менее 15 секунд. Все значения ниже 15 принимаются, но интервал будет всё равно 15 секунд.

Wake On Lan - технология, которую поддерживают материнские платы и сетевые карты, позволяющая включать компьютер, когда на его сетевой интерфейс приходит специальный пакет. Чтобы воспользоваться возможностью WOL нужно:

  • Включить в BIOS опцию включения по сигналу на сетевую карту;
  • Возможно потребуется настроить сетевую карту на прием WOL;

Пример настройки для материнской платы Asus m4a785td-v evo:

Powershell скрипт для отправки пакета WOL

Send-WOL.ps1 - скрипт, который посылает пакет WOL на указанный ip адрес. Обязательным параметром является mac адрес устройства, которому адресован данный пакет.

Если не указывать ip, то будет использован широковещательный адрес 255.255.255.255, т.о пакет будет отправлен всем компьютерам локальной сети. Однако включиться только тот, который имеет указанный mac адрес.

Если ваш компьютер выходит в интернет через роутер

Чтобы включать компьютер локальной сети, посылая пакет WOL из интернета, нужно настроить port forwarding в маршрутизаторе. Пакеты приходящие на определенный порт (например, 9, можно использовать любой порт) по протоколу UDP должны передаваться на нужный локальный IP адрес. Если в port forwarding настроить перенаправление (с внешнего порта) на широковещательный (внутренний) адрес 255.255.255.255, то т.о. можно пробуждать из интернета любой компьютер локальной сети, указывая в пакете WOL нужный mac адрес.

WOL after power loss/failure

Существует проблема: Если материнская плата будет обесточена, а затем снова подключена к питанию, то она уже не будет включать компьютер по сигналу WOL. Эта проблема решается:

  1. использованием источника бесперебойного питания (ИБП);
  2. или настройкой BIOS: POWER \ APM Configuration \ Restore on AC Power Loss : Power On. Без ИБП, но с настройкой включения, компьютер будет включаться и не использоваться после короткой обесточки, что может быть нежелательным. Поэтому удобно использовать ИБП + настройку BIOS. В этом случае короткие обесточки не прервут подачу питания на материнскую плату и WOL будет функционировать, а если все-таки случиться прерывание питания, то настройка Restore on AC Power Loss включит компьютер.

Enable WOL on network adapter

ifconfig -a - посмотреть список сетевых интерфейсов вместе с MAC адресами ( apt install net-tools ) ethtool $if - посмотреть настройки сетевого адаптера, в т.ч. возможность WOL ( apt install ethtool ).

В примере выше видим, что для enp7s0 WOL поддерживается, об этом говорит строка Supports Wake-on: pumbg . Параметр Wake-on показывает включен ли режим WOL. Значение d - выключен, g - включен. В свою очередь для vmbr0 нет параметров Supports Wake-on и Wake-on , что означает, что этот сетевой интерфей WOL не поддерживает.

Включить/выключить WOL можно командой:

  • ethtool -s enp7s0 wol g - включить
  • ethtool -s enp7s0 wol d - выключить

Отправка магического пакета

Для отправки магического пакета можно использовать утилиту wakeonlan

Настройка WOL для компьютера с proxmox (с настроенным Virtual Machine Bridge).

На компьютере с одной серевой картой, после установки proxmox конфигурация сети будет состоять из трех сетевых интерфейсов:

Видно, что интерфейс vmbr0 (Virtual Machine Bridge) имеет IP адрес, а enp7s0 не имеет.

Посмотрим настройки сети:

На описанной конфигурации отправка магического паента для MAC интерфейса vmbr0 ничего не даст. Отправлять нужно на MAC реальной сетевой карты. Т.е. для описанной конфигурации сработает команда:

Стоит отметить, что если рассылать пакет не на широковещательный адрес, а на конкретный:

то почему-то это не работает.

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

You can’t perform that action at this time.

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.

Читайте также: