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

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

Комментарии 69

    +19
    — Дорогой, а что это у нас посреди ночи твой компьютер сам включается?
    — Наверное, это китайские хакеры порты сканируют…
    — Так это он просыпается бороться с хакерами?..
      –1
      Хотите скажу вам свой ip? Ставлю сотку, что не разбудите.
        +2
        Сотки за пентест маловато, не находите?
          –1
          тут же дело не в деньгах, а в принципе :)
            0
            Тогда из принципа хотя бы пива добавьте…
              0
              легко, но только в случае успеха.
        +1
        Есть вариант как можно этого избежать, например ловить ICMP пакет определенного размера.
        +1
        стационарник подключен к сети через вай-фай свисток — как мне его удаленно разбудить? )))
          0
            0
            а без винды и ждущего режима?
              0
              без винды скорее всего да, а без ждущего режима — вряд ли.
            0
            поставить точку доступа, перевести ее в режим Wi-Fi клиент и подключить стационарник проводом
              0
              ага… к новому макбуку, у которого нет ethernet разъёма )))
                0
                ну тут товарищ про стационарник писал — у него должен быть) Ну а новый макбук, скорее всего, и Wake On Lan не поддерживает в таком случае)
                  –1
                  не зашла шутонька…
                0
                но на самом деле, да. можно какой-нибудь mAP lite подключить. скорость поди побольше будет, чем у свистка.
              +1
              Включение компьютера или все же пробуждение из ждущего режима?
                +3
                включение, полное, если есть питание на блоке, и блок в режиме ожидания, сам комп физически может быть выключен, главное на матери включить WOL и все запуститься
                  0
                  В таком случае мать должна поддерживать включения из выключенного режима, а не из режима сна.
                    –1
                    я вот не уверен, есть ли хоть одна более-менее современная, которая не поддерживает?
                  0
                  Del.
                  +1
                  Все бы ничего, но! Зачем вам включать комп извне? Чтобы подключиться к нему? То есть у вас проброшены порты до машины? Не очень-то безопасно.
                  А вот, скажем, повесить скрипт на логон vpn-пользователя — это другое дело.
                    0
                    можно и на логон, как Вам угодно будет, у меня используется динамический белый список, так что думаю, достаточно безопасно, для дома даже более, чем.
                      0
                      Простой пример (не совсем в тему, но все же) — по расписанию вечером все компьютеры тушатся и утром включаются, чтобы когда сотрудники придут на работу им осталось только залогиниться.
                        0
                        Но в такой ситуации пакеты снаружи не нужны вовсе, скрипта по расписанию достаточно.
                          0
                          В биосе ставится расписание вкл-выкл если такое есть, или включение при появлениии напряжения на БП.
                          Последний гасит электрику, первый её включает.
                            0
                            Реле времени на DIN-рейку и опция в биосе Always On, кто не спрятался — я не виноват )))
                          0
                          У меня так же реализовано, но доступ к роутеру только с рабочего IP. Либо подключение к роутеру по VPN. Но есть один момент — если был сбой питания, то сетевая не примет команду wol без соответствующих настроек в BIOS. Или бесперебойник.
                            0
                            ну это уже детали конкретного компьютера, можно смотреть на статью шире и запускать любые скрипты на микротике при получении пакетов на определённые компы.
                              0
                              на определённые порты, конечно же. оговорочка вышла.
                                0
                                почему нет? стучимся по сети на комп через микротик — он пишет в acces list, а там скрипт уже пингует и при отсутсвии ответа включает или пробуждает…
                                0
                                Только вот скрипт нужно ставить в расписание. Без расписания не выйдет.
                                Решением было бы добавить функционал запуска скрипта в action в Logging. Но увы.
                                  0
                                  а чем вам расписание то не угодило? кушать просит?
                                    0
                                    Имхо, это костыль.
                                      0
                                      нет. это штатный функционал, даже не хак никакой. вот когда сделают обработку событий или запуск скриптов из фаервола, тогда это будет костыль. если система достаточно гибкая и предоставляет универсальные инструменты, то грех ими не пользоваться.
                                +1
                                А у меня OpenVPN на роутере, который пробрасывает порт через SSH на VPS, так как дома нет выделенного IP. Подключиться к OpenVPN можно хоть с телефона, хоть с компьютера — а там уже свои приложения, пробуждающие компьютер
                                если был сбой питания, то сетевая не примет команду wol без соответствующих настроек в BIOS.

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

                                И еще: NetworkManager начиная с какой-то версии вмешивается в работу Wake On Lan и отключает ее по умолчанию. Для исправления данной проблемы в скрипт, инициализирующий сетевой интерфейс, нужно добавить строку:
                                ETHTOOL_OPTS=«wol g»
                                0
                                wol не работает на полном выключении компа начиная с win8.1/win10 емним.
                                Только из спящего режима.
                                Сам пытаюсь на dd-wrt сделать wol.
                                В биосе включено, в настройках сетевки включено, порты проброшены, arp броадкаст сделан.
                                Но wol работает только в течении 20мин после выключения. Дальше питание вырубается и бб.
                                  0
                                  если честно, не проверял. сам пользуюсь спящим режимом — мне хватает.
                                    –1
                                    сейчас попробую провести эксперимент.
                                    +1
                                    Неправда ваша. Asus P8H77-I и W8.1, все хорошо работает.
                                      0
                                      Если не затруднит, можете описать все выставленные параметры для wol?
                                      Вот нашел КБшку по питанию WOL в windows
                                      https://support.microsoft.com/ru-ru/kb/2776718
                                        0
                                        В драйвере выставлено:
                                        Пробуждение при соответствии шаблону — Вкл
                                        Пробуждение с помощью пакета Magic — Вкл
                                        Завершение работы функции WOL — Вкл
                                        Скорость WOL — Сначала 10Мбит.

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

                                        P.S.: На платах Gigabyte есть функция уменьшения потребления энергии. Ее для WOL нужно отключить.
                                      0
                                      Сам бился головой об стену в связи с этим, и грешил на последнее обновление bios, но оказалось что это microsoft все сломал начиная с 8ки (тынц) Теперь просыпается только из sleep и hibernation
                                        +1
                                        Попробуйте отключить быстрый запуск.
                                        http://remontka.pro/images/fast-start-windows-10-setting.png
                                          0
                                          ASUS H110I-PLUS — работает. Быстрый запуск не выключал. В BIOS ничего не менял.
                                            +1
                                            А зачем его вообще выключать?
                                            В биос power mode = last state (на случай внезапного отключения питания), а дальше пусть себе спит… Идея с усыплением через 15 минут скриптом — тоже вполне годная.
                                              0
                                              видел материнки, в которых нет возможности задать действие на восстановление подачи питания.
                                          • НЛО прилетело и опубликовало эту надпись здесь
                                              0
                                              десктопов у некоторых вообще нету, одни лэптопы. малинка у меня была, но я её продал, т.к. не был удовлетворён производительностью, собрал вместо неё miniITX комп для мультимедийных задач.
                                              у дешёвых роутеров это всё работает несколько иначе — нужно заходить на веб интерфейс роутера, вбивать мак и т.д. В моём случае — просто получения одного пакета на определённый порт достаточно.
                                                +1
                                                > Обычно те, у кого дома микротики, некий миникомп, а-ля малинка, держат в режиме 24/7
                                                В микротиках есть функция MetaRouter, которая позволяет запускать простенькие образы виртуалок. Вполне себе можно запустить простенький web-сервер
                                                  0
                                                  И кейс мне лично не совсем понятен — как это дома микротик и один десктоп.

                                                  Да обычный кейс, у меня десктоп и микротик (планшет и телефон не считается) — просто нужен стабильный инет, не покупать же дэлинк из-за малого количества оборудования дома?
                                                  0
                                                  Подскажите пожалуйста а на cisco 3825 так можно?
                                                    0
                                                    Я делал не так:
                                                    Для 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
                                                      Вы пост читали вообще? Без пробросов, без установки софта, без облаков.
                                                        0
                                                        без установки софта, без облаков

                                                        Пожалуйста- сохраняем в закладки хттпс:/_/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 туннель. Можно сделать белый список адресов, с которых можно получать такие пакеты и т.д.

                                                        Я просто озвучил еще один вариант сделать то же, что и вы, с теми же затратами. А кто и что воплотит в жизнь, зависит только от его фантазии и возможностей
                                                          0
                                                          Ну это же и есть облако. То бишь, сервис, который предоставляет Вам веб доступ к приложению.
                                                          С какого IP придёт пакет? С IP сервиса наверное? У них там, скорее всего не один IP. Мне всю их сеть в белый список добавлять?
                                                      0
                                                      Хех, а вот у меня материнка Asus F2A55M-LE
                                                      Ну нет в ней WOL(даже в BOIS настроек нет)

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

                                                            http://wiki.mikrotik.com/wiki/Supported_Hardware#USB_serial_adapters
                                                            0
                                                            Оффтоп: удобнее, когда дома есть работающий 24x7 сервер со всеми файлами. Доступен постоянно.
                                                              0
                                                              удобнее особенно милым хвостатым пушистиками они у него греются…
                                                              0
                                                              Я делал через проброс порта. Все-таки две команды в терминале и потом прогу на телефон типа WakeOnLan на Android. Под iOS тоже наверняка вагон и тележка аналогов. Но опять же, я делал не под один комп а под все, которые у меня в сети.
                                                              Да, Tik-App от Mikrotik в стадии тестирования, не все, но много уже можно делать…
                                                                0
                                                                На счёт проги на телефон — тут каждому своё. Согласитесь, это дело вкуса, да и к тому же приведённым методом можно не только WoL-пакеты отсылать, а произвольный скрипт по внешнему событию выполнять.
                                                                Спасибо за Tik-App, не знал.
                                                                0
                                                                Насчет «бесплатного» — небольшое лукавство, или у вас внешний адрес провайдер совершенно бесплатно дает?
                                                                  0
                                                                  ага… ADSL от Ростелекома. Бесплатный внешний IP.
                                                                  0
                                                                  Самая большая проблема, это то что WOL работает только если ПК физически не вынимали с розетки и не пропадало питание в сети. Только не пишите про last state и ИБП. У меня был ПК на работе, который штатно выключен, но иногда нужно удаленно включить. Электрики часто любили обесточить весь этаж в нерабочее время и делать свою работу. На следующий день ты такой пускаешь магический пакет, а ПК все равно оффлайн еще 10 минут пытаешься выяснить в чем там трабл, а потом ноги в руки и на работу, что бы клацнуть кнопку и включить ручками. Зачем нужна такая фича, которая работает не всегда, мне не понятно.
                                                                  Может многим известно, но я долго работал в ИТ и не знал что такое есть… При следующем апгрейде купил материнку на чипе из «Q» серии (Intel Q87). С поддержкой технологии vPro, сразу убил несколько зайцев: полный доступ до ПК в любой ситуации когда есть напряжение в сети и Интернет.
                                                                  Включение, выключение, ресет, удаленный биос, я даже ОС ставил по Интернету, монтируя образ установочного диска. Управление через утилиты и веб интерфейс и никаких заморочек с WOL. Из минусов: материнка немного дороже аналогов на чипах серий B и H, для работы vPro нужен ЦП начиная от Core i5.
                                                                    0
                                                                    Динамический IP. На роутере настроен DDNS, порт проброшен. Для RDP тоже порт проброшен.
                                                                    В избранном браузера ссылка для включения с забитым туда MAC-адресом.
                                                                    Зачем колхозить огород для избавления от одного проброса порта, если всё равно для RDP нужно порт пробрасывать? Или это для новой статьи?..
                                                                      0
                                                                      Не все пробрасывают порты и используют RDP для удалённого доступа. Teamviewer, например не требует проброса портов или можно подключаться по VPN к микротику и работать по RDP без пробросов. Этим способом можно включить сразу все компы — переходом по одной ссылке, а можно вообще любой скрипт на выполнение запустить. И самое главное, RouterOS — достаточно гибкое решение, это позволяет нам решать одну и ту же проблему разными способами.
                                                                      ссылка для включения с забитым туда MAC-адресом

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

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

                                                                    Самое читаемое