Гид по технологиям

Автоматическая перезагрузка роутера через Telnet

6 min read Сеть Обновлено 19 Dec 2025
Автоматическая перезагрузка роутера через Telnet
Автоматическая перезагрузка роутера через 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.

Интерфейс панели Verizon: включение Telnet

После этого можно подключиться из терминала или командной строки. На большинстве домашних роутеров IP по умолчанию находится в диапазоне 192.168.x.x; часто это 192.168.1.1.

Пример подключения из терминала:

telnet 192.168.1.1

После подключения обычно требуется логин. Введите help или ? чтобы увидеть доступные команды. На некоторых прошивках команда перезагрузки находится в секции system и называется system reboot — не просто reboot.

Список команд и system 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.

Окно включения компонентов 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 секунды.

Планирование через Планировщик задач

  1. Откройте Планировщик заданий (Task Scheduler).
  2. Создайте простую задачу (Create Basic Task), задайте имя и расписание.
  3. Выберите действие “Запустить программу” и укажите путь к reboot-router.vbs.
  4. Включите опцию “Выполнять независимо от входа пользователя”, если нужно.

Планировщик задач: добавление задачи

Теперь скрипт будет запускаться по расписанию.

Когда этот метод НЕ сработает

  • Роутер не поддерживает 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) и механизмов, которые позволяют извлекать секреты безопасно.

Готовый чек‑лист: настройка и тестирование

  1. Проверить IP роутера (обычно 192.168.1.1 или 192.168.0.1).
  2. Включить Telnet в панели администратора роутера.
  3. Подключиться вручную через telnet и проверить команду перезагрузки (system reboot).
  4. Подготовить скрипт (bash/expect или VBS) и протестировать запуск вручную.
  5. Настроить логирование (файлы /var/log или простой append в текстовый файл).
  6. Запланировать выполнение (cron или Планировщик задач).
  7. Мониторить первые 7 дней и проверять, что роутер перезагружается вовремя и возвращает сеть.
  8. При проблемах — откатить планирование и отладить вручную.

Роли и ответственность

  • Домашний пользователь: выбирает умную розетку или простой 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), проверьте админ‑панель на похожие опции и команды. Пишите в комментариях, если у вас получилось адаптировать метод под другой бренд — это полезно для других читателей.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Как создать обложки для LaunchBox
Руководства

Как создать обложки для LaunchBox

Закрытые субтитры на Xbox Series X — как включить
Доступность

Закрытые субтитры на Xbox Series X — как включить

Клавиатуры для Steam Deck: выбор и рекомендации
Аксессуары

Клавиатуры для Steam Deck: выбор и рекомендации

Как записывать видеозвонки в Skype — руководство
Программы

Как записывать видеозвонки в Skype — руководство

Сделай сам: LED кольцевой свет для видео
Освещение

Сделай сам: LED кольцевой свет для видео

Запуск Android‑игр в Windows 11
Windows

Запуск Android‑игр в Windows 11