TP-LINK MR3020 v3.2 + 4g modem превращаем в прокси сервер без дополнительного железа и пайки
Привет друзья, наверняка если вы интересуетесь или интересовались темой мобильных прокси попадались на глаза изображения группы устройств основой для которых служит роутер TP-LINK MR3020.
Как правило в этой схеме присутствует управляющий компьютер и не так важно что он собой представляет но он так или иначе есть. В классическом исполнении там установлен и настроен прокси сервер Владимира Дубровина ( 3proxy ) в иных случаях любой другой прокси сервер. В случаях когда мы используем прокси для себя, будем откровенны, нам в процессе работы по сути нет необходимости громоздить сложные пары логин/пароль, следить за сроками жизни прокси кратно сроку аренды и т.п. и куда важнее стабильность, простота и энергоэффективность.
В данной статье мы превратим роутер TP-LINK MR3020 v3.2 купленный в магазине в полноценный прокси сервер, установим 3proxy, заставим делать ребут модема по ссылке. Применим аппаратное управление питанием USB порта роутера.
Часть первая, прошивка TP-LINK MR3020 v3.2
Для перевода роутера TP-LINK MR3020 v 3 со стандартной (заводской) прошивки на систему OpenWrt 19.07.6 (почти полноценный линукс дистрибутив) я буду использовать программу TFTPD а все работы буду проводить в ОС Windows 10. Если ранее уже был установлен OpenWrt то можно обновить файлом из под веб-морды. Важно понимать что указанные в статье софты не подойдут для версии 1 роутера а так-же для роутеров TP-LINK MR3020 v3.* с резистором R5 на плате, впрочем, если вы купили чудо-коробку в магазине то мне по крайней мере за 2 года из новых и приобретаемых в магазине роутеров ни разу такой не попался, вероятнее всего сейчас их не выпускают, корневое отличии от моей версии в том что аппаратное управление питанием USB при наличии резистора R5 потребует небольшого вмешательства с помощью паяльника т.к. иначе работать не будет.
Скачать TFTPD c Яндекс диска (версия для 64битных систем)
Скачать прошивку для TP-LINK MR3020 v 3.2 c Яндекс диска
Подключаем питание роутера, подключаем роутер к сетевой плате разъемами RJ45 и переходим к настройке адаптера
Далее файл из архива прошивки с окончанием в имени файла tftp-recovery.bin переносим в папку с распакованной программой tftpd и переименовываем присвоив имя tp_recovery.bin (для обновления из веб морды при ранее установленной системе OpenWrt используем второй файл *.bin)
Запускаем tftpd и выбираем наш интерфейс с адресом 192.168.0.225
Далее вырубаем питание, и удерживая кнопку на роутере (на всякий уточню что самая толстая лампочка на фасаде роутера это одновременно и кнопка которая нажимается) включаем питание обратно воткнув шнурок. Ждем мгновение и как только софт подхватит интерфейс и начнет прошивку кнопку отпускаем
После завершения заливки прошивки, меняем настройки сетевого адаптера обратно на значения по умолчанию и передергиваем питание. Прошивка завершена. PS наличие в порту или отсутствие в этот момент 4g модема роли ни какой не играет. Можно и так и этак.
Часть вторая, установка 3proxy на TP-LINK MR3020 v3.2
OpenWrt открывает нам возможности работы с терминалом собственно это нам и нужно. Но перед этим давайте установим на систему пароль. Заходим в браузере по адресу роутера 192.168.1.1 и видим такую картинку
Жмем Войти, переходим в раздел Управление и устанавливаем пароль, сохраняем.
Запускаем ssh клиент (я использую Bitvise SSH Client) и пытаемся установить связь по протоколу SFTP (мне так проще) но т.к. на роутере сервер не установлен это увы не возможно.
Давайте установим сервер SFTP на роутер
# обновим менеджер пакетов opkg update # установим sftp сервер opkg install openssh-sftp-server
Далее кидаем пакет 3proxy_0.9.2-1_mipsel_24kc.ipk в папку /root/
# установка 3proxy opkg install /root/3proxy_0.9.2-1_mipsel_24kc.ipk # удаление пакета rm /root/3proxy_0.9.2-1_mipsel_24kc.ipk # открываем конфиг 3proxy nano /etc/3proxy/3proxy.cfg
Разместим там для примера код:
nscache 65536 nserver 8.8.8.8 nserver 1.1.1.1 timeouts 1 5 30 60 180 1800 15 60 config /etc/3proxy/3proxy.cfg monitor /etc/3proxy/3proxy.cfg counter /etc/3proxy/3proxy.3cf users admin:CL:passw users admin1:CL:passw1 include /etc/3proxy/counters include /etc/3proxy/bandlimiters auth strong deny * * 127.0.0.1 flush auth strong allow admin1 proxy -n -p5000 -a socks -n -p6000 -a flush auth strong allow admin admin -p8080
Сохраняем и перезагружаем роутер.
Скачать пакет 3proxy для TP-LINK MR3020 v3.2 с Яндекс диска
Часть третья - проверка работы прокси
Я старинный пользователь ZennoPoster поэтому для быстрой проверки прокси буду использовать именно браузер этой программы.
А теперь попробуем подключиться на порт 6000 (сокс5) и ввести неверные данные для авторизации.
А теперь снова верные, порт менять не будем.
Промежуточный итог, теперь наш роутер это прокси сервер, с автоматическим запуском после загрузки.
Управление питанием порта USB на TP-LINK MR3020 v3.2
В данной прошивке этот вопрос уже решен и для выключения питания достаточно послать команду
echo "0" > /sys/class/gpio/usb-power/value
echo "1" > /sys/class/gpio/usb-power/value
В локальной сети при работе с прокси и отсутствии запрета на доступ к веб морде в конфиге 3proxy это решается легко, идем в веб морду в раздел Custom Commands
echo "0" > /sys/class/gpio/usb-power/value;sleep 3;echo "1" > /sys/class/gpio/usb-power/value;
Данный код выключит питание и через 3 секунды вернет его обратно
Далее создадим задачу на запуск скрипта во вкладке Configure
Название на ваш вкус например как у скрипта "reset"
Поставим галочку Public access чтоб иметь возможность запуска команды ссылку без авторизации по паре логин пароль. Сохраняем и применяем. Теперь в разделе Custom Commands на вкладке Dashboard у нас появилась новая опция и главное что мы можем получить ссылку на нее и использовать в своих задачах.
А вот теперь немного говна... ссылка не рабочая, сейчас и это исправим, косяк в скрипте формирования ссылки.
Снова идем копать файловую систему по адресу: /usr/lib/lua/luci/view/commands.htm
location.pathname.split(';')[0] + 'command/' +
location.pathname.split('luci/')[0] + 'luci/command/' +
После этого ссылка формируется правильно
Мы получили с Вами полноценный прокси сервер с 1 мобильным портом и перезагрузкой USB по ссылке. Возможность работы из локальной сети с любых устройств в этой сети без необходимости собирать отдельный системный блок для управления. В одной локальной сети как вы понимаете таких устройств может быть масса все они могут иметь разные адреса, ссылки, модемы, операторов.
- Огромное кол-во поддерживаемых модемов.
- Ваш модем зависнет до первого ребута USB, не дольше =)
- Энергоэффективность.
В новых статьях я постараюсь подробнее остановиться на вопросах смены ip по таймеру, и иных способах управления сменой ip на модеме. Так-же обсудим вопрос ssh туннелей, и соберем автономный по настоящему мобильный прокси на который для работы будет достаточно подать только питание на базе описанного сегодня конфига. Ссылки с рекламой роутера приводить не буду, донатам буду рад, это будет стимулировать к написанию дополнительных статей.