Скрипт перезагрузки роутера при разрыве коннекта

image
Дома, как, как и у многих, интернет раздает роутер.
Купленный в свое время ZyXEL P-330W вполне справлялся со своей задачей, пока однажды не начались проблемы. Видимо провайдер что-то там у себя делал, сетка падала, а роутер оставался в полной уверенности, что все в порядке и не переподключал соединение.
Единственное, что оставалось — перегружать сам роутер путем отключения питания.
Т.к. домашний сервак работает 24/7 и интернет ему нужен постоянно, озадачился проблемой автоматической перезагрузки роутера в случае, если отрубается интернет.

ПРОБЛЕМА:
Роутер или ADSL модем теряет связь и не восстанавливает соединение.

РЕШЕНИЕ:
Использование скрипта для проверки подключения к интернет и перезагрузки роутера в случае необходимости.
Как это все будет работать – Раз в полчаса планировщик запускает скрипт, который пингует определенные адреса и если ответа нет, заходит на роутер через телнет и отправляет команду перезагрузки.

Теперь подробно, по шагам.

Создаем в текстовом редакторе файл router.vbs (например)

Копируем туда следующий код:
>>>Начало кода со следующей строки<<<
Function PcOnline (strComputer)
‘Check if the remote machine is online.
Dim objPing,objStatus
Dim TextStream, TimeVar
Dim fso, tf
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Set objPing = GetObject(«winmgmts:{impersonationLevel=impersonate}»)._
ExecQuery(«select Replysize from Win32_PingStatus where address = ‘» & strComputer & «‘»)
For Each objStatus in objPing
If IsNull(objStatus.ReplySize) Then
PcOnline=False
‘Пишем Лог файл
Set fso = CreateObject(«Scripting.FileSystemObject»)
If (fso.FileExists(«c:\routerlog.txt»)) Then
Set tf = fso.OpenTextFile(«c:\routerlog.txt»,ForAppending, True)
tf.WriteLine(Now() & » » & strComputer & » is down «)
tf.Close()
Set fso = Nothing
Set tf = Nothing
Else
Set tf = fso.CreateTextFile(«c:\routerlog.txt»,ForAppending, True)
tf.WriteLine(Now() & » » & strComputer & » is down «)
tf.Close()
Set fso = Nothing
Set tf = Nothing
End If
‘ Конец Лог файла
Else
PcOnline = True
‘Wscript.Echo strComputer & » is responding to a ping «
End If
Next
Set objPing=Nothing
Set objStatus=Nothing
End Function
Dim fsot, tft
Const ForReading = 1, ForWriting = 2, ForAppending = 8
If PcOnline(«www.ya.ru»)_
OR PcOnline(«www.google.com»)_
Then
‘ если статус = 0, пустая строка — другое
Wscript.Echo «all ok»
Set fsot = CreateObject(«Scripting.FileSystemObject»)
Set tft = fsot.OpenTextFile(«c:\routerlog.txt»,ForAppending, True)
tft.WriteLine(«——————«)
tft.Close()
Set fsot = Nothing
Set tft= Nothing
WScript.Quit 0
Else
‘WScript.Echo «Reboot»
‘Set oShell = WScript.CreateObject(«WScript.Shell»)
‘oShell.Run «telnet.exe 1.1.0.1»
‘WScript.Sleep 2000
‘oShell.SendKeys «user» & chr(13)
‘WScript.Sleep 2000
‘oShell.SendKeys «password» & chr(13)
‘WScript.Sleep 2000
‘oShell.SendKeys «reload» & chr(13)
‘WScript.Sleep 2000
‘oShell.SendKeys «^({]})q» & chr(13)
‘WScript.Quit 255
End If
Set fsot = CreateObject(«Scripting.FileSystemObject»)
Set tft = fsot.OpenTextFile(«c:\routerlog.txt»,ForAppending, True)
tft.WriteLine(«——————«)
tft.Close()
Set fsot = Nothing
Set tft= Nothing
>>>Конец кода на предыдущей строке<<<

