Автоматическая перезагрузка модема Keenetic при обнаружении раздачи интернета Yota

Приветствую!

Пользуясь мобильным Интернетом от Yota, можно экономить ежемесячно энную сумму за счёт подключения тарифа, на котором запрещена раздача мобильного Интернета. Однако если осуществить определённые манипуляции, то по факту раздача будет работать, однако время от времени всё равно будет возникать выявление факта раздачи. И именно решение этой проблемы и будет приведено в данном материале. Мы создадим скрипт и добавим его в роутер семейства Кинетик.

Принцип действия: скрипт каждые 10 секунд обращается к адресу captive.apple.com и если в ответ происходит переадресация страницы, в адресе которого фигурирует phone-tethering или tablet-tethering, то происходит отправка AT команды перезагрузки модема.

Image

Перезагрузка модема при детекте раздачи интернета Ёта – инструкция по установке скрипта в Кинетик

  1. На роутере должен быть установлен пакет Entware.
  2. Откройте на компьютере текстовый редактор с подсветкой синтаксиса, там создайте файл и впишите следующее содержание:
    #!/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. Используемый в вашем случае интерфейс можно подчеркнуть в адресной строке при открытии «Метрики сигнала».
  3. Сохраните файл с вписанным кодом под именем modem_check.sh Перед сохранением проверьте, чтобы кодировка файла была Unix (LF)
  4. Откройте консоль Entware. Если забыли к ней пароль, то откройте просто командную строку роутера и там введите команду exec sh и теперь вы сможете вводить необходимые команды.

    Последовательно введите команды:

    Image
    opkg update
    opkg install curl
    opkg install wget
    mkdir /opt/scripts
  5. Загрузите файл скрипта в только что созданную папку под именем scripts. Это можно сделать, выбрав в веб интерфейсе Кинетика пункт Приложения и далее нажав на диск, где установлен Entware.
  6. Загрузив файл скрипта, теперь вернитесь в консоль и выполните команду:
    chmod +x /opt/scripts/modem_check.sh
  7. Дабы наш скрипт запускался после включения или перезагрузки роутера, необходимо сделать следующие шаги. Для этого вновь откройте на компьютере текстовый редактор с подсветкой синтаксиса, там создайте файл и впишите следующее содержание:
    #!/bin/sh
    PROG=modem_check.sh
    case ${1} in
        start|restart)
            /opt/scripts/${PROG} & ;;
        stop)
            killall ${PROG} ;;
    esac
  8. Сохраните файл с вписанным кодом под именем S88modem_check Перед сохранением проверьте, чтобы кодировка файла была Unix (LF)
  9. Загрузите файл скрипта в папку, что находится по адресу /etc/init.d/ . Это можно сделать, выбрав в веб интерфейсе Кинетика пункт Приложения и далее нажав на диск, где установлен Entware.
  10. Загрузив файл, теперь вернитесь в консоль и выполните команду:
    chmod +x /opt/etc/init.d/S88modem_check
  11. Пробуем запустить, для этого в консоли вводим:
    /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 также сделал ярлык быстрой отправки команды (платная версия это позволяет).

Если интересна пошаговая реализация, то напишите об этом в комментариях к материалу, расскажу в подробностях.

Image

Закрыть Мы рады, что смогли помочь Вам в решении поставленной задачи или проблемы.

В свою очередь, Вы тоже можете нам очень помочь.

Просто поделитесь статьей в социальных сетях и мессенджерах с друзьями.

Поделившись результатами труда автора, вы окажете неоценимую помощь как ему самому, так и сайту в целом. Спасибо!

Закрыть Попробуйте найти другие ответы на сайте
...или задайте вопрос в комментариях, где Вам обязательно ответят в кратчайшие сроки.
Опрос: помогла ли вам эта статья?
Да
Нет
 
оцените материал:
Ужасная статья
Так себе статья
Нормальная статья
Хорошая статья
Отличная статья!
(голосов: 1, средний балл: 5,00 из 5)
  • Помогла \ понравилась статья? Поделись ею в соцсетях!

Пожертвование сайту IT-Actual.ru (cбор пожертвований осуществляется через сервис «ЮMoney»)
На что пойдут пожертвования \ реквизиты других платёжных систем
Привет.

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



СБП: +79687316794
Номер банковской карты: 2200 7010 5404 2707 (Т-Банк)
Номер банковской карты: 2204 1201 1997 3887 (ЮMoney)
Кошелёк ЮMoney: 410015361853797
BitCoin: 1DZUZnSdcN6F4YKhf4BcArfQK8vQaRiA93

Оказавшие помощь:
Сергей И. - 500руб
<аноним> - 468руб
<аноним> - 294руб
Мария М. - 300руб
Валерий С. - 420руб
<аноним> - 600руб
Полина В. - 240руб

Деньги пойдут на оплату хостинга, продление домена, администрирование и развитие ресурса. Спасибо.
С уважением, создатель сайта IT-Actual.ru

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

я хочу написать комментарий анонимно (без ввода имени и адреса электронной почты)

Нажимая на кнопку «Отправить комментарий», я даю согласие на обработку персональных данных и принимаю политику конфиденциальности.