Автоматическая перезагрузка роутера через Telnet
Быстрые ссылки
- Подключение к роутеру через Telnet
- Скриптинг Telnet из терминала (OS X / Linux / Cygwin)
- Перезагрузка роутера в Windows
- Планирование в Windows с помощью Планировщика задач
Verizon FIOS часто раздают роутеры, которые нуждаются в частых перезагрузках. Подниматься в подвал каждый раз неудобно. Решение — автоматизировать перезагрузку: включить Telnet, написать небольшой скрипт, и запланировать его выполнение (cron или Планировщик задач). Ниже — пошагово для нескольких ОС и с практическими советами.
Важное: Telnet передаёт логин и пароль в открытом виде по сети. Если есть возможность — используйте SSH или аппаратный метод (умная розетка). Если вам всё же нужен Telnet, ограничьте доступ по IP и меняйте пароли.
Подключение к роутеру через Telnet
Сначала нужно включить Telnet в панели администрирования роутера. На примере Verizon FIOS: зайдите в Advanced → Local Administration и включите “Using Primary Telnet Port”, после чего нажмите Apply.

После этого можно подключиться из терминала или командной строки. На большинстве домашних роутеров IP по умолчанию находится в диапазоне 192.168.x.x; часто это 192.168.1.1.
Пример подключения из терминала:
telnet 192.168.1.1После подключения обычно требуется логин. Введите help или ? чтобы увидеть доступные команды. На некоторых прошивках команда перезагрузки находится в секции system и называется system reboot — не просто reboot.

Если набрать system reboot и подтвердить, роутер разорвёт текущую сессию и начнёт перезагрузку. Это работает вручную, но многократно вводить команды неудобно — автоматизируем.
Скриптинг Telnet из терминала (OS X / Linux / Cygwin)
Мы предполагаем доступ к bash. Идея простая: сформировать последовательность вводимых строк и передать их в telnet через pipe. Проблема — промпт логина/пароля может появляться не сразу, поэтому простое echo может быть прочитано слишком рано. Решение — ставить паузы (sleep) между отправками.
Пример «однострочного» подхода в bash:
(echo commandname;echo anothercommand) | telnet 192.168.1.1Для авторизации и перезагрузки с паузами:
(sleep 3;echo admin;sleep 3;echo mypassword;sleep 3;echo system reboot;sleep 3;) | telnet 192.168.1.1Этот пример повторяет то, что показано выше: ждём 3 секунды, отправляем логин, ждём, отправляем пароль, ждём, отправляем команду перезагрузки.
Сохраните строку в файл, например reboot-router.sh, сделайте его исполняемым (chmod +x reboot-router.sh) и запускайте вручную или по расписанию.
Надёжный вариант: expect
sleep+echo работает, но ненадёжно при разной задержке ответа роутера. Для более устойчивого и читабельного решения используйте expect — утилиту для автоматизации интерактивных сеансов.
Пример expect-скрипта (файл reboot.expect):
#!/usr/bin/expect -f
set timeout 10
set router_ip "192.168.1.1"
set username "admin"
set password "mypassword"
spawn telnet $router_ip
expect {
-re "[Ll]ogin.*:" { send "$username\r"; exp_continue }
-re "[Pp]assword.*:" { send "$password\r"; exp_continue }
-re "#|>" { send "system reboot\r" }
}
expect eofСделайте скрипт исполняемым и запускайте: ./reboot.expect. Expect ждёт конкретных подсказок и реагирует корректнее при варьирующем времени отклика.
Планирование в cron (OS X / Linux)
Откройте crontab:
crontab -eДобавьте строку, чтобы перезагружать роутер ежедневно в 07:01 и 17:30 (пример):
1 7 * * * /path/to/reboot-router.sh
30 17 * * * /path/to/reboot-router.shЕсли вы используете однострочный подход с pipes, можно вставить команду прямо в crontab, но это менее удобно для отладки:
1 7 * * * (sleep 3;echo admin;sleep 3;echo mypassword;sleep 3;echo system reboot;sleep 3;) | telnet 192.168.1.1Совет: лучше использовать отдельный исполняемый скрипт с логированием — так вы сможете проверить улики в случае неудачи.
Перезагрузка роутера в Windows
На Windows сначала включите компонент Telnet Client:
- Откройте Панель управления → Программы → Включение или отключение компонентов Windows → отметьте Telnet Client.

Далее можно использовать VBScript для имитации клавиатурного ввода в окно telnet и отправки команд. Пример VBS‑скрипта (сохраните как reboot-router.vbs):
Option explicit
Dim oShell
set oShell= Wscript.CreateObject("WScript.Shell")
oShell.Run "telnet"
WScript.Sleep 3000
oShell.Sendkeys "open 192.168.1.1~"
WScript.Sleep 3000
oShell.Sendkeys "admin~"
WScript.Sleep 3000
oShell.Sendkeys "mypassword~"
WScript.Sleep 3000
oShell.Sendkeys "system reboot~"
WScript.Sleep 3000
oShell.Sendkeys "~"
Wscript.QuitДвойная тильда (~) в SendKeys в скрипте имитирует клавишу Enter. Время ожидания (WScript.Sleep) в миллисекундах — 3000 = 3 секунды.
Планирование через Планировщик задач
- Откройте Планировщик заданий (Task Scheduler).
- Создайте простую задачу (Create Basic Task), задайте имя и расписание.
- Выберите действие “Запустить программу” и укажите путь к reboot-router.vbs.
- Включите опцию “Выполнять независимо от входа пользователя”, если нужно.