Что к чему:
ya.ru и google.com сервера, которые пингует скрипт для проверки ест ли интернет или нет
user — логин админа роутера или модема – обычно admin
password – пароль админа.
В строчке ‘oShell.Run «telnet.exe 1.1.0.1» вместо 1.1.0.1 прописываем адрес своего роутера (192.168.1.1 например)
В строчке ‘oShell.SendKeys «reload» & chr(13) – reload, это команда, которая перегружает роутер или модем, может отличаться от модели к модели. Посмотрите в документации или методом научного тыка и вставьте ту команду, которая подходит вам – я встречал reload и reboot.
Также скрипт пишет лог файл c:\routerlog.txt

ИСПОЛЬЗОВАНИЕ:
Сохраняем файл router.vbs с кодом внутри.
Добавляем в качестве задания запускать этот файл каждые 30 минут (по желанию)
Для XP — Панель управления -> Назначенные задания -> Добавить задание

Теперь скрипт будет каждые 30 минут проверять соединение с интернет и в случае срыва коннекта перегружать роутер/модем.

  • #1

Хотел поделиться скриптами автоматической перезагрузки роутера при падении сети. Работает уже более месяца. У меня zyxel keenetic и модем мегафон.
1. Добавить telnet.exe в стандартных средствах винды.
2. Создать «keenetic-reboot.vbs» скрипт. Листинг: http://pastebin.com/ZSQHzxaP
3. Создать батник и добавить в задания винды на старт каждые 30 минут. http://pastebin.com/rCTh8zvc
4. Положить оба файла в корень диска C:/

Принцип действия прост, каждый 30 минут стартует батник, который пингует mail.ru, если недоступен, то запускает скрипт, который по телнету перегружает роутер.

  • #3

Супер, у самого все руки не доходили нарыть инфы)

  • #4

Хотел поделиться скриптами автоматической перезагрузки роутера при падении сети. Работает уже более месяца. У меня zyxel keenetic и модем мегафон.
1. Добавить telnet.exe в стандартных средствах винды.
2. Создать «keenetic-reboot.vbs» скрипт. Листинг: http://pastebin.com/ZSQHzxaP
3. Создать батник и добавить в задания винды на старт каждые 30 минут. http://pastebin.com/rCTh8zvc
4. Положить оба файла в корень диска C:/

Принцип действия прост, каждый 30 минут стартует батник, который пингует mail.ru, если недоступен, то запускает скрипт, который по телнету перегружает роутер.

А как wifi адаптер перезапускать? у меня после перезагрузки через раз отваливается…

  • #5

А как wifi адаптер перезапускать? у меня после перезагрузки через раз отваливается…

тоже есть такая проблема, придится витаскивать и втикать его снова.

  • #6

Под 7-кой работает прекрасно, но в 10ке почему что скрипт отрабатывает команды не правильно(пытается в командную строку телнета вставить белеберду). Пользуется кто? как переделать под 10-ку

  • Безымянный.jpg

    Безымянный.jpg

    107,7 КБ · Просмотры: 178

  • #7

Под 7-кой работает прекрасно, но в 10ке почему что скрипт отрабатывает команды не правильно(пытается в командную строку телнета вставить белеберду). Пользуется кто? как переделать под 10-ку

У меня под 10 работает. У себя ищите ошибку.

  • #8

«open АДРЕС РОУТЕРА» — это ip адрес WAN ?
спс

Последнее редактирование:

  • #9

«open АДРЕС РОУТЕРА» — это ip адрес WAN ?

обычно это «open 192.168.1.1»

  • #10

Под 7-кой работает прекрасно, но в 10ке почему что скрипт отрабатывает команды не правильно(пытается в командную строку телнета вставить белеберду). Пользуется кто? как переделать под 10-ку

Раскладку клавиатуры попробуйте поменять на стандартную английскую.

  • #11

Друзья telnet не может открыть роутер Asus RT11 через tp link без проблем заходит, в чем может проблема быть?

  • #12

Привет!
столкнулся с такой проблемой, почемуто при запуске telnet вместо команды open 192.168.1.1 пишет /5, 192.168.1.1

как можно это подправить?

  • #13

