Перезагрузка рутера через telnet

Если вы только начинаете осваивать систему MajorDoMo и чего-то не знаете или не можете понять, то задавайте свои вопросы в этой ветке.

Модератор: immortal

EvgenyG
Сообщения: 217
Зарегистрирован: Вт июл 21, 2015 4:59 pm
Откуда: Москва
Благодарил (а): 56 раз
Поблагодарили: 1 раз

Перезагрузка рутера через telnet

Сообщение EvgenyG » Чт окт 06, 2016 9:09 pm

Подскажите, можно ли подключиться к рутеру Zyxel Keenetic II в локальной сети через telnet средствами MajorDoMo?
Хочу запускать команду на перезагрузку при отсутствие ping
https://zyxel.ru/kb/2916/
MDM Raspberry Pi 3b, esp32, ModBUS, esp8266, NooLite(MTRF-64-USB, SU-1-***, SLF-1-300, PM112, радиопульты PU)
eygen
Сообщения: 392
Зарегистрирован: Чт сен 25, 2014 5:37 pm
Откуда: Екатеринбург
Благодарил (а): 25 раз
Поблагодарили: 52 раза

Re: Перезагрузка рутера через telnet

Сообщение eygen » Чт окт 06, 2016 9:45 pm

Как то так...
viewtopic.php?f=6&t=2986&start=20
Varrcan
Сообщения: 24
Зарегистрирован: Чт июл 30, 2015 10:04 pm
Благодарил (а): 11 раз
Поблагодарили: 7 раз

Re: Перезагрузка рутера через telnet

Сообщение Varrcan » Пн окт 17, 2016 7:12 pm

EvgenyG писал(а):Подскажите, можно ли подключиться к рутеру Zyxel Keenetic II в локальной сети через telnet средствами MajorDoMo?
Хочу запускать команду на перезагрузку при отсутствие ping
https://zyxel.ru/kb/2916/
я у себя сделал так:
1 В корне создал файл /var/www/restart_router.sh

Код: Выделить всё

#!/bin/bash
(
sleep 5
echo "admin"
sleep 1
echo "password"
sleep 1
echo "system reboot"
sleep 1
echo "exit"
) | telnet 192.168.0.1
значения смените на свои.

2 В МД создал сценарий, в котором прописал дергалку этого файлика. Можно сделать примерно так:

Код: Выделить всё

say('Подключение к интернету отсутствует более трех минут. Попробую перезагрузить роутер...');
exec('/var/www/restart_router.sh');
 


3 Состояние интернета проверяю пингом к яндексу (Устройства Online):

Действие при переходе в Offline:

Код: Выделить всё

SetTimeOut("restartRouter","runScript('restartRouter');", 180); 
Действие при переходе в Online: (Это если вдруг интернет восстановился за 3 минуты)

Код: Выделить всё

ClearTimeOut("restartRouter"); 
За это сообщение автора Varrcan поблагодарили (всего 4):
71Gavrik71 (Сб янв 28, 2017 9:20 pm) • Otto (Пн мар 27, 2017 9:46 am) • llirik (Чт сен 14, 2017 2:30 pm) • olegvolk75 (Чт окт 11, 2018 7:59 pm)
Рейтинг: 4.65%
Varrcan
Сообщения: 24
Зарегистрирован: Чт июл 30, 2015 10:04 pm
Благодарил (а): 11 раз
Поблагодарили: 7 раз

Re: Перезагрузка рутера через telnet

Сообщение Varrcan » Пн окт 17, 2016 7:19 pm

Может кому пригодится.
На роутере TP-LINK TL-WR740N перезагружал подобным скриптом, ничего проще не смог найти:

Код: Выделить всё

say('Внимание! Маршрутизатор перезагружается!');
$t = 'http://192.168.0.1/userRpm/SysRebootRpm.htm?Reboot=%D0%9F%D0%B5%D1%80%D0%B5%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B0';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $t);
curl_setopt($ch, CURLOPT_USERPWD, 'admin:password');
curl_setopt($ch, CURLOPT_REFERER, 'http://192.168.0.1/userRpm/SysRebootRpm.htm');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/17.0 Firefox/17.0');
curl_setopt($ch, CURLOPT_ENCODING, 'utf-8');
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_exec($ch);        
curl_close($ch);
*** Сообщение запрещено. Сообщение похоже на спам. ***
За это сообщение автора Varrcan поблагодарил:
omship (Ср окт 16, 2019 11:59 am)
Рейтинг: 1.16%
portos
Сообщения: 29
Зарегистрирован: Пт апр 15, 2016 4:04 pm
Благодарил (а): 1 раз
Поблагодарили: 1 раз

