Скрипт віддаленої автоматичної перезавантаження wi-fi роутера tp-link tl-wr1042nd
Як виявилося, в гігабітному роутере TP-LINK TL-WR1042ND немає управління за допомогою консолі. Але роутери, як відомо, іноді виснуть. Точніше, сам роутер продовжує працювати і відгукуватися на команди управління з адмінки і VPN показує, що він підключений, але інтернет при цьому не доступний. Іноді це відбувається з вини самого пристрою, іноді проблеми з боку провайдера, і перезавантаження часто вирішує проблему. При чому, бажано, щоб це відбувалося автоматично. Тому було прийнято рішення перевантажувати роутер за допомогою HTTP GET запиту ...
Після нетривалого дослідження були знайдені такі команди:
Розірвати VPN з'єднання:
Миттєво вискакує «You have no authority to access this router!» І нічого не відбувається.
Найцікавіше, що так:
видає ту ж помилку, але з деякою затримкою, а запит виконується - тобто wan відключається.
Перезавантаження з Linux
Мене більше цікавила перезавантаження з Лінукса. але така команда не спрацьовувала:
До того ж, за допомогою wget не вдавалося навіть виконати Disconnect / Connect VPN.
Рішення все ж було знайдено. Не вдаючись в подробиці скажу що роутер при GET запиті перевіряє:
З цим всім добре справляється команда curl.
Скрипт перезавантаження роутера
Отже, привожу скрипт перезавантаження роутера, який у мене вийшов:
Відповідно, скрипт реконнекта VPN:
Поставив в cron скрипт реконнекта при відсутності пинга dns гугля - перевірка кожні 3 хвилини.
Скрипт перезавантаження перевіряє наявність інтернету кожні 15 хвилин.
login: pass. звичайно, потрібно буде поставити свої. Файли скриптів назвати, наприклад, tplink_reboot.sh і tplink_reconnect.sh. зберегти на сервері, дати права на виконання і додати в планувальник.
Замість «login». «Password» і «router_ip» підставити відповідно логін, пароль і IP маршрутизатора без лапок і відсотків 🙂
Перезавантаження з Windows
Готова збірка Wget + Bat скрипт для перезавантаження (тільки перевантажує):
скачати tplink_reboot_wget.zip (підходить для більшості моделей Tplink, не тільки WR1042ND)
Перезавантаження з Android
(Спасибі за цей код neolead)
Для андроїд в даному викладі потрібно root. Якщо немає рута. то в кінці checknet замінити на step1
у мене працює в машині як перепідключення, потім перезавантаження wifi після трьох фейлов ...
Спасибо большое за підказку!
я зробив (на основі Вашого) 2 скриптик один для перевірки мережі (кожні 3 хвилини) а другим о першій годині ночі перезавантажувати примусово так як у Білайну треба перепідключатися щоб трафік з 1-8 годин не вважався.
До цього перезавантажував китайський таймер.
працює на ноут з linux для перезавантаження TP-Link MR-3420v2 (3.16.9 Build 150116 Rel.40997n) + ZTE MF823
#! / Bin / sh
WATCHED_IP = "8.8.8.8"
ROUTER_IP = "192.168.1.1"
# MODEM_IP = "192.168.8.1" # Для майбутніх експериментів з вебмордой 4G модему
USERNAME = "name" # Вставити від свого роутера
PASSWORD = "password" # Вставити від свого роутера
# DISPLAY =: 0 gdialog --msgbox "Скрипт працює!" 25 20> / dev / null # Перевірочна рядок
# Перевірочна рядок для того щоб знати що скрипт запустився на етапі налаштування CRONa
# Виведе на екран віконце з написом що скрипт працює
# Перевірка наявності інету зокрема пінг гугла
ping -q -c 1 "$ WATCHED_IP"> / dev / null exit
# Перевірка пінгуєтся чи роутер
ping -q -c 1 "$ ROUTER_IP"> / dev / null || exit