Сам затупил, команды из скриптов вводятся в раскладке по умолчанию. По умолчанию была русская раскладка клавиатуры, поменял на английскую и все исправилось )

  • #14

Почему авторы подобных тем забывают указать очень важную деталь, что этот скрипт работает только с теми роутерами в которых есть поддержка функции telnet! Возможно для кого-то открою тайну, но во многих моделях вообще нет этой функции!

  • #15

Хотел поделиться скриптами автоматической перезагрузки роутера при падении сети. Работает уже более месяца. У меня zyxel keenetic и модем мегафон.
1. Добавить telnet.exe в стандартных средствах винды.
2. Создать «keenetic-reboot.vbs» скрипт. Листинг: http://pastebin.com/ZSQHzxaP
3. Создать батник и добавить в задания винды на старт каждые 30 минут. http://pastebin.com/rCTh8zvc
4. Положить оба файла в корень диска C:/

Принцип действия прост, каждый 30 минут стартует батник, который пингует mail.ru, если недоступен, то запускает скрипт, который по телнету перегружает роутер.

Спасибо огромное! Легко и просто! :)
Вот только маленькая ошибка,которую не сразу заметил: В ридмихе keenetiС, а в батнике keenetiK . Естественно стало ругаться что не может найти скрипт.

  • #16

Подскажите плиз знающие, реально такой скрипт внедрить в линуксе? Конкретно в хайв ос

  • #17

Хотел поделиться скриптами автоматической перезагрузки роутера при падении сети. Работает уже более месяца. У меня zyxel keenetic и модем мегафон.
1. Добавить telnet.exe в стандартных средствах винды.
2. Создать «keenetic-reboot.vbs» скрипт. Листинг: http://pastebin.com/ZSQHzxaP
3. Создать батник и добавить в задания винды на старт каждые 30 минут. http://pastebin.com/rCTh8zvc
4. Положить оба файла в корень диска C:/

Принцип действия прост, каждый 30 минут стартует батник, который пингует mail.ru, если недоступен, то запускает скрипт, который по телнету перегружает роутер.

У меня в вебке модема есть функции автоматического перезапуска.

  • #18

У меня в вебке модема есть функции автоматического перезапуска.

модема или роутера?

Если у вас есть роутер ASUS или другой с прошивкой от Олега, то эта записка для вас. Недавно у меня возникла трудность, которую никак не получалось решить. VPN-сессия зависала, при этом VPN-соединение оставалось подключено. Роутер не мог понять, что надо переподключится.  Приходилось каждый раз вручную делать перезагрузку роутера, согласитесь, это долгий и утомительный процесс. 

linux-code

Я покопался в интернете, оказалось  я такой не один и проблема довольно масштабна среди “роутороводов”. Наши провайдеры не особо жалуют пользователей с роутерами, в большинстве случаев после ответа на вопрос “какая у вас операционная система” суппорт умолкает.

Я не задавался и продолжал искать,  но нигде не было универсального решения данной проблемы. Тогда я подумал, мой роутер основан на Unix и поддерживает Bash-скрипты.  Я решил написать “умный” скрипт перезагрузки, в случае повисания VPN-сессии. После нескольких проб и ошибок я остановился на таком варианте.

#!bin/sh

PINGRESORCE1="ya.ru"
PINGRESORCE2="google.com"

if (! ping -c 3 &{PINGRESORCE1} >/dev/nill 2>&1).
then

if (! ping -c 3 &{PINGRESORCE2} >/dev/nill 2>&1).
then
reboot

else
echo 'internet ok'
fi

else
echo 'internet ok'
fi

Алгоритм работы данного скрипта такой:  Сначала мы посылаем 3 ping’a до Яндекса, если они проходят то выводим “internet ok”. Если нет, то посылаем ещё 3 ping’a до Гугла, если проходят, выводи “internet ok”. Если ping не дойдёт  и до Гугла, то перезагрузка.

Этот скрипт необходимо добавить в планировщик задач (в большинстве случаев это cron), чтобы он выполнялся каждые 5-10 минут.

Качественные cайты на скриптах.

Старые комментарии:

