… а также без проброса портов, 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, либо создаём отдельные задания для каждого — как хотите.
Поделиться с друзьями
-->

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


  1. SlavikF
    28.10.2016 00:10
    +19

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


    1. GeXoGeN
      28.10.2016 07:25
      -1

      Хотите скажу вам свой ip? Ставлю сотку, что не разбудите.


      1. chernilschik
        28.10.2016 09:43
        +2

        Сотки за пентест маловато, не находите?


        1. GeXoGeN
          28.10.2016 09:44
          -1

          тут же дело не в деньгах, а в принципе :)


          1. icoz
            28.10.2016 18:30

            Тогда из принципа хотя бы пива добавьте…


            1. GeXoGeN
              28.10.2016 18:34

              легко, но только в случае успеха.


    1. dtkbrbq
      28.10.2016 09:19
      +1

      Есть вариант как можно этого избежать, например ловить ICMP пакет определенного размера.


  1. bigbrotherwatchingyou
    28.10.2016 07:22
    +1

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


    1. GeXoGeN
      28.10.2016 07:23

      1. bigbrotherwatchingyou
        28.10.2016 10:11

        а без винды и ждущего режима?


        1. GeXoGeN
          28.10.2016 10:29

          без винды скорее всего да, а без ждущего режима — вряд ли.


    1. r0ck3r
      28.10.2016 11:28

      поставить точку доступа, перевести ее в режим Wi-Fi клиент и подключить стационарник проводом


      1. GeXoGeN
        28.10.2016 11:29

        ага… к новому макбуку, у которого нет ethernet разъёма )))


        1. r0ck3r
          28.10.2016 11:34

          ну тут товарищ про стационарник писал — у него должен быть) Ну а новый макбук, скорее всего, и Wake On Lan не поддерживает в таком случае)


          1. GeXoGeN
            28.10.2016 11:38
            -1

            не зашла шутонька…


      1. GeXoGeN
        28.10.2016 11:31

        но на самом деле, да. можно какой-нибудь mAP lite подключить. скорость поди побольше будет, чем у свистка.


  1. meft
    28.10.2016 08:26
    +1

    Включение компьютера или все же пробуждение из ждущего режима?


    1. hamnsk
      28.10.2016 08:57
      +3

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


      1. meft
        28.10.2016 09:42

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


        1. GeXoGeN
          28.10.2016 09:49
          -1

          я вот не уверен, есть ли хоть одна более-менее современная, которая не поддерживает?


    1. AcidVenom
      28.10.2016 08:59

      Del.


  1. AcidVenom
    28.10.2016 09:25
    +1

    Все бы ничего, но! Зачем вам включать комп извне? Чтобы подключиться к нему? То есть у вас проброшены порты до машины? Не очень-то безопасно.
    А вот, скажем, повесить скрипт на логон vpn-пользователя — это другое дело.


    1. GeXoGeN
      28.10.2016 09:46

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


    1. elve
      28.10.2016 10:23

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


      1. AcidVenom
        28.10.2016 10:25

        Но в такой ситуации пакеты снаружи не нужны вовсе, скрипта по расписанию достаточно.


      1. saege5b
        29.10.2016 09:37

        В биосе ставится расписание вкл-выкл если такое есть, или включение при появлениии напряжения на БП.
        Последний гасит электрику, первый её включает.


  1. dnb
    28.10.2016 09:46

    У меня так же реализовано, но доступ к роутеру только с рабочего IP. Либо подключение к роутеру по VPN. Но есть один момент — если был сбой питания, то сетевая не примет команду wol без соответствующих настроек в BIOS. Или бесперебойник.


    1. GeXoGeN
      28.10.2016 09:47

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


      1. GeXoGeN
        28.10.2016 09:54

        на определённые порты, конечно же. оговорочка вышла.


        1. Nordicx86
          28.10.2016 11:05

          почему нет? стучимся по сети на комп через микротик — он пишет в acces list, а там скрипт уже пингует и при отсутсвии ответа включает или пробуждает…


      1. AcidVenom
        28.10.2016 11:41

        Только вот скрипт нужно ставить в расписание. Без расписания не выйдет.
        Решением было бы добавить функционал запуска скрипта в action в Logging. Но увы.


        1. GeXoGeN
          28.10.2016 11:42

          а чем вам расписание то не угодило? кушать просит?


          1. AcidVenom
            28.10.2016 11:48

            Имхо, это костыль.


            1. GeXoGeN
              28.10.2016 11:54

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


    1. r0ck3r
      28.10.2016 11:46
      +1

      А у меня OpenVPN на роутере, который пробрасывает порт через SSH на VPS, так как дома нет выделенного IP. Подключиться к OpenVPN можно хоть с телефона, хоть с компьютера — а там уже свои приложения, пробуждающие компьютер

      если был сбой питания, то сетевая не примет команду wol без соответствующих настроек в BIOS.

      У меня похожая проблема, но только компьютеру достаточно включиться и выключиться, чтобы Wake On Lan вновь заработал. Поэтому, при дальних и длительных поездках выхожу из ситуации так: перевожу в BIOS режим на включение компьютера при возобновлении питания и ставлю в автозагрузку скрипт, который выключает компьютер через 15 минут. Если включил компьютер я и мне 15 минут мало — убиваю скрипт.

      И еще: NetworkManager начиная с какой-то версии вмешивается в работу Wake On Lan и отключает ее по умолчанию. Для исправления данной проблемы в скрипт, инициализирующий сетевой интерфейс, нужно добавить строку:
      ETHTOOL_OPTS=«wol g»


  1. drrd
    28.10.2016 10:07

    wol не работает на полном выключении компа начиная с win8.1/win10 емним.
    Только из спящего режима.
    Сам пытаюсь на dd-wrt сделать wol.
    В биосе включено, в настройках сетевки включено, порты проброшены, arp броадкаст сделан.
    Но wol работает только в течении 20мин после выключения. Дальше питание вырубается и бб.


    1. GeXoGeN
      28.10.2016 10:07

      если честно, не проверял. сам пользуюсь спящим режимом — мне хватает.


      1. GeXoGeN
        28.10.2016 10:12
        -1

        сейчас попробую провести эксперимент.


    1. AcidVenom
      28.10.2016 10:19
      +1

      Неправда ваша. Asus P8H77-I и W8.1, все хорошо работает.


      1. drrd
        28.10.2016 10:46

        Если не затруднит, можете описать все выставленные параметры для wol?
        Вот нашел КБшку по питанию WOL в windows
        https://support.microsoft.com/ru-ru/kb/2776718


        1. AcidVenom
          28.10.2016 10:55

          В драйвере выставлено:
          Пробуждение при соответствии шаблону — Вкл
          Пробуждение с помощью пакета Magic — Вкл
          Завершение работы функции WOL — Вкл
          Скорость WOL — Сначала 10Мбит.

          Настройки биоса не привожу, ничего интересного.
          Будится комп через /tool wol в бридж.

          P.S.: На платах Gigabyte есть функция уменьшения потребления энергии. Ее для WOL нужно отключить.


    1. crawlingroof
      28.10.2016 10:45

      Сам бился головой об стену в связи с этим, и грешил на последнее обновление bios, но оказалось что это microsoft все сломал начиная с 8ки (тынц) Теперь просыпается только из sleep и hibernation


    1. rogoz
      28.10.2016 10:56
      +1

      Попробуйте отключить быстрый запуск.
      http://remontka.pro/images/fast-start-windows-10-setting.png


    1. GeXoGeN
      28.10.2016 11:18

      ASUS H110I-PLUS — работает. Быстрый запуск не выключал. В BIOS ничего не менял.


    1. kolu4iy
      28.10.2016 14:19
      +1

      А зачем его вообще выключать?
      В биос power mode = last state (на случай внезапного отключения питания), а дальше пусть себе спит… Идея с усыплением через 15 минут скриптом — тоже вполне годная.


      1. GeXoGeN
        28.10.2016 14:21

        видел материнки, в которых нет возможности задать действие на восстановление подачи питания.


  1. rockin
    28.10.2016 10:46

    Похоже на забивание гвоздей микроскопом

    Т.к. вот
    https://www.asus.com/ru/support/faq/1009775
    https://zyxel.ru/kb/3517/
    и во многих современных дешевых роутерах этих двух производителей, wol от роутера — стандартная фича

    И кейс мне лично не совсем понятен — как это дома микротик и один десктоп. Обычно те, у кого дома микротики, некий миникомп, а-ля малинка, держат в режиме 24/7, электричества это ест совсем немного.

    ***
    и что там про вин8-10 и вол, мне интересно поподробнее. т.к. на работах своих я обновления ставлю на инвду и каспера — ночами. включает сервис все компы, ставит обновления, выключает компы. а там и 8, и 10 навалом просто.


    1. GeXoGeN
      28.10.2016 10:52

      десктопов у некоторых вообще нету, одни лэптопы. малинка у меня была, но я её продал, т.к. не был удовлетворён производительностью, собрал вместо неё miniITX комп для мультимедийных задач.
      у дешёвых роутеров это всё работает несколько иначе — нужно заходить на веб интерфейс роутера, вбивать мак и т.д. В моём случае — просто получения одного пакета на определённый порт достаточно.


    1. TimsTims
      28.10.2016 10:58
      +1

      > Обычно те, у кого дома микротики, некий миникомп, а-ля малинка, держат в режиме 24/7
      В микротиках есть функция MetaRouter, которая позволяет запускать простенькие образы виртуалок. Вполне себе можно запустить простенький web-сервер


    1. alexrus
      28.10.2016 18:04

      И кейс мне лично не совсем понятен — как это дома микротик и один десктоп.

      Да обычный кейс, у меня десктоп и микротик (планшет и телефон не считается) — просто нужен стабильный инет, не покупать же дэлинк из-за малого количества оборудования дома?


  1. Konstantin63
    28.10.2016 10:58

    Подскажите пожалуйста а на cisco 3825 так можно?


  1. ice938
    28.10.2016 11:39

    Я делал не так:
    Для UDP c 9 порта WAN dstNAT на какой-нибудь свободный IP локалки (обычно последний) и static ARP для него FF:FF:FF:FF:FF:FF Получается, что WOL, прилетевший на WAN интерфейс, транслируется в локалку. Меняя MAC в пакете WOL, будим только нужный комп. На телефоне стоит прога, позволяющая отправлять правильный пакет с любой точки мира (ищите в маркете/Appstore WOL или wake on lan), если не с телефона, то такую утилиту ставим на свой ноут/комп (гуглим wol utility download <your_OS>), ну или из любого браузера с любого компа, через специальные сервисы (гуглить wake on lan online)


    1. GeXoGeN
      28.10.2016 11:40
      -1

      Вы пост читали вообще? Без пробросов, без установки софта, без облаков.


      1. ice938
        28.10.2016 12:09

        без установки софта, без облаков

        Пожалуйста- сохраняем в закладки хттпс:/_/www.depicus.com/wake-on-lan/woli?m=001122334455&i=191.239.213.197&s=255.255.255.255&p=9 открываем в браузере и все.

        Без пробросов

        А вот это уже на вкус и цвет… Проброс одного порта на несуществующий IP, или выполнение скрипта по какому-то событию- это пусть каждый решает для себя, что ему больше нравится. К тому же, внешний порт можно выбрать любым, чтобы враг не догадался =), можно только static ARP запись сделать, а пакет засылать через VPN туннель. Можно сделать белый список адресов, с которых можно получать такие пакеты и т.д.

        Я просто озвучил еще один вариант сделать то же, что и вы, с теми же затратами. А кто и что воплотит в жизнь, зависит только от его фантазии и возможностей


        1. GeXoGeN
          28.10.2016 12:19

          Ну это же и есть облако. То бишь, сервис, который предоставляет Вам веб доступ к приложению.
          С какого IP придёт пакет? С IP сервиса наверное? У них там, скорее всего не один IP. Мне всю их сеть в белый список добавлять?


  1. mihmig
    28.10.2016 12:11

    Хех, а вот у меня материнка Asus F2A55M-LE
    Ну нет в ней WOL(даже в BOIS настроек нет)

    Было бы круто, если б кто нашёл модуль к микротику для управления USB->реле. Тогда можно было бы включать любую нагрузку… Может микротик поддерживает переходники USB-serial?


    1. GeXoGeN
      28.10.2016 12:13

      У меня в BIOS тоже настроек нет, но всё включено по-умолчанию. Может и у Вас так же?


    1. GeXoGeN
      28.10.2016 12:23

      Когда компьютер выключен, линк горит?


    1. rsa-md5
      28.10.2016 13:44
      +1

      Может микротик поддерживает переходники USB-serial?

      http://wiki.mikrotik.com/wiki/Supported_Hardware#USB_serial_adapters


  1. BigD
    28.10.2016 14:18

    Оффтоп: удобнее, когда дома есть работающий 24x7 сервер со всеми файлами. Доступен постоянно.


    1. Nordicx86
      01.11.2016 15:17

      удобнее особенно милым хвостатым пушистиками они у него греются…


  1. vladgorodetsky9
    28.10.2016 15:04

    Я делал через проброс порта. Все-таки две команды в терминале и потом прогу на телефон типа WakeOnLan на Android. Под iOS тоже наверняка вагон и тележка аналогов. Но опять же, я делал не под один комп а под все, которые у меня в сети.
    Да, Tik-App от Mikrotik в стадии тестирования, не все, но много уже можно делать…


    1. GeXoGeN
      28.10.2016 16:43

      На счёт проги на телефон — тут каждому своё. Согласитесь, это дело вкуса, да и к тому же приведённым методом можно не только WoL-пакеты отсылать, а произвольный скрипт по внешнему событию выполнять.
      Спасибо за Tik-App, не знал.


  1. safari2012
    28.10.2016 17:18

    Насчет «бесплатного» — небольшое лукавство, или у вас внешний адрес провайдер совершенно бесплатно дает?


    1. GeXoGeN
      28.10.2016 18:33

      ага… ADSL от Ростелекома. Бесплатный внешний IP.


  1. OstJoker
    29.10.2016 16:33

    Самая большая проблема, это то что WOL работает только если ПК физически не вынимали с розетки и не пропадало питание в сети. Только не пишите про last state и ИБП. У меня был ПК на работе, который штатно выключен, но иногда нужно удаленно включить. Электрики часто любили обесточить весь этаж в нерабочее время и делать свою работу. На следующий день ты такой пускаешь магический пакет, а ПК все равно оффлайн еще 10 минут пытаешься выяснить в чем там трабл, а потом ноги в руки и на работу, что бы клацнуть кнопку и включить ручками. Зачем нужна такая фича, которая работает не всегда, мне не понятно.
    Может многим известно, но я долго работал в ИТ и не знал что такое есть… При следующем апгрейде купил материнку на чипе из «Q» серии (Intel Q87). С поддержкой технологии vPro, сразу убил несколько зайцев: полный доступ до ПК в любой ситуации когда есть напряжение в сети и Интернет.
    Включение, выключение, ресет, удаленный биос, я даже ОС ставил по Интернету, монтируя образ установочного диска. Управление через утилиты и веб интерфейс и никаких заморочек с WOL. Из минусов: материнка немного дороже аналогов на чипах серий B и H, для работы vPro нужен ЦП начиная от Core i5.


  1. HexMaster
    31.10.2016 08:26

    Динамический IP. На роутере настроен DDNS, порт проброшен. Для RDP тоже порт проброшен.
    В избранном браузера ссылка для включения с забитым туда MAC-адресом.
    Зачем колхозить огород для избавления от одного проброса порта, если всё равно для RDP нужно порт пробрасывать? Или это для новой статьи?..


    1. GeXoGeN
      31.10.2016 08:33

      Не все пробрасывают порты и используют RDP для удалённого доступа. Teamviewer, например не требует проброса портов или можно подключаться по VPN к микротику и работать по RDP без пробросов. Этим способом можно включить сразу все компы — переходом по одной ссылке, а можно вообще любой скрипт на выполнение запустить. И самое главное, RouterOS — достаточно гибкое решение, это позволяет нам решать одну и ту же проблему разными способами.

      ссылка для включения с забитым туда MAC-адресом

      которая будет отправлять волшебный пакет с айпишника сервиса Wake on lan через интернет, которого нет в белом списке, потом вы его добавите, но через неделю он опять изменится, а может не через неделю, не известно когда ждать подвоха.