Удалённое включение компьютера бесплатно, без 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 — любой из верхних портов.
Действие выберем add src (можно и dst) to address list, укажем имя листа.
Для отслеживания появления записей используем планировщик. Заходим 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, либо создаём отдельные задания для каждого — как хотите.
Настройка Wake-On-LAN в роутере
Для того, чтобы иметь возможность включить ваш компьютер с помощью функции Wake-on-LAN из-за пределов локальной сети, например, через интернет или из другого сегмента сети, в большинстве случаев необходимо настроить роутер/маршрутизатор, чтобы он переадресовывал необходимые пакеты во внутреннюю локальную сеть на нужный IP адрес компьютера, который нужно удаленно включить. В данной статье мы рассмотрим, как это можно сделать.
Настраиваем роутер для Wake-On-LAN
Настройку будем осуществлять на примере роутера TP-Link. Первым делом необходимо зайти на страницу администрирования роутера, обычно это 192.168.0.1 или 192.168.1.1 Сперва зайдите в раздел Forwarding->Virtual Servers и добавьте новую запись для компьютера который вы планируете удаленно включать через интернет. В ней нужно указать его IP адрес и порт, который будет использоваться для включения. Обычно для Wake-On-LAN используется порты 7 и 9, но можно также указать любой другой порт (от 1 до 65535). Для типа протокола задайте значение UDP или ALL. Далее нужно перейти в раздел IP & MAC Binding->Binding Settings и произвести следующие настройки:
- Включить опцию Arp Binding;
- Добавить новую запись для компьютера который вы будете удаленно включать указав его IP и MAC адреса. Не забудьте также для него включить опцию Bind;
После этого для включения настроенного выше компьютера необходимо будет указать внешний IP адрес, который провайдер выдает вашему роутеру и он автоматически перешлет запрос на включение на компьютер, который мы указали.