← Все статьи

Wake-on-LAN через интернет на роутере Ростелеком RV6699: полное руководство

Как удалённо включить компьютер через интернет, если у Вас роутер Ростелеком RV6699 без поддержки ARP. Настройка telnet, статический ARP, проброс порта, автоматизация на Python.

Wake-on-LAN через интернет на роутере Ростелеком RV6699: полное руководство

Как удалённо включить компьютер через интернет, если у вас роутер от Ростелекома без поддержки 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 через интернет нужно два условия:

  1. Проброс порта — чтобы Magic Packet с внешнего IP попал внутрь локальной сети.
  2. 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

Я написал скрипт-визард, который:

  1. Проверяет систему (Python, сеть, доступность роутера, telnet)
  2. Запрашивает MAC-адрес, IP роутера, логин и пароль
  3. Подключается по telnet и прописывает статический ARP
  4. Устанавливает себя в автозагрузку 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

  1. Запускается wol_setup.py --silent
  2. Ждёт 30 секунд пока сеть поднимется
  3. Подключается по telnet к роутеру
  4. Выполняет arp -i br0 -s 192.168.0.254 <MAC>
  5. Завершается

Всё тихо, без окон, без интерфейса.

Отправка 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 и порт. Пакет отправляется с сервера напрямую на ваш роутер.

Итого: что нужно сделать

  1. Включить WoL в BIOS и Windows
  2. Проверить WoL в локальной сети
  3. Запросить у Ростелекома полный доступ к роутеру (superadmin)
  4. Включить Telnet: Management → Access Control → User Management
  5. Добавить проброс порта (UDP, 8081 → 192.168.0.254:9) в Static NAT
  6. Прописать ARP вручную или скачать скрипт wol_setup.py
  7. Выключить ПК, отправить Magic Packet с мобильного интернета.

📎 Прикреплённые файлы

← Все статьи