Скрипт віддаленої автоматичної перезавантаження 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