Как автоматически перезагрузить маршрутизатор Geeky Way
Verizon FIOS великолепен - скорости невероятные, а цена… ну, довольно дорогая. Настоящая проблема заключается в том, что ужасный маршрутизатор, который они вам дают, нужно постоянно перезагружать, что очень неприятно, учитывая, что он находится в подвале. Плюс, я не хочу вставать с дивана.
Я подумал, как решить эту проблему, используя технологии. Это то, что делают гики, верно?
Да, я знаю, я мог бы позвонить в Verizon и обновить маршрутизатор, я уверен, что у них сейчас лучшая модель. И конечно, вы можете обновить прошивку, но это не сработает для моего старого роутера, поскольку обновления нет. Время для более простого решения, которое в идеале включает в себя работу cron. Cron рабочие места всегда хорошее решение.
После трех минут исследований и мозгового штурма решение было представлено так: вы можете включить telnet на маршрутизаторе, настроить скрипт, который автоматически запускает серию команд с использованием интерфейса telnet, а затем запланировать запуск этого сценария с заданием cron на регулярной основе. основа. Для меня это означало каждое утро в 7 часов утра, за час до того, как я просыпаюсь, и снова в 5:30 вечера, так как в этот момент я всегда вне дома. Проблема решена, и я могу использовать Vim, что также делает меня счастливым.
И, конечно же, вы можете создать скрипт для запуска по требованию, чтобы немедленно перезагрузить маршрутизатор, когда захотите.
Замечания: Вы, вероятно, можете сделать то же самое с маршрутизатором, который не Verizon. Вам нужно проверить панель администрирования вашего роутера и посмотреть, как там работают опции.
Подключение к маршрутизатору через Telnet
Первое, что вам нужно сделать, это выяснить, как включить telnet на маршрутизаторе. Для маршрутизатора Verizon, который требуется перейти в Advanced -> Local Administration и убедиться, что «Using Primary Telnet Port» включен. Убедитесь, что нажали Apply.
На этом этапе вы можете легко использовать telnet из терминала или командной строки для подключения к маршрутизатору. Если вы используете Windows, вам, вероятно, придется включить telnet. Для подключения просто введите это, подставив IP-адрес для IP-адреса своего маршрутизатора, если это необходимо (хотя большинство из них настроено на использование диапазона 192)
телнет 192.168.1.1
Как только вы окажетесь там, вы обычно можете набрать команду help, чтобы увидеть варианты. Для Verizon FIOS вариант, который я искал, был в системном подразделе и был точно назван «перезагрузка». Вы должны фактически ввести «перезагрузка системы», а не просто «перезагрузка», хотя.
Как только вы введете команду в командной строке, вы будете отключены, и маршрутизатор будет перезагружен. Легко да. Но кто хочет делать все это, печатая каждый раз?
Создание сценариев Telnet через терминал (OS X или Linux или Cygwin в Windows)
Мы предполагаем, что у вас есть доступ к оболочке bash, независимо от того, находится ли она в вашей обычной ОС или если в вашей ОС (Windows) нет bash, возможно, вам придется установить Cygwin..
На удивление легко написать набор команд и передать их в приложение telnet. Все, что вам нужно сделать, это что-то вроде этого:
(echo commandname; echo anothercommand) | телнет 192.168.1.1
Единственная проблема - это надоедливый логин, через который вы должны пройти ... он не появляется сразу. Поэтому, если вы передадите «эхо-администратор», а затем «эхо-пароль», это произойдет слишком быстро и не будет отправлено на сервер. Решение? Используйте команду сна!
Добавление в пару сна 3 команды, чтобы подождать три секунды, решает проблему. Сначала мы повторим имя пользователя и пароль, а затем повторим команду перезагрузки, и каждый раз будем ждать три секунды. Последняя команда немедленно перезагрузит сервер:
(сон 3; эхо администратора; сон 3; эхо моего пароля; сон 3; перезагрузка системы эха; сон 3;) | телнет 192.168.1.1
Вы можете поместить это в скрипт оболочки и запускать в любое время. Или вы можете добавить его в свой cron следующим образом (в OS X или Linux):
crontab -e
Добавьте эту строку куда-нибудь:
1 7 * * * (сон 3; эхо администратора; сон 3; эхо моего пароля; сон 3; перезагрузка системы эха; сон 3;) | телнет 192.168.1.1
Это перезагрузит ваш маршрутизатор в 7:01 утра каждое утро.
Перезагрузка маршрутизатора способом Windows
Если вы работаете в Windows, намного сложнее запланировать это автоматически, но мы определенно можем достаточно легко это записать. Сначала вам нужно зайти в панель управления, перейти к панели «Включение или отключение функций Windows» (просто найдите ее), а затем включить клиент Telnet..
Теперь вы можете вставить следующее в Блокнот, но при необходимости измените IP-адрес маршрутизатора и вместо этого измените строку mypassword на свой действительный пароль. Вам может понадобиться отредактировать скрипт для разных команд.
Явный параметр 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. Сон 3000 oShell.Sendkeys "mypassword ~" WScript.Sleep 3000 oShell.Sendkeys "перезагрузка системы ~" WScript.Sleep 3000 oShell.Sendkeys "~" Wscript.Quit
Сохраните его как расширение .vbs, и затем вы можете дважды щелкнуть по нему в любое время, когда захотите перезагрузить маршрутизатор..
Планирование в Windows с запланированной задачей
Откройте планировщик заданий и создайте новое базовое задание, присвоив ему имя и расписание. Ежедневно в определенное время будет работать. Затем используйте опцию «Запустить программу» и найдите созданный вами файл скрипта..
Это почти все, что вам нужно сделать.
Замечания: инструкции в этой статье относятся к Verizon FIOS, но вы, вероятно, можете сделать это с любым маршрутизатором. Пожалуйста, дайте нам знать в комментариях, если вы заставите его работать с другим маршрутизатором, и мы обновим статью, чтобы отразить это.