Игорь 31.10.2010 18:37
Интересно, а как засунуть этот скрипт в роутер? :-?

 Илья 31.10.2010 19:12
У меня DIR-320 с прошивкой от Олега.
По сути это уже полнофункционал ьный линукс, ;-) есть доступ к командной строке по SSH.
Советую посетить этот форум. (Ахтунг, там есть проблема с кодировкой нужно поставить Кириллицу Windows-1254)
http://wl500g.info/forumdisplay.php?f=86

 Игорь 01.11.2010 13:48
Спасибо, получается, что роутер D-Link превращается в ASUS :eek:

 Илья 01.11.2010 14:42
Ну.. Да :yehh2:

 demeister 13.04.2011 04:26
скажите а на DD-WRT при прописании скрипта в cron он будет работать?

 Илья 13.04.2011 15:15
Да должен, ибо тоже Linux :yehh2:

 DarkShaman 21.05.2013 19:30
У меня на OpenWRT заработало так
#!/bin/sh
echo ————— ————— ————— —
echo WAN CONTROLL RESTART
echo ————— ————— ————— —
PINGRESORCE1=»109.126.0.67″
PINGRESORCE2=»109.126.1.67″
PINGRESORCE3=»google.com»
if (! ping -q -c3 ${PINGRESORCE1} > /dev/null 2>&1)
then
if (! ping -q -c3 ${PINGRESORCE2} > /dev/null 2>&1)
then
if (! ping -q -c3 ${PINGRESORCE3} > /dev/null 2>&1)
then
reboot
else
echo ‘internet ok’
fi
else
echo ‘internet ok’
fi
else
echo ‘internet ok’
fi

 Паша 11.04.2014 21:35
У меня на OpenWRT. Не могу запустить скрипт. Объясните подробно в какую папку на роутере нужно скопировать файл скрипта, как создать этот файл и что нужно прописать в планировщике?
На данный момент создал файл /overlay/home/ping/ping.sh
в котором прописал все что в сообщении от #7 DarkShaman
Не работает. Где ошибка? Роутер не перезагружается при отключении сетевого кабеля ни сразу ни через 5 минут.
DarkShaman, подскажи как ты все проделал?

 Олег 07.09.2014 17:27
Доброго времени суток! Скажите пожалуйста, а можно таким способом перезагружать другую точку, коротая подключена к моей мостом?

Добавить комментарий

Ежедневно c 10:00ч до 20:00ч.

Как оказалось, в гигабитном роутере TP-LINK TL-WR1042ND нет управления при помощи консоли. Но роутеры, как известно, иногда виснут. Точнее, сам роутер продолжает работать и откликаться на команды управления из админки и VPN показывает, что он подключен, но интернет при этом не доступен. Иногда это происходит по вине самого устройства, иногда проблемы со стороны провайдера, и перезагрузка часто решает проблему. При чем, желательно, чтобы это происходило автоматически. Поэтому было принято решение перегружать роутер при помощи HTTP GET запроса…

После непродолжительного исследования были найдены такие команды:

Разорвать VPN соединение:

http://login:pass@192.168.0.1/userRpm/StatusRpm.htm?Disconnect=Disconnect&wan=1

Подключить VPN:

http://login:pass@192.168.0.1/userRpm/StatusRpm.htm?Connect=Connect&wan=1

Перезагрузить роутер:

http://login:pass@192.168.0.1/userRpm/SysRebootRpm.htm?Reboot=1

Но, как оказалось, управлять этими командами роутером напрямую не получается. Они работают только при авторизации в админке роутера через браузер и то только можно увидеть их выполнение с помощью firebug, а напрямую, при вводе в адресную строку работает только команды дисконнекта/коннекта VPN. Команды срабатывают, но при этом все равно выдается ошибка. Перезагрузить роутер таким образом не получается.

Мгновенно выскакивает «You have no authority to access this router!» и ничего не происходит.

Самое интересное, что так:

http://login:pass@192.168.0.1/userRpm/StatusRpm.htm?Disconnect=Disconnect&wan=1

выдает ту же ошибку, но с некоторой задержкой, а запрос выполняется — т.е. wan отключается.

