Приветствую!
Пользуясь мобильным Интернетом от Yota, можно экономить ежемесячно энную сумму за счёт подключения тарифа, на котором запрещена раздача мобильного Интернета. Однако если осуществить определённые манипуляции, то по факту раздача будет работать, однако время от времени всё равно будет возникать выявление факта раздачи. И именно решение этой проблемы и будет приведено в данном материале. Мы создадим скрипт и добавим его в роутер семейства Кинетик.
Принцип действия: скрипт каждые 10 секунд обращается к адресу captive.apple.com и если в ответ происходит переадресация страницы, в адресе которого фигурирует phone-tethering или tablet-tethering, то происходит отправка AT команды перезагрузки модема.
Перезагрузка модема при детекте раздачи интернета Ёта – инструкция по установке скрипта в Кинетик
- На роутере должен быть установлен пакет Entware.
- Откройте на компьютере текстовый редактор с подсветкой синтаксиса, там создайте файл и впишите следующее содержание:
#!/opt/bin/sh while : ; do content=$(wget -O /dev/null http://captive.apple.com 2>&1) if echo $content | grep -qE "(phone-tethering|tablet-tethering)"; then curl -s -d '{"command":"AT+CFUN=0"}' localhost:79/rci/interface/UsbQmi0/tty/send else sleep 10 fi done
Тут необходимо пояснить несколько моментов.
- В примере кода отправляется AT команда AT+CFUN=0 . Для имеющегося на руках модема Sierra EM7455 это лучшая команда на перезагрузку. Однако если в вашем случае оная не будет работать должным образом, то посмотрите AT команды для вашего модема, смотрите команды перезагрузки и управления питанием.
- Также вместо UsbQmi0 может быть UsbLte0. Используемый в вашем случае интерфейс можно подчеркнуть в адресной строке при открытии «Метрики сигнала».
- Сохраните файл с вписанным кодом под именем modem_check.sh Перед сохранением проверьте, чтобы кодировка файла была Unix (LF)
- Откройте консоль Entware. Если забыли к ней пароль, то откройте просто командную строку роутера и там введите команду exec sh и теперь вы сможете вводить необходимые команды.
Последовательно введите команды:
opkg update
opkg install curl
opkg install wget
mkdir /opt/scripts
- Загрузите файл скрипта в только что созданную папку под именем scripts. Это можно сделать, выбрав в веб интерфейсе Кинетика пункт Приложения и далее нажав на диск, где установлен Entware.
- Загрузив файл скрипта, теперь вернитесь в консоль и выполните команду:
chmod +x /opt/scripts/modem_check.sh
- Дабы наш скрипт запускался после включения или перезагрузки роутера, необходимо сделать следующие шаги. Для этого вновь откройте на компьютере текстовый редактор с подсветкой синтаксиса, там создайте файл и впишите следующее содержание:
#!/bin/sh PROG=modem_check.sh case ${1} in start|restart) /opt/scripts/${PROG} & ;; stop) killall ${PROG} ;; esac
- Сохраните файл с вписанным кодом под именем S88modem_check Перед сохранением проверьте, чтобы кодировка файла была Unix (LF)
- Загрузите файл скрипта в папку, что находится по адресу /etc/init.d/ . Это можно сделать, выбрав в веб интерфейсе Кинетика пункт Приложения и далее нажав на диск, где установлен Entware.
- Загрузив файл, теперь вернитесь в консоль и выполните команду:
chmod +x /opt/etc/init.d/S88modem_check
- Пробуем запустить, для этого в консоли вводим:
/opt/etc/init.d/S88modem_check start
и затем остановить
/opt/etc/init.d/S88modem_check stop
Если все работает штатно, т.е. после запуска с ключом start в консоли ввести команду ps w | grep modem_check.sh появится вывод в виде имени файла, а после запуска с ключом stop вывод пустой (кроме grep), то все хорошо и можно попробовать перегрузить роутер при помощи команды reboot.
Готово. Теперь не надо будет вручную перезагружать модем или роутер. Но если кому интересно, то я это делал удалённо отправкой команды interface UsbQmi0 tty send AT+CFUN=0 Подробнее о командах. На компьютере я сделал для этого ярлык, клик по которому который запускал PuTTY с автоматической отправкой команды. А на смартфоне я с помощью приложения JuiceSSH также сделал ярлык быстрой отправки команды (платная версия это позволяет).
Если интересна пошаговая реализация, то напишите об этом в комментариях к материалу, расскажу в подробностях.