TP-LINK MR3020 v3.2 + 4g modem превращаем в прокси сервер без дополнительного железа и пайки
Это мой текущий участник TP-LINK MR3020 v3.2 + 4g modem 3372h-153 (разлоченый и прошитый)
Привет друзья, наверняка если вы интересуетесь или интересовались темой мобильных прокси попадались на глаза изображения группы устройств основой для которых служит роутер 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 и переходим к настройке адаптера
Название адаптера у вас может быть иным
Указываем в свойствах TCP/IPv4 всё именно так как на скрине
Далее файл из архива прошивки с окончанием в имени файла
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 и видим такую картинку
Интерфейс веб панели
Жмем Войти, переходим в раздел Управление и устанавливаем пароль, сохраняем.
Установка пароля администратора TP-LINK MR3020 v3.2
Запускаем ssh клиент (я использую Bitvise SSH Client) и пытаемся установить связь по протоколу SFTP (мне так проще) но т.к. на роутере сервер не установлен это увы не возможно.
Мне нравиться использовать протокол 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 поэтому для быстрой проверки прокси буду использовать именно браузер этой программы.
Как видим прокси на базе TP-LINK MR3020 v3.2 работает без проблем
А теперь попробуем подключиться на порт 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"
В графе команда прописан путь к нашему скрипту для рестарта питания USB
Поставим галочку Public access чтоб иметь возможность запуска команды ссылку без авторизации по паре логин пароль. Сохраняем и применяем. Теперь в разделе Custom Commands на вкладке Dashboard у нас появилась новая опция и главное что мы можем получить ссылку на нее и использовать в своих задачах.
Ссылка формируется не верно, для её использования необходимо кое что исправить
А вот теперь немного говна... ссылка не рабочая, сейчас и это исправим, косяк в скрипте формирования ссылки.
Снова идем копать файловую систему по адресу: /usr/lib/lua/luci/view/commands.htm
В этом файле код в 120 строке
location.pathname.split(';')[0] + 'command/' +
меняем на этот:
location.pathname.split('luci/')[0] + 'luci/command/' +
После этого ссылка формируется правильно
Небольшой итог:
Мы получили с Вами полноценный прокси сервер с 1 мобильным портом и перезагрузкой USB по ссылке. Возможность работы из локальной сети с любых устройств в этой сети без необходимости собирать отдельный системный блок для управления. В одной локальной сети как вы понимаете таких устройств может быть масса все они могут иметь разные адреса, ссылки, модемы, операторов.
Явные преимущества:
- Огромное кол-во поддерживаемых модемов.
- Ваш модем зависнет до первого ребута USB, не дольше =)
- Энергоэффективность.
Явные недостатки
- Смена IP происходит не менее 10 секунд.
- Для смены пары логин пароль нужно подключаться к терминалу.
Оригинал статьи размещен тут:
https://teletype.in/@seostartpro/mr3020v3_proxy
Ответ на вопрос о стоимости данного решения
ТЫЦ