При этом в админку входит по ссылке с прописанной авторизацией: http://login:pass@192.168.0.1 и управление из админки дальше работает!

Перезагрузка из Linux

Меня больше интересовала перезагрузка из линукса, но такая команда не срабатывала:

wget --http-user=login --http-password=pass --post-data="reboot=true" http://192.168.0.1/userRpm/SysRebootRpm.htm

ошибка:

Connecting to 192.168.0.1:80... connected.
HTTP request sent, awaiting response... 401 N/A
Reusing existing connection to 192.168.0.1:80.
HTTP request sent, awaiting response... 200 No headers, assuming HTTP/0.9
Length: unspecified
Saving to: `SysRebootRpm.htm'

К тому же, при помощи wget не удавалось даже выполнить Disconnect/Connect VPN.

На русском форуме TP-LINK была открыта тема, но в результате обсуждения, решения найти не удалось.
Английская техподдержка на запрос «How i can reboot my device by bash script?»
ответила следующее: «this is not possible to reboot devices in a such way».
Ticket#2013101610000131

Решение все же было найдено. Не вдаваясь в подробности скажу что роутер при GET запросе проверяет:

  1. Http basic авторизацию.
  2. User-Agent браузера.
  3. Корректное поле рефер, которое всегда будет просто http://IP адресом роутера, т.к. роутер использует редиректы.

Cookie для авторизации не используются.

С этим всем отлично справляется команда curl.

Скрипт перезагрузки роутера

Итак, привожу скрипт перезагрузки роутера, который у меня получился:

#!/bin/sh
WATCHED_IP="8.8.8.8"
ROUTER_IP="192.168.0.1"
USERNAME="login"
PASSWORD="pass"

# watch for remote host
ping -q -c 1 "$WATCHED_IP" > /dev/null && exit

# exit if router is down
ping -q -c 1 "$ROUTER_IP" > /dev/null || exit

curl --basic --user "$USERNAME:$PASSWORD" -A "Mozilla/4.73 [en] (X11; U; Linux 2.2.15 i686)" --refer "http://$ROUTER_IP" "$ROUTER_IP/userRpm/SysRebootRpm.htm?Reboot=reboot"

Соответственно, скрипт реконнекта VPN:

#!/bin/sh
WATCHED_IP="8.8.8.8"
ROUTER_IP="192.168.0.1"
USERNAME="login"
PASSWORD="pass"

# watch for remote host
ping -q -c 1 "$WATCHED_IP" > /dev/null && exit

# exit if router is down
ping -q -c 1 "$ROUTER_IP" > /dev/null || exit

curl --basic --user "$USERNAME:$PASSWORD" -A "Mozilla/4.73 [en] (X11; U; Linux 2.2.15 i686)" --refer "http://$ROUTER_IP" "$ROUTER_IP/userRpm/StatusRpm.htm?Disconnect=Disconnect&wan=1"
#sleep 1
curl --basic --user "$USERNAME:$PASSWORD" -A "Mozilla/4.73 [en] (X11; U; Linux 2.2.15 i686)" --refer "http://$ROUTER_IP" "$ROUTER_IP/userRpm/StatusRpm.htm?Connect=Connect&wan=1"

Поставил в cron скрипт реконнекта при отсутствии пинга dns гугля — проверка каждые 3 минуты.
Скрипт перезагрузки проверяет наличие интернета каждые 15 минут.

login:pass, конечно, нужно будет поставить свои. Файлы скриптов назвать, например, tplink_reboot.sh и tplink_reconnect.sh, сохранить на сервере, дать права на выполнение и добавить в планировщик.

Уже пару раз выручило:
tplink_reconnect.zip
tplink_reboot.zip


PS:
на форуме https://forum.tp-linkru.ru Scorokhod поделился своим вариантом перезагрузки роутера при помощи WGET, за что ему огромное спасибо:

wget --http-user=%login% --http-password=%password% --user-agent="Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36" --referer=http://%router_ip%/userRpm/SysRebootRpm.htm http://%router_ip%/userRpm/SysRebootRpm.htm?Reboot=1

Вместо «login», «password» и «router_ip» подставить соответственно логин, пароль и IP маршрутизатора без кавычек и процентов :-)

WGET для Windows можно взять здесь: http://gnuwin32.sourceforge.net/packages/wget.htm, качать нужно «Complete package, except sources — Setup».

Перезагрузка из Windows

Готовая сборка Wget + Bat скрипт для перезагрузки (только перегружает):
скачать tplink_reboot_wget.zip (подходит для большинства моделей Tplink, не только WR1042ND)

Перезагрузка из Android

(спасибо за этот код neolead)

Для андроид в данном изложении требуется root. Если нет рута.. то в конце checknet заменить на step1

—manual
Requirements:

Установить Busybox https://play.google.com/store/apps/deta … on.busybox
и Android Terminal emulator https://play.google.com/store/apps/deta … ndroidterm
—to do list
Перемонтировать/system на запись «su -c mount rw,remount /system»
Поместить допустим в /system/script,»su -c chmod 0777 /system/script/»
Дать скрипту права на исполнение «su -c chmod 0755 /system/script/ping2.sh»
Добавить в автозапуск в настройках терминала.

у меня работает в машине как переподключение,затем перезагрузка wifi после трёх фейлов…

-----ping2.sh
#!/system/bin/sh
pingip=8.8.8.8
login=admin #Username
password=admin #Password
router_ip=192.168.0.1 #Ip of router
sleep_time=30 #Time to next check
sleep_rbt_time=70 #Time to waiting of reboot
f1=10 #First pause in sec
f2=30 #Second pause in sec
increment=0
b64_auth=$(echo $login:$password | base64|rev|cut -c 2-|rev)
network=toyota #SSID name of wifi

while true
do

function checknet()
{
ssid=0
while [ "$ssid" != "$network" ]
do
ssid=$(su -c dumpsys wifi|grep "* ID:"|cut -f 2 -d \")
echo ssid=$ssid
echo network=$network
if [ "$ssid" = "$network" ]; then
echo "Correct Wifi Network"
else
echo "False Wifi Network,press Enter key"
read -rs
fi
done
}

function slp()

{
increment=0
echo "will sleep $sleep_time sec"
sleep $sleep_time #check again
}

function wifi_conn()
{
echo modem reconnect
printf "GET /userRpm/StatusRpm.htm?Disconnect=Disconnect&wan=1 HTTP/1.0\r\nReferer: http://$router_ip/userRpm/StatusRpm.htm\r\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.1.1650.63 Safari/537.36\r\nAccept: */*\r\nHost: $router_ip\r\nConnection: Keep-Alive\r\nAuthorization: Basic $b64_auth=\r\n\r\n"|nc -w 5 -i 1 $router_ip 80 >/dev/nul
printf "GET /userRpm/StatusRpm.htm?Connect=Connect&wan=1 HTTP/1.0\r\nReferer: http://$router_ip/userRpm/StatusRpm.htm\r\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.1.1650.63 Safari/537.36\r\nAccept: */*\r\nHost: $router_ip\r\nConnection: Keep-Alive\r\nAuthorization: Basic $b64_auth=\r\n\r\n"|nc -w 5 -i 1 $router_ip 80 >/dev/nul
}

function wifi_rst()
{
#echo LOGIN:$b64_auth=
increment=$(( $increment +1 ))
echo Reboot Times=$increment

if [ "$increment" -eq 3 ]; then
echo "We Already Reboot = $increment times"
echo "We Stop Rebooting"
read -rs $'Press any key to continue monitoring...\n' -n1 key
else
printf "GET /userRpm/SysRebootRpm.htm?Reboot=1 HTTP/1.0\r\nReferer: http://$router_ip/userRpm/SysRebootRpm.htm\r\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.1.1650.63 Safari/537.36\r\nAccept: */*\r\nHost: $router_ip\r\nConnection: Keep-Alive\r\nAuthorization: Basic $b64_auth=\r\n\r\n"|nc -w 5 -i 1 $router_ip 80 >/dev/nul
echo "Now reboot request was send,will sleep $sleep_rbt_time sec"
sleep $sleep_rbt_time
fi
}
checknet

if ping -c 1 $pingip >/dev/null
then
echo "all good step 1"
slp
else
if ping -c 1 $router_ip >/dev/null
then
echo Router is pinging - channel is down
else
echo Router is down - channel is down
increment = 3
wifi_rst
fi
echo Bad Ass step 1 - will wait $f1 sec!
sleep $f1 #give it a few seconds to complete
fi

if ping -c 1 $pingip >/dev/null
then
echo "all good step 2"
slp
else
echo Bad Ass step 2 - will wait $f2 sec!
sleep $f2 #give it a few seconds to complete
fi

if ping -c 1 $pingip >/dev/null
then
echo "all good step 3 "
slp
else
wifi_conn
echo Bad Ass step 3 - Reconnect!
wifi_conn
fi

if ping -c 1 $pingip >/dev/null
then
echo "all good step 4 "
slp
else
echo Bad Ass step 3 - Reconnect!
wifi_rst
fi
done

Скетч Arduino для плат на базе микроконтроллера ESP32

(спасибо за этот код p-a-h-a)


#include <WiFi.h> 
#include <HTTPClient.h>
const char* IP_port = "http:// 192. 168. 0.1:80"; // Убрать пробелы, заменить на свой адрес
#define RouterLogin "admin"
#define RouterPassword "admin"
void setup() {
  Serial.begin(115200);
  WiFi.begin("ssid", "pass");
  while (WiFi.status() != WL_CONNECTED) {
    delay(500); Serial.print(".");
  }
    HTTPClient http;
    http.begin(String(IP_port) + "/userRpm/SysRebootRpm.htm?Reboot=1");
    http.setAuthorization(RouterLogin, RouterPassword);
    http.addHeader("User-Agent","ESP32 wrower");
    http.addHeader("Referer", String(IP_port) + "/userRpm/SysRebootRpm.htm");
    Serial.printf("[HTTP] GET...code: %d\n", http.GET());
//    Serial.println(http.getString()); // Выдаст вебстраничку ответа 
    http.end();
}
  void loop() {}

Теоретически, роутер – это устройство, которое «по природе своей» рассчитано на постоянную работу. Поэтому многие производители даже не устанавливают на девайсе кнопку отключения питания. К сожалению, на практике все далеко не так «радужно»: при использовании маршрутизаторов часто возникают ситуации с «провисанием» соединения, отключением отдельных компонентов и т.п. «недоразумения». В большинстве случаев спасает спасает именно перезагрузка устройства.

Поэтому в данной статье мы рассмотрим все способы, как перезагрузить роутеры tp link, zyxel keenetic, d link и asus – наиболее популярные модели маршрутизаторов.

Как перезагрузить маршрутизатор через настройки роутера?

Самый простой и удобный способ перезагрузки роутера – через web-интерфейс устройства.

Как перезагрузить вай фай роутер tp link?

Чтобы перезагрузить маршрутизатор tp-link через компьютер:

  • – в браузере откройте адрес 192.168.0.1: «login» и «password»– «admin»;
  • – далее «System Tools» -«Reboot»;
  • – для русскоязычной версии «Системные инструменты» – «Перезагрузка».
как перезагрузить роутер tp-link tl-wr841n

 Как перезагрузить роутер d link?

  • – в браузере введите адрес 192.168.1.1: «login» и «password»– «admin»;
  • – далее «Система» – «Перезагрузить» или «Сохранить и перезагрузить»
как перезагрузить роутер d link dir 300

 Как перезагрузить роутер asus?

  • – в браузере откройте адрес 192.168.0.1: «login» и «password»– «admin»;
  • – найдите кнопку «Перезагрузить» – обычно она находится в правом верхнем углу.
перезагрузить asus rt-n12 вручную

 Как перезагрузить роутер zyxel keenetic?

  • – аналогично в адресно строке введите 192.168.0.1: «login» и «password»– «admin»;
  • – «Tools» – «Restart» – «Restart»
перезагрузить роутер ростелеком

Из вышеописанных примеров видно, что для всех моделей маршрутизаторов необходимо выполнить практически идентичные шаги для удаленной перезагрузки роутера: зайти в настройки роутера, найти команду «Перезагрузка» и запустить перезагрузку девайса.

Как удалённо перезагрузить роутер через командную строку?

Выше мы рассмотрели перезагрузку роутера через веб-интерфейс самого маршрутизатора. Однако это далеко не единственное возможное решение: если ваш роутер поддерживает консоль «Telnet», для удалённой перезагрузки требуется сделать следующее:

  • – сперва убедитесь, что в настройках роутера включена консоль «Telnet»;
  • – далее зайдите в командную строку («Выполнить» – «cmd») и введите команду «telnet»;
  • перезагрузка маршрутизатора дистанционно
  • – для подключения к роутеру введите «open xxx.xxx.xxx.xxx» (вместо «х» укажите адрес «Шлюза по умолчанию»);
  • – далее потребуется поочередно ввести «login» и «password» вашего роутера;
  • – откроется консоль для отображения информации о доступных командах: введите «help»
перезагрузка роутера роутера ростелеком, билайн и мтс с компьютера

Обычно для перезагрузки роутера требуется ввести команды «reboot» или «restart».

Кроме того, для удалённой перезагрузки можно воспользоваться специальными мониторинг–утилитами: например, «MonConnInet» (программа платная). Данный софт позволяет производить проверку интернет соединения, отправляя «ping» запросы на указанные адреса (не более 5). В случае возникновения ошибки ответного запроса, программа производит перезагрузку роутера: соответственно, необходимо выбрать данный параметр в настройках и ввести «login» и «password» маршрутизатора.

Как удаленно перезагрузить роутер через компьютер?

Данный способ подойдет в случае, когда необходимо перезагрузить роутер удалённо, но не используя при этом web-браузер.

Ниже представлен скрипт для автоматической перезагрузки роутера при отсутствии соединения. Скрипт проверен на роутерах моделей D-link и Zyxel.

  • создайте новый файл в «Блокноте» или в текстовом редакторе «Notepad++» (рекомендуем остановиться на последнем);
  • сам скрипт выглядит следующим образом:
  • «Set oShell = WScript.CreateObject(“WScript.Shell”)
  • oShell.Run “telnet.exe 192.168.1.1”
  • WScript.Sleep 1000
  • oShell.SendKeys “user” & chr(13) – логин роутера
  • WScript.Sleep 1000
  • oShell.SendKeys “password” & chr(13) – соответственно, пароль от интерфейса роутера
  • WScript.Sleep 1000
  • oShell.SendKeys “reboot” & chr(13)»
  • после этого, сохраните файл с расширением .vbs (к примеру, router.vbs) – для этого расширения обязательно включение английской раскладки клавиатуры;
  • теперь остается только добавить файл в «Планировщик задач» и установить очередность и время запуска программы.

Повторимся, скрипт проверен на роутерах D-link и Zyxel – текст скрипта для других моделей может отличаться.

По данному скрипту осуществляется повторяющийся запрос на ответ сервера, при отсутствии которого происходит перезагрузка роутера благодаря консоли «Telnet».

Если вы никогда «не сталкивались» с кодом – понятнее и надёжнее для перезагрузки роутера воспользоваться вариантом с интерфейсом маршрутизатора.

В заключение стоит отметить, что сторонников перезагрузки роутеров немного: кто-то ссылается на то, что если бы это требовалось, то производители оставили бы кнопку перезагрузки, кто-то считает, что это может навредить самому устройству. Но факт остаётся фактом: после перезагрузки роутера число ошибок уменьшается, и сетевое соединение в большинстве случаев восстанавливается

  • Распечатать

Оцените статью:

  1. 5
  2. 4
  3. 3
  4. 2
  5. 1

(5 голосов, среднее: 2.8 из 5)

Поделитесь с друзьями!

Другие наши интересноые статьи:

  • Слабая скорость вай фай роутера ростелеком
  • Скорость роутера tp link archer c20
  • Скрипт для перезагрузки роутера asus
  • Слабая раздача wifi с роутера причина
  • Скорость роутера d link dsl 2640u

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии