Как удалённо включить компьютер через интернет, если у вас роутер от Ростелекома без поддержки ARP-binding? В этой статье разбираю все подводные камни и даю готовое решение с автоматизацией.
Что такое Wake-on-LAN и зачем это нужно
Wake-on-LAN (WoL) — технология, позволяющая включить компьютер удалённо, отправив на сетевую карту специальный «магический пакет» (Magic Packet). Это 102 байта: 6 байт 0xFF, затем MAC-адрес сетевой карты, повторённый 16 раз.
Зачем? Например, вы на работе и хотите подключиться к домашнему ПК по RDP, или вам нужно запустить какой-то процесс. Включить ПК можно с телефона, из любой точки мира — нужен только интернет.
В локальной сети WoL работает элементарно: отправляете пакет на broadcast-адрес (192.168.0.255), он доходит до всех устройств, сетевая карта выключенного ПК его распознаёт и включает компьютер. Но через интернет — совсем другая история.
Проблема: почему WoL не работает через интернет
Для WoL через интернет нужно два условия:
- Проброс порта — чтобы Magic Packet с внешнего IP попал внутрь локальной сети.
- ARP-запись — чтобы роутер знал, на какой MAC-адрес отправить пакет.
С первым пунктом всё просто: заходим в веб-интерфейс роутера, добавляем правило в Static NAT. А вот второй пункт — главная ловушка.
Когда компьютер выключен, он исчезает из ARP-таблицы роутера. Роутер получает Magic Packet, видит что нужно отправить его на внутренний IP, но не знает MAC-адрес этого IP (компьютер выключен и не отвечает на ARP-запросы). Итог — пакет просто отбрасывается.
На «взрослых» роутерах (MikroTik, Keenetic, OpenWrt) есть статические ARP-записи — проблема решается одной строчкой. Но на Ростелекомовском Sercomm RV6699 в веб-интерфейсе этой функции нет.
Шаг 1: Подготовка компьютера
Прежде чем настраивать роутер, убедитесь что WoL включён на самом ПК.
BIOS/UEFI
Зайдите в BIOS (обычно клавиша Del или F2 при включении) и найдите:
- Wake on LAN — Enabled
- Power On by PCI-E — Enabled
- Resume by PCI Device — Enabled
Названия отличаются у разных производителей, но суть одна.
Windows
Откройте Диспетчер устройств → Сетевые адаптеры → ваш Ethernet-адаптер → Свойства:
- Вкладка Дополнительно: Wake on Magic Packet = Enabled
- Вкладка Управление электропитанием: ☑ Разрешить этому устройству выводить компьютер из ждущего режима
Важно: WoL работает только через Ethernet (кабель). По Wi-Fi — практически никогда.
Проверка в локальной сети
Прежде чем настраивать интернет, проверьте что WoL работает локально. Выключите ПК и с другого устройства в той же сети отправьте Magic Packet (например через Python):
import socket
mac = bytes.fromhex('AABBCCDDEEFF') # замените на свой MAC
packet = b'\xff' * 6 + mac * 16
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
s.sendto(packet, ('192.168.0.255', 9))
Если ПК не проснулся — проблема в настройках BIOS или драйвера сетевой карты. Не переходите к следующему шагу, пока локальный WoL не заработает.
Шаг 2: Проброс порта на роутере
Заходим в веб-интерфейс роутера (http://192.168.0.1), раздел NAT → Static NAT.
Но есть нюанс: на какой внутренний IP пробрасывать? Если указать реальный IP компьютера (например 192.168.0.100), то мы упрёмся в проблему ARP — роутер не знает MAC выключенного ПК.
Решение: используем фиктивный IP + статический ARP.
Создаём правило:
- Протокол: UDP
- Внешний порт: 8081 (или любой свободный)
- Внутренний IP: 192.168.0.254 (фиктивный — его больше никто не использует)
- Внутренний порт: 9 (стандартный WoL)
Этот IP мы позже привяжем к MAC-адресу компьютера через статический ARP.
Шаг 3: Получаем доступ к telnet
RV6699 — роутер на базе Sercomm, с закрытой прошивкой. В веб-интерфейсе нет раздела «ARP Table» или «IP & MAC Binding». Directed broadcast тоже не поддерживается — роутер не позволяет указать broadcast-адрес в Virtual Server.
Единственный способ прописать статический ARP — через telnet. Но по умолчанию он отключён.
Запрашиваем полный доступ у оператора
Напишите в техподдержку Ростелекома и попросите предоставить полный доступ к роутеру (учётные данные superadmin). После получения учётки заходим в веб-интерфейс:
Home → Management → Access Control → User Management
Находим раздел Admin Connections и выставляем:
- TELNET Admin: Enable LAN
Подключаемся
С любого ПК в локальной сети (через PuTTY или командную строку):
telnet 192.168.0.1
Логин: superadmin, пароль — тот что предоставил оператор.
После авторизации набираем sh и попадаем в полноценный Linux shell (BusyBox):
view @ RV6699> sh
BusyBox v1.15.3 () built-in shell (ash)
Шаг 4: Прописываем статический ARP
В shell выполняем:
arp -i br0 -s 192.168.0.254 74:56:3C:97:9B:A6
Здесь:
br0— LAN-интерфейс роутера (bridge)192.168.0.254— фиктивный IP из проброса порта74:56:3C:97:9B:A6— MAC-адрес вашего компьютера (замените на свой)
Проверяем:
arp -a
В выводе должно быть:
(192.168.0.254) at 74:56:3c:97:9b:a6 [ether] PERM on br0
PERM — запись постоянная, не протухнет пока роутер работает. Теперь роутер знает: пакеты на 192.168.0.254 нужно отправлять на MAC 74:56:3C:97:9B:A6. Даже когда компьютер выключен.
Шаг 5: Проблема перезагрузки роутера
ARP-запись хранится в оперативной памяти. При перезагрузке роутера (например, обновление прошивки от Ростелекома) — она пропадает.
Файловая система /etc/ на RV6699 доступна только для чтения (read-only jffs2), записать rc.local нельзя. Есть persistent-раздел /tmp/config (jffs2 rw), который переживает перезагрузку — туда можно сохранить скрипт, но автозагрузки для него нет.
Решение: скрипт на ПК
Логика простая: при каждом включении ПК скрипт на Python заходит по telnet на роутер и прописывает ARP. Если роутер перезагрузился — при следующем включении ПК всё восстановится автоматически.
Шаг 6: Автоматизация — скрипт wol_setup.py
Я написал скрипт-визард, который:
- Проверяет систему (Python, сеть, доступность роутера, telnet)
- Запрашивает MAC-адрес, IP роутера, логин и пароль
- Подключается по telnet и прописывает статический ARP
- Устанавливает себя в автозагрузку Windows
Скрипт использует чистые сокеты вместо telnetlib (который удалён в Python 3.13+), поэтому работает на любой версии Python от 3.6 до 3.14.
Использование
python wol_setup.py # полная настройка с подсказками
python wol_setup.py --status # проверить текущее состояние
python wol_setup.py --remove # удалить из автозагрузки
При первом запуске скрипт попросит ввести данные. MAC-адрес Ethernet-адаптера определяется автоматически — можно просто нажать Enter. Все настройки сохраняются в .wol_config.json рядом со скриптом.
Что происходит при загрузке Windows
- Запускается
wol_setup.py --silent - Ждёт 30 секунд пока сеть поднимется
- Подключается по telnet к роутеру
- Выполняет
arp -i br0 -s 192.168.0.254 <MAC> - Завершается
Всё тихо, без окон, без интерфейса.
Отправка Magic Packet
Теперь, когда проброс порта и ARP настроены, будить ПК можно откуда угодно.
Python-скрипт
import socket, time
mac = "AA:BB:CC:DD:EE:FF" # MAC вашего компьютера
ip = "89.XX.XX.XX" # внешний IP (узнать: 2ip.ru)
port = 8081 # порт из проброса
mac_bytes = bytes.fromhex(mac.replace(":", ""))
packet = b'\xff' * 6 + mac_bytes * 16
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
for i in range(10):
s.sendto(packet, (ip, port))
time.sleep(0.3)
print("Magic Packet отправлен!")
Через сайт
На моём сайте есть инструмент Wake-on-LAN — вводите MAC, внешний IP и порт. Пакет отправляется с сервера напрямую на ваш роутер.
Итого: что нужно сделать
- Включить WoL в BIOS и Windows
- Проверить WoL в локальной сети
- Запросить у Ростелекома полный доступ к роутеру (superadmin)
- Включить Telnet: Management → Access Control → User Management
- Добавить проброс порта (UDP, 8081 → 192.168.0.254:9) в Static NAT
- Прописать ARP вручную или скачать скрипт
wol_setup.py - Выключить ПК, отправить Magic Packet с мобильного интернета.