У меня это реализовано так:
1. Железо и сеть.
В домашней локальной сети находится второй роутер с Openwrt (Smartbox GIGA) к нему через USB-адаптер подключен ноутбучный LTE-модем, модем работает по QMI (об этом ниже).
У этого LTE-роутера свой WWAN, который является Default GW, на нем (роутере) поднят прокси, т.о. для всех устройств из домашней сети действует основной маршрут через провайдера, а те кто прописал прокси в браузере, выходят через WWAN LTE-роутера. Сделан также проброс порта с внешнего IP провайдера(белый адрес) на порт локального прокси, для подключения к прокси извне.
2. Смена IP адреса.
Это реализовано следующим образом: я написал скрипт, который подключается по SSH непосредственно к LTE-роутеру (по локальному адресу или через проброс порта к внешнему IP) и управляет модемом, благодаря чему на самом модеме никаких скриптов нет, а вся магия делается удаленно по SSH.
Сменить IP модема можно двумя способами:
- Простой способ: Командой перезагрузить модем, это занимает 45 сек, бывает что оператор выдает тот же адрес после перезагрузки и приходится
повторять процесс
- Способ сложнее, но быстрый: Необходимо переключить модем в режим HSPA (3G) дождаться пока он поймает сеть и перевести обратно в режим LTE, этот процесс занимает в среднем 6 сек, IP, как и в первом случае может попасться старый, тогда повторяем процесс, все происходит быстро.
Реализовывать программно можно опять же 2мя способами:
1 - с помощью AT-команд, крайне ненадежный способ, с ним намучился, но работает с любым модемом.
2 - через протокол QMI, модем естественно должен быть подключен по QMI. В комплекте с модулем QMI идет утилита uqmi можно использовать ее, например:
uqmi -s -d "/dev/cdc-wdm0" --set-device-operating-mode reset - перезагрузка модема
uqmi -s -d "/dev/cdc-wdm0" --set-network-modes "umts" - переключение сети в 3G