Удалённое включение компьютера бесплатно, без SMS и без облаков, с помощью Mikrotik

…, а так же без проброса портов, SSH/telnet и установки сторонних приложений. С любого компьютера, подключённого к интернет и даже с телефона!
Периодически мне бывает нужно включить домашний компьютер, когда я нахожусь не дома. Обычно я не запаривался и звонил или отправлял сообщение с такой просьбой жене, которая сидит дома в декрете. Очень удобное средство удалённого управления с голосовым интерфейсом. Однако у этого способа есть ряд недостатков — ушла гулять, укладывает ребёнка, или ещё чем либо занята. Хотелось простого решения из того что есть под рукой.

Первым делом включаем Wake on LAN в BIOS’е материнской платы, у всех это делается по-своему, у многих включено по умолчанию. На одном из моих ПК даже такой опции нету — всегда включено.

Далее переходим в WinBox и подключаемся к вашему роутеру (если хотите, можете через SSH или через HTTP (S), я всё делаю в WinBox’е). Если открыть текстовую консоль RouterOS и пошарить там в разделе /tool (или в wiki-мануалах), то можно обнаружить утилиту wol со следующим синтаксисом:
/tool wol mac=XX:XX:XX:XX:XX:XX interface=ifname

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

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

Напрямую из правил фильтра запускать исполнение команд нельзя, из всех действий нам больше всех подойдёт добавление адреса в address-list, т.к. оно позволяет создать новый объект в операционной системе роутера, доступный из скриптов.
Добавим новое правило для цепочки input и расположим его среди других разрешающих правил этой цепочки. Укажем протокол tcp и dst-port — любой из верхних портов.
8c70cd042e8b4cb4978e05bd8818ccb2.PNG
Действие выберем add src (можно и dst) to address list, укажем имя листа.
16fe846e589e4648a2493626dd2125db.PNG

Для отслеживания появления записей используем планировщик. Заходим System → Sheduler, создаём задание планировщика, задаём имя. Указываем Start time: startup, и желаемый интервал, к примеру каждые 15 секунд.
В поле on event напишем простенький скрипт:
:local WAKEPC [/ip firewall address-list find where list="WAKEPC"]
:if ($WAKEPC!="") do={
/tool wol mac=00:11:22:33:44:55 interface=bridge_lan
/ip firewall address-list remove [find where list="WAKEPC"]
}

не забываем указать правильный mac, имя интерфейса и адрес-листа.

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

Для включения вашего компьютера достаточно открыть браузер и перейти на IP вашего микротика, указав порт, который мы задали в правиле фаервола: http://your.router.net: port, после чего фаервол создаёт запись в адрес-листе, задание планировщика обнаружит эту запись, выполнит запуск утилиты wol, и удалит запись из адрес-листа. Проще паренной репы, можем добавить адрес в избранное, чтобы каждый раз не вводить.

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

Комментарии (7)

  • 28 октября 2016 в 00:10

    +8

     — Дорогой, а что это у нас посреди ночи твой компьютер сам включается?
     — Наверное, это китайские хакеры порты сканируют…
     — Так это он просыпается бороться с хакерами?…
    • 28 октября 2016 в 07:25

      –1

      Хотите скажу вам свой ip? Ставлю сотку, что не разбудите.
  • 28 октября 2016 в 07:22

    +1

    стационарник подключен к сети через вай-фай свисток — как мне его удаленно разбудить?)))
    • 28 октября 2016 в 07:23

      0

      Оно?
  • 28 октября 2016 в 08:26

    0

    Включение компьютера или все же пробуждение из ждущего режима?
    • 28 октября 2016 в 08:57

      +2

      включение, полное, если есть питание на блоке, и блок в режиме ожидания, сам комп физически может быть выключен, главное на матери включить WOL и все запуститься
    • 28 октября 2016 в 08:59 (комментарий был изменён)

      0

      Del.

© Habrahabr.ru