Re: Перезагрузка рутера через telnet

Сообщение portos » Вт ноя 15, 2016 1:05 pm

Varrcan писал(а):
EvgenyG писал(а):Подскажите, можно ли подключиться к рутеру Zyxel Keenetic II в локальной сети через telnet средствами MajorDoMo?
Хочу запускать команду на перезагрузку при отсутствие ping
https://zyxel.ru/kb/2916/
я у себя сделал так:
1 В корне создал файл /var/www/restart_router.sh

Код: Выделить всё

#!/bin/bash
(
sleep 5
echo "admin"
sleep 1
echo "password"
sleep 1
echo "system reboot"
sleep 1
echo "exit"
) | telnet 192.168.0.1
значения смените на свои.

2 В МД создал сценарий, в котором прописал дергалку этого файлика. Можно сделать примерно так:

Код: Выделить всё

say('Подключение к интернету отсутствует более трех минут. Попробую перезагрузить роутер...');
exec('/var/www/restart_router.sh');


3 Состояние интернета проверяю пингом к яндексу (Устройства Online):

Действие при переходе в Offline:

Код: Выделить всё

SetTimeOut("restartRouter","runScript('restartRouter');", 180);
Действие при переходе в Online: (Это если вдруг интернет восстановился за 3 минуты)

Код: Выделить всё

ClearTimeOut("restartRouter");

Можно пример в картинках для тупых и у кого не чего не получилось.
Аватара пользователя
savenko_egor
Сообщения: 705
Зарегистрирован: Вс авг 03, 2014 8:17 pm
Откуда: Украина, Запорожье
Благодарил (а): 108 раз
Поблагодарили: 147 раз
Контактная информация:

Re: Перезагрузка рутера через telnet

Сообщение savenko_egor » Вт ноя 15, 2016 2:31 pm

не вопросПоказать
Изображение
Изображение
Изображение
portos
Сообщения: 29
Зарегистрирован: Пт апр 15, 2016 4:04 pm
Благодарил (а): 1 раз
Поблагодарили: 1 раз

Re: Перезагрузка рутера через telnet

Сообщение portos » Ср ноя 16, 2016 5:43 pm

Ну в принципе все так и делал. Единственно вместо домена указал хост.
В результат и с доменным именем работает с просто ip адресом нет. Статус переходит в офлайн но команда не выполняется.
Аватара пользователя
savenko_egor
Сообщения: 705
Зарегистрирован: Вс авг 03, 2014 8:17 pm
Откуда: Украина, Запорожье
Благодарил (а): 108 раз
Поблагодарили: 147 раз
Контактная информация:

Re: Перезагрузка рутера через telnet

Сообщение savenko_egor » Ср ноя 16, 2016 5:53 pm

Попробуйте дебажить. Например добавьте say в какой-то из статусов для того чтобы понять работает или нет.
Но скорее всего у Вас PHP работает от пользователя который не имеет доступ к скрипту. Даю 99% что проблема именно в этом. Потому проверьте собственника и права на sh скрипт и проверьте от кого запускается скрипты MDM.
portos
Сообщения: 29
Зарегистрирован: Пт апр 15, 2016 4:04 pm
Благодарил (а): 1 раз
Поблагодарили: 1 раз

Re: Перезагрузка рутера через telnet

Сообщение portos » Ср ноя 16, 2016 8:00 pm

Права на каталог WWW у root и www-data полный доступ.
Скрипт работает когда в поле хост(адрес) пишешь хост к примеру www.ru а не ip адрес ххх.ххх.ххх.ххх
То есть это баг модуля pinghosts
Аватара пользователя
savenko_egor
Сообщения: 705
Зарегистрирован: Вс авг 03, 2014 8:17 pm
Откуда: Украина, Запорожье
Благодарил (а): 108 раз
Поблагодарили: 147 раз
Контактная информация:

Re: Перезагрузка рутера через telnet

Сообщение savenko_egor » Ср ноя 16, 2016 8:12 pm

Так может у Вас сервер не преобразовывает домены в IP. Покажите вывод:

Код: Выделить всё

cat /etc/resolv.conf

Код: Выделить всё

ping 8.8.8.8

Код: Выделить всё

ping ya.ru
*** Сообщение запрещено. Сообщение похоже на спам. ***
Ответить