Теперь скрипт будет запускаться по расписанию.
Когда этот метод НЕ сработает
- Роутер не поддерживает Telnet или опция скрыта/заблокирована провайдером.
- Провайдер блокирует локальный Telnet доступ (например, интерфейс управления не позволяет).
- Пароль/логин нестандартные или используются дополнительные подсказки (MFA, Captive portal).
- Нестабильное сетевое соединение делает автоматизацию ненадёжной.
В таких случаях рассмотрите альтернативы ниже.
Альтернативные подходы
- Умная розетка (Wi‑Fi или Zigbee) с API или интеграцией в Home Assistant — жёсткое и надёжное аппаратное отключение питания и включение питания роутера.
- SSH (лучше безопасно) — если роутер поддерживает SSH, используйте ключи и скрипты shell без необходимости открытого пароля.
- SNMP — если роутер поддерживает управление перезагрузкой через SNMP OID, можно отправлять SNMP‑команды.
- UPnP (иногда предоставляет возможности управления) — чаще ненадёжно и небезопасно.
- Меню провайдера/веб‑интерфейс — автоматизация через механизмы веб‑авторизации (curl + cookie) — хрупкая, но возможна.
Безопасность и конфиденциальность
- Telnet несекурен: логин и пароль идут в открытом виде. Отключайте Telnet после настройки, если возможно.
- По возможности используйте SSH и ключи.
- Установите надёжный пароль и ограничьте доступ по IP‑фильтру в настройках роутера.
- Убедитесь, что скрипты с паролями хранятся с ограничениями прав доступа (chmod 700, права файла для Windows).
- Если в скрипте хранится пароль, рассмотрите использование локального защищённого хранилища (ключевая цепочка macOS, credential store на Windows) и механизмов, которые позволяют извлекать секреты безопасно.
Готовый чек‑лист: настройка и тестирование
- Проверить IP роутера (обычно 192.168.1.1 или 192.168.0.1).
- Включить Telnet в панели администратора роутера.
- Подключиться вручную через telnet и проверить команду перезагрузки (system reboot).
- Подготовить скрипт (bash/expect или VBS) и протестировать запуск вручную.
- Настроить логирование (файлы /var/log или простой append в текстовый файл).
- Запланировать выполнение (cron или Планировщик задач).
- Мониторить первые 7 дней и проверять, что роутер перезагружается вовремя и возвращает сеть.
- При проблемах — откатить планирование и отладить вручную.
Роли и ответственность
- Домашний пользователь: выбирает умную розетку или простой VBS, минимальная настройка.
- Продвинутый пользователь/администратор: использует expect/SSH, логирование и оповещения о неудачных попытках.
- Системный администратор: интегрирует перезагрузку в систему мониторинга и управления конфигурацией.
Примеры шаблонов и тестов
Шаблон cron для процесса с логированием:
1 7 * * * /usr/local/bin/reboot-router.sh >> /var/log/router-reboot.log 2>&1Критерии приёмки:
- Скрипт корректно подключается и отправляет команду перезагрузки без вмешательства человека.
- Роутер перезагружается и восстанавливает доступ в течение ожидаемого времени.
- Логи показывают успешные попытки и ошибки при неудаче.
Тесты приёмки:
- Запустить скрипт вручную и убедиться, что сетевое соединение прерывается и восстанавливается.
- Проверить логи на наличие строки «system reboot» и временных меток.
Когда лучше выбрать аппаратный метод
Используйте умную розетку, если:
- Роутер не поддерживает Telnet/SSH.
- Безопасность критична и вы не хотите включать Telnet.
- Нужна надёжность: аппаратное отключение питания решает проблемы зависшего оборудования.
Плюсы умной розетки: простота, безопасность (нет открытых паролей), совместимость с любым устройством. Минусы: перезагрузка «жёсткая», может повредить некоторые устройства при частом цикле питания.
Чек‑листы по безопасности
- Не храните пароли в открытом виде в общедоступных папках.
- Установите права доступа 600 на скрипты с паролями (Linux).
- Ограничьте доступ к веб‑панели роутера по IP, если есть такая опция.
- По возможности используйте SSH вместо Telnet.
Короткое резюме
Автоматизация перезагрузки роутера через Telnet даёт быстрое и дешёвое решение для дома: включите Telnet, напишите скрипт (bash+expect или VBS) и запланируйте его (cron или Планировщик задач). Обязательно подумайте о безопасности: Telnet несекурен — лучше SSH или аппаратный метод, если это возможно.
Важно: перед автоматизацией протестируйте все команды вручную и сделайте резервные настройки роутера.
Ключевые ссылки и образцы кода вы найдёте в теле статьи. Если у вас другой роутер (не Verizon), проверьте админ‑панель на похожие опции и команды. Пишите в комментариях, если у вас получилось адаптировать метод под другой бренд — это полезно для других читателей.
Похожие материалы
Как создать обложки для LaunchBox
Закрытые субтитры на Xbox Series X — как включить
Клавиатуры для Steam Deck: выбор и рекомендации
Как записывать видеозвонки в Skype — руководство
Сделай сам: LED кольцевой свет для видео