Как поднять мобильные прокси 3G/4G на модеме

Поднимаем мобильные прокси на 3G/4G модеме(ах)


Новая инфа по поднятию прокси на более проф. уровне-читайте по ссылке 
https://vk.com/@ipv6proxy-podnimaem-mobilnye-proksi


мобильные прокси

Всем привет. Думаю моя новая статья Вам понравится и вы её оцените. Долго решался её написать, но всё таки , руки дошли. Темка актуальная и набирает обороты.
Появляются новые магазинчики по продаже мобильных прокси. Но как правило их единицы. И pool адресов не так широк по гео локациям как хотелось бы, да и мы всегда хотим всё таки свое решение.

Мы сейчас говорим о домашнем решении, которое подойдёт для бытовых нужд ))) Если у вас завалялся модемчик или парочку.

Мы не будем сравнивать свой способ поднятия с проф решениями, которые использую магазы по продаже мобильных прокси. У них промышленные радио терминалы, антенные блоки по городам , серверы в Дата центрах ,а так же лицензии на ПО и т.д.

Одним из таких магазинов является airsocks.in

Не буду отрицать то что моё решение не идеальное, но это первый  шаг в этом направлении. Дальше будет больше. Начнём с 1 модема. Подключим к ПК и поднимем на нём прокси, который можно будет юзать из локальной сети вместе с вашим основным инетом. Так же есть решение использовать мобильные прокси удалённо, этот способ тоже рассмотрим в продолжении статьи. Настроим рекконнект модема и смену IP адреса на свистке.

Для облегчения решения будем поднимать мобильные прокси на виртуальной машине с установленной ОС Centos7, а не на реальном железе, так как у многих его просто нет (подойдёт и старый нетбук-уже практиковал такое решение).

Рассмотрим детально процесс установки Centos7 на VirtualBox , настройку модема, установку прокси и настройку маршрутизации .

Что касается модемов. Тут точно не могу сказать подойдёт ли ваш. Я использую те модемы, которые при подключение создают новый интерфейс. В процессе мы дойдём до этого шага и поймёте подойдёт ли ваш модем для этих целей.  Я использую модемы модели Мегафон М-150-1, Мегафон М-150-2, МТС 423S и т.п.

Установка Centos7 на VirtualBox

Для этих целей я использую образ iso минимальный пакет. Скачайте его по ссылке здесь или по ссылки с яндекс диска. VirtualBox качайте с оф сайта.

Запускаем VirtualBox  и создаём новую вирт машину. Указываем любое имя а так же выбираем тип и версию как на скрине ниже

Указываем объём ОЗУ , в зависимости сколько у вас , но 1024 Мб вполне хватит

Создаём новый вирт жёский диск с 4-8 Г памяти.

Выбираем тип жёсткого диска

Динамический вирт жёсткий диск

И создаём вирт жесткий диск.

Настроим нашу вирт машину.

И выставляем все настройки как на скринах ниже

Сохраняем изменения и запускаем вирт машину.

Устанавливаем Linux

Чтобы освободить мышку от вирт машины, нажмите правый Ctrl

Подтвердите автоматическое разбиение дисков, для этого выберете  «Расположение установки» и нажмите готово.

Перейдите в «Сеть и имя узла»

Включите интерфейс , в моём случае это wi-fi. Если вы подключениы к ПК витой парой то там будет другой интерфейс. В случае подключения к ПК провода от оптики , мобильные прокси будут доступны извне , а не только локально.

Переходим наконец то к установки. Думаю вы уже наигрались правым Ctrl-ом )))

Нажимаем «Начать установку»

После создадите пароль к Root пользователю, дождётесь полной установки и перезагрузите вирт машину.

Настройка виртуальной машины и поднятие прокси

Запускаем наш виртуальный  сервер с установленной ОС Centos7.

Вводим имя пользователя «root»

Тапаем Enter и вводим пароль от root что задавали ранее (ввод пароля невиден, так что не пугайтесь).

Всё мы залогинились. Первым делом посмотрим наши интерфейсы и наши ip адреса. Для этого вводим команду

ip a

Видим свой интерфейс enp0s8  и его ip , в моём случае локальный 192.168.0.104

Если у вас возникли проблемы и нет ip адреса , то проверьте раздел настройки вирт машины «сеть» и перезагрузите вирт машину.

Теперь мы можем залогинится к своему серверу по ssh со своего компа , узнав ip сервера. Я использую Bitvise SSH клиент.

Открываем Bitvise SSH и вводим ip 192.168.0.104, порт ssh 22 по умолчанию , логин root и пароль что вы уже знаете.

Логинимся !

Сворачиваем лишние окна. Нам нужна командная строка от сервера.

Первая команда- обновляем систему

yum update

Enter, если требует подтверждение действия, то набираем «y» и жмём ещё раз Enter.

Подключаем репозитории и устанавливаем необходимые дополнения

yum -y install wget nano minicom epel-release net-tools

Отключаем фаервол

systemctl stop firewalld && systemctl disable firewalld

Обязательная утилита для сборки программ

yum -y groupinstall "Development Tools"

Всё самое необходимое установили. Переходим к самому интересному — подключению 3g/4g модема к ПК и проброс USB на наш вирт сервер.

Подключаем модем к ПК, обязательно с сим картой и активированным тарифом под инет. После подключения переходим в виртуал бокс к настройкам нашей вирт машины. Переходим к настройкам USB и добавляем наш модем , в моём случае у меня хайвей и сохраняем.

Передёргиваем наш модем, чтобы он пробросился именно на вирт машину.

Ждём немного пока модем загрузится и проверяем командой

ip a

появился ли новый интерфейс.

Как видим у меня появился новый интерфейс wwp0s6u1i2

В данный момент модем мигает синим индикатором, что говорит о том что 3g сигнал есть, но пока модем не подключился к сети. Так же у модема ещё нет ip адреса. Мы это исправим.

Для начала подключимся к сети через свисток. Для этого сначала посмотрим какие устройства определились на этом USB.

Вводим команду

ls /dev/ttyUSB*

И видим что у меня определилось 2 устройства ttyUSB0 ttyUSB1. Какое то из них отвечает за 3g модем . Нужно определить какое именно. В большинстве случаев ttyUSB0

Для этого попробуем подключиться через устройство ttyUSB0

echo -en 'AT^NDISDUP=1,1,"internet"\r\n' > /dev/ttyUSB0

где, «internet» это точка доступа оператора мегафон.

Если после команды индикатор модема мигает то пробуем

echo -en 'AT^NDISDUP=1,1,"internet"\r\n' > /dev/ttyUSB1

В моём случае модем подключился по ttyUSB1 и индикатор загорелся.

Узнаем наш ip

wget -qO- eth0.me

Видим что ip на данный момент от нашего основного интернета что раздаётся по локальной сети.

Для того чтобы инет был от модема нам нужно поднять интерфейс от модема и присвоить ему ip. Можно воспользоваться dhcp-клиентом, но мы лучше пропишем получение ip адреса по  dhcp в настройках интерфейса.

Создаём интерфейс через редактор nano , nano /etc/sysconfig/network-scripts/ifcfg-*****, вместо ***** указываем имя вашего интерфейса от 3g модема.

nano /etc/sysconfig/network-scripts/ifcfg-wwp0s6u1i2

Я решил модем воткнуть не напрямую к ПК, а через активный USB хаб с доп питанием от розетки.

Вот так выглядит у меня модемы подключённые к хабу.

Именно с доп питанием от 220В, так как при подключении большого кол-ва модемов через обычный хаб , модемы будут отваливаться. Им просто не будет хватать питания. Так же лучше подключать хаб именно в тот USB который ближе всего расположен к сетевой карте, на нетбуках это usb порт рядом со входом Ethernet, куда вы подключаете провод от интеренета.

Думаю подойдёт любой usb хаб с активным питанием. А вот мой :

Ладно , отвлеклись немного мы. Сейчас подключаем 1 модем и нам он не пригодится пока.

В дальнейшем , при подключении 2-х и более модемов, он нам пригодится.

И так открыли новый тестовый док nano /etc/sysconfig/network-scripts/ifcfg-wwp0s6u1i2, в который нужно прописать следующее:

DEVICE="wwp0s6u1i2"
NAME="wwp0s6u1i2"
TYPE="Ethernet"
ONBOOT="no"
BOOTPROTO="dhcp"
HWADDR="XX:XX:XX:XX:XX:XX"
NM_CONTROLLED="no"
NOZEROCONF="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="no"
ZONE="external"
PEERDNS="yes"

Поменяйте значения DEVICE, NAME, HWADDR на свои.

DEVICE, NAME вы уже знаете, а вот

HWADDR (мак адрес) можете узнать из команды

ip a

Вот что получилось у меня:

Сохраняем док, нажатием кнопок последовательно Ctrl+O, Enter, Ctrl+X

Поднимаем наш интерфейс. Не забываем , что модем уже подключился к сети и горит постоянно индикатор на модеме.

ifup wwp0s6u1i2

Проверяем и смотрим ip на модеме

ifconfig

И видим то что интерфейс получил ip адрес

10.215.198.64 это наш локальный ip (серый) от NAT сети оператора Мегафон.

Мы получили серый ip от оператора.

Проверим наш белый ip , который виден всем. Тот что мы можем получить на сайте 2ip.

wget -qO- eth0.me

И видим что ip поменялся. Мы получаем наш ip от оператора Мегафон.

Немного отклонюсь от темы и расскажу почему мобильные прокси стабильны к баннам со стороны соц сетей. Ответ прост. Если вы загуглите что такое NAT, то узнаете почему))) . Я скажу своими словами.

Так как устройств много на планете земля и каждому нужен свой ip, придумали такую технологию как NAT. Как раз серый ip , что мы получили в интерфейсе это и есть ip промежуточного звена (маршрутизатора оператора) , к которому в свою очередь подключаются очень много мобильных устройств. И уже каждому устройству присваивается белый ip , что мы видим, при переходе на сайт например 2ip. Как вы уже догадались соц сети не могут заблокировать именно ip NAT, тем самым поставив блок 1000000 пользователей.

Поехали дальше. 

Для поднятия 1 прокси на 1 модеме 3g не нужно настраивать маршрутизацию. А вот если мы подключим 2 и более модемов на 1 сервер, то вот тут уже нам понадобится создавать таблицы маршрутизации. Мы это рассмотрим в следующей моей статье.

Установка прокси сервера 3Proxy

Устанавливаем прокси сервер 3proxy. Откроем FTP клиент, которое свернули в начале и перенесём на сервер в директорию root архив 3proxy

Разархивируем 3proxy.gz

tar zxfv 3proxy.gz

Открываем директорию 3proxy-0.8.8

cd 3proxy-0.8.8/

Компилируем

make -f Makefile.Linux

Создаём директорию

mkdir /usr/local/3proxy

Копируем бинарник

cp src/3proxy /usr/local/3proxy/

Делаем полные права пользователя

chmod +x /usr/local/3proxy/3proxy

Создаём главный конфигуратор 3proxy.cfg

nano /usr/local/3proxy/3proxy.cfg

И вставляем следующее содержимое:

monitor /usr/local/3proxy/3proxy.cfg

daemon
timeouts 1 5 30 60 180 1800 15 60
maxconn 5000
nscache 65535
log /dev/null
flush
proxy -n -a -p8000 -i192.168.0.104 -e100.67.106.102

где 192.168.0.104 это ip адрес от вашей локальной сети или оптоволокна, а 100.67.106.102 это ip от оператора Мегафон, 8000 это порт (можете указать тут любой от 2000 до 65000)

Строчка monitor /usr/local/3proxy/3proxy.cfg будет подхватывать наши изменения на литу , если их будем вносить, что очень удобно. Думаю адреса ip вы поняли где брать ))
Ещё раз покажу скрин со своими ip (не смотрите на  о что у меня разные ip при написании статьи, я не однократно ребутал сервер, дабы всё проработать)

Надеюсь вы уже вкурили и понимаете что да как.

Осталось запустить наши прокси командой:

/usr/local/3proxy/3proxy /usr/local/3proxy/3proxy.cfg

Можно проверять ваш прокси на валидность. Для этого воспользуемся браузером мазила. В настройках забиваем ip и порт.

Переходим на сайт 2ip

Вот что отобразилось у меня

Проверим на определение прокси. Жмём на Прокси: не используется «уточнить» на сайте 2ip

При этом конечно же должен быть отключён банально flash плеер

И видим прекрасную картину . Всё как и положено, даже DNS от мегафона. Временные зоны определяются таким образом и на обычном подключении через 3g модем.

На этом статью подвожу к завершению. В следующей статье рассмотрим процесс рекконекта модема, подгрузу и влючение прокси автоматом при загрузке сервера. А так же рассмотрим подключение 2-х и более модемов на 1 сервер и поднятие на них прокси 3G. На этом всем пока, пока!

Реконнект 3g/4g модема и смена динамического ip

Для того чтобы менялся Ip адрес на модеме, нужно отключить соединение и включить. При этом поменяется белый ip адрес, что по мне не акти какое решение. И я перезагружаю модем полностью, можно по питанию рубануть модем, отключив питание на шине. Но мне это показалось немного геморойно. И я использую мне понравившиеся AT команды.

Для того чтобы ребутнуть модем, введите следующую команду:

echo -e "AT^RESET\r\n" >/dev/ttyUSB1

При этом модем перезагрузится, время перезагрузки составляет 20 секунд, что вполне годно для работы.

После нужно заново подключиться к сети с модема и поднять интерфейс. Так же поменять ip адрес в конфиге 3proxy.

Чтобы не делать это всё вручную напишем простой bash скрипт.

nano proksik3g.sh

содержимое скрипта

#!/bin/bash

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
echo -e "AT^RESET\r\n" >/dev/ttyUSB1
killall 3proxy
sleep 20
echo -en 'AT^NDISDUP=1,1,"internet"\r\n' > /dev/ttyUSB1
ifdown wwp0s6u1i2
ifup wwp0s6u1i2
IP=`ip addr list wwp0s6u1i2 | grep " inet " | head -n 1 | cut -d " " -f 6 | cut -d / -f 1`
echo "" > /usr/local/3proxy/3proxy.cfg
cat > /usr/local/3proxy/3proxy.cfg << END
monitor /usr/local/3proxy/3proxy.cfg

daemon
timeouts 1 5 30 60 180 1800 15 60
maxconn 5000
nscache 65535
log /dev/null
flush
proxy -n -a -p8000 -i192.168.0.104 -e$IP
END
/usr/local/3proxy/3proxy /usr/local/3proxy/3proxy.cfg

В данном скрипте wwp0s6u1i2 это название интерфейса. IP получаем автоматически , командой  grep

Можете скачать скрипт по ссылке

Закачайте скрипт на сервер в паку root

и предоставьте права на выполнение

chmod +x proksik3g.sh

И кстати установите psmisc для того чтобы срабатывала команда killall 3proxy, что находится в скрипте

yum install psmisc

После уже можете запустить скрипт для реконнекта модема

bash proksik3g.sh

Если вы сделали всё правильно, то модем перезагрузится и поменяется ip.

В продолжении статьи мы рассмотрим подключение 2-го модема и поднятие прокси на 2-х модемов на 1 сервере.

У кого возникли вопросы . Можете спросить в комментарии. Всем удачи!

Управление реконнектом 3g/4g модема через зеннопостер

В продолжении статьи решил написать в начале о процессе автоматизации смены ip на модеме по средствам маленького шаблона зеннопостера на сишарпе.

Чтобы в процессе выполнения какого либо проекта , в определённое время у вас происходила смена ip адреса.

Что делает шаблон- он подключается по SSH к нашему виртуальному серверу и запускает bash скрипт для реконнекта модема. Как вы уже догадались всё очень просто.

Шаблон состоит из 1 блока С#

Этот блок можете вставить куда угодно в вашем проекте.

Из входящих настроек всего 3 переменные: ip вирт сервера, имя пользователя root и пароль от вирт сервера.

Скачать шаблон  можете по ссылке.

Вскоре сниму видео обзор по работе шаблона , а так же продемонстрирую смену ip.

Уже скоро буду подключать 2-ва модема и более. Будьте на связи!

Видео о работе шаблона по автоматизации реконнекта модема и смена ip адреса

Давненько не писал продолжение статьи. Сегодня хочу Вам рассказать о том как сделать доступ к мобильным проксям удалённо. Например Вы сидите на работе, а модем у вас дома и надо использовать его удалённо, хоть из другого города.

Немного поигравшись с вирт машиной- всё таки решил поднимать моб прокси на отдельном сервер с Linux на борту (Centos7). Завалялся старый нетбук. Почему бы им и не воспользоваться. С вирт машиной возникают проблемы при пробрасывании USB, не всегда получается пробросить несколько модемов. Другое дело сервер на базе компьютера , в данном случае нетбука.

Как вы уже поняли на небуке стоит Centos7. К нетбуку подключен инет по проводу от провайдера Ростелеком  с динамическим ip и что самое главное нет NAT, т.е наш ip в настройках сети совпадает с тем ip что отображается на сайте 2ip.ru например.

Так же к нетбуку подключён разлоченный 4g модем с симкой от мегафона.

Забегу немного вперёд и скажу как устроен механизм удалённого доступа к моб ip адресу.

Т.к ip мобильного оператора за NAT -ом , то он не доступен к подключению из инета. Соответственно подключаемся мы к ip от провайдера Ростелеком, (в моём случае) это будет входящее соединение, а исходящее соединение уже по ip от Мегафона.

Мы подняли ip на интерфейсе wwan1 от Мегафона. Так же у нас имеется интерфейс enp7s0 от проводного инета и интерфейс wlp5s0 от wi-fi

ip как видим уже доступны на интерфейсах.

Так как у меня дома стоит wi-fi роутер, который раздаёт инет всем устройством, то основной провод от инета Ростелеком подключен к самому роутеру WAN. От роутера уже выходит через LAN 2 провода , один на мой стационарный комп, другой уже к нетбуку.

Чтобы мы получили не локальный ip адрес на нетбуке нужно в настройках роутера пробросить мост на том LAN где подключен сам нетбук.

У меня это выглядит вот так

Можно воспользоваться конечно же свитчем. Кому как проще.

Так мы получили тем самым ip адрес на нетбуке , такой же если бы мы подключили провод от провайдера непосредственно в сам нетбук. Но так как мен нужен wi-fi то я пробросил мост на LAN4.

где

lAN1 -мой стационарный комп

LAN4- сервер linux на базе нетбука

WAN- сам инет от оператора Ростелеком

Немного разобрались как и что подключено.

Теперь настало время настройки маршрутизации. Чтобы наша схема работала и у нас был доступ к моб прокси из вне — нам нужно настроить так чтобы на сервере было 2 активных подключения. Основной и дополнительный.

Для этого создаём таблицу маршрутизации

echo "101 T1" >> /etc/iproute2/rt_tables

Теперь нам нужно настроить саму маршрутицацию

ip route add $NETWORK dev wwan1 src $IP table T1
ip route add default via $DEFAULT table T1
ip route add $NETWORK dev wwan1 src $IP
ip rule add from $IP table T1

, где

NETWORK — сеть от оператора мегафон

IP — сам адрес от мегафон

DEFAULT -шлюз от мегафон

Для того чтобы нам вручную после реконета  каждый раз не узнавать эти значения и по новой не настраивать маршрутизацию , я написал маленький bash скрипт 4G.sh, расположенный в директории root

#!/bin/bash
# Copyright
# Boris O. Baktashev
# https://kak-podnyat-proksi-ipv6.ru
# 2016

echo -e "AT^RESET\r\n" >/dev/ttyUSB1 #рестарт модема 4g

killall 3proxy #убиваем все процессы 3proxy
sleep 20 #ждём 20 секунд, пока загрузится модем
echo -en 'AT^NDISDUP=1,1,"internet"\r\n' > /dev/ttyUSB1 #подключаемся к интеренету от Мегафон
ifdown wwan1 #выключаем интерфейс от 4G модема
ifup wwan1 #включаем интерфейс от 4G модема

IP=`ip addr list wwan1 | grep " inet " | head -n 1 | cut -d " " -f 6 | cut -d / -f 1` #узнаём адрес мегафон
DEFAULT=`ip route list table unspec | grep "default via" | head -n 1 | cut -d " " -f 3` #узнаём шлюз мегафон
NETWORK=`ip route list table unspec | grep "dev wwan1 proto kernel scope link src" | head -n 1 | cut -d " " -f 1 | cut -d / -f 1` # узнаём адрес сети мегафон

dhclient -r enp7s0 #отключаем интерфейс от проводного интернета
 dhclient enp7s0 #включаем интерфейс от проводного интернета

killall noip2 #убиваем процесс динамического ДНС
/usr/local/bin/noip2 #запускаем динамич ДНС

IPv4=`ip addr list enp7s0 | grep " inet " | head -n 1 | cut -d " " -f 6 | cut -d / -f 1` #узнаём адрес от провайдера проводного интернета

ip route add $NETWORK dev wwan1 src $IP table T1
ip route add default via $DEFAULT table T1
ip route add $NETWORK dev wwan1 src $IP
ip rule add from $IP table T1

echo "" > /etc/3proxy.cfg #чистием конфиг 3proxy
cat > /etc/3proxy.cfg << END #создаём новый конфиг 3proxy
daemon
timeouts 1 5 30 60 180 1800 15 60
maxconn 5000
nscache 65535
log /dev/null
proxy -n -a -p8000 -i$IPv4 -e$IP
END

/usr/bin/3proxy /etc/3proxy.cfg #запускаем прокси

При запуске скрипта командой

bash 4G.sh

Будет произведён рекконект  модема, настройка маршрутизации и поднятие мобильного прокси на новом ip от мегафон.

Т.к у нас ip от провайдера ростелеком динамический, то соответственно он также меняется.

Для этого я подключил Динамический ДНС от noip.com

Что даёт нам  DDNS- в независимости от нашего ip адреса который будет меняться, мы сможем обращаться к нему по домену. Т.е. Поменялся ip и нам не нужно его даже узнавать. Потому что можем обратиться к домену , который уже получил информацию о нашем новом ip адресе. Тем самым у нас имеется статический домен.

Как настроить DDNS на Linux в этой статье я не буду рассматривать.

Так как подключение от 4G модема не стабильно, нам нужно написать скрипт который будет проверять на наличие интренета на интерфесе от мегафона и в том случае если нет сигнала — поднимать инет и производить все настройки и поднятие прокси. В дальнейшем мы положим скрипт в крон , который будет проверять доступность инета со свистка каждые 5 минут.

Для этого пишем скрипт watchdog, взятый за основу с сайта habrahabr.ru и немного видоизмененный

#!/bin/bash

export PATH="$PATH:/usr/sbin"
SN="$(basename "$0")"
IP=`ip addr list wwan1 | grep " inet " | head -n 1 | cut -d " " -f 6 | cut -d / -f 1`

function print_help() {
 printf "\n"
 printf "Использование: %s options...\n" "$SN"
 printf "Параметры:\n"
 printf " -s Проверяемый ресурс.\n"
 printf " -i Имя сетевого интерфейса.\n"
 printf " -d Шина и порт модема lsusb -t.\n"
 printf " -n Число ошибочных пингов.\n"
 printf " -m Маркер модема, из команды lsusb.\n"
 printf " -h Справка.\n"
 printf "\n"
}

# Если скрипт запущен без аргументов, открываем справку.
if [[ $# = 0 ]]; then
 print_help && exit 1
fi
while getopts ":s:i:d:n:m:h" opt ;
do
 case $opt in
 s) SITE=$OPTARG;
 ;;
 i) IF=$OPTARG;
 ;;
 d) DEV=$OPTARG;
 ;;
 n) EP=$OPTARG;
 ;;
 m) MM=$OPTARG;
 ;;
 h) print_help
 exit 1
 ;;
 *) printf "Неправильный параметр\n";
 printf "Для вызова справки запустите %s -h\n" "$SN";
 exit 1
 ;;
 esac
done

if [[ "$SITE" == "" ]] || [[ "$IF" == "" ]] || [[ "$DEV" == "" ]] || [[ "$EP" == "" ]] || [[ "$MM" == "" ]] ; then
 printf "\n"
 printf "Одна или несколько опций не указаны.\n"
 printf "Для справки наберите: %s -h\n" "$SN"
 printf "\n"
 exit 1
fi

M="$(lsusb | grep -w "$MM")" #строка модема из lsusb



if [[ "$M" != "" ]]; then #если модем выбран, можно проверять пинги

if grep -w -q "$IF" /proc/net/dev; then #проверяем наличие сетевого интерфейса
 printf "\n"
 printf "Проверка доступности %s через интерфейс %s\n" "$SITE" "$IF"
 printf "\n"
 if [[ "$EP" -ge 6 ]]; then
 printf "Число ошибочных пингов должно быть меньше или равно 5\n"
 exit 1
 else
 printf "Делаем пинги...\n"
 flag="0"
 for i in {1..5}; do #делаем 5 пингов до сервера
 timeout -k 2 -s TERM 16 ping -w 14 -s 8 -c 1 -I "$IP" "$SITE" || flag=$((flag+1)) && printf "пинг:%s/5 (ошибок:%s)\n" "$i" "$flag" #пинг не прошел - инкрементируем счетчик
 if (("$flag" >= "$EP")); then
 break
 else
 read -r -t 1 > /dev/null
 fi
 done
 printf "потерь пакетов: %s из %s\n" "$flag" "$i"
 printf "\n"

if (("$flag" >= "$EP")); then #если потерь пакетов больше 2х
 M="$(lsusb | grep "$MM")" #на всякий случай снова глянем - вдруг модем выдернули
 printf "Будет сброшен модем:\n"
 ifdown "$IF" #деактивируем интерфейс
 bash 4G.sh
 fi
 fi
 fi
 else
 printf "\n"
 printf "Интерфейс %s не существует\n" "$IF"
 printf "\n"
 exit 1
 fi
else
 printf "Модем %s не найден.\n" "$MM"
fi

Ложем скрипт в крон

crontab -e
*/5 * * * * /usr/local/bin/watchdog -m Huawei -s ya.ru -i wwan1 -n 3 -d 1-1 > /dev/null 2>&1

Скрипт каждые 5 минут будет проверять наличие соединения и если его нет — производить все настройки.

а наш прокси в не зависимости от ip будет доступен по адресу

***.sytes.net:8000 (в нашем случае порт 8000, прокси без авторизации)

Если нам нужен рекконект модема, то скрипт 4G.sh так же можете положить в крон.

Рекконект можема занимает по времени ориентировочно 40 сек.

Проверяем скорость и пинг нашего моб прокси.

На этом пока всё. ПОКА ВСЁ…)

Поделиться в соц. сетях

Опубликовать в Facebook
Опубликовать в Google Buzz
Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс

Как поднять мобильные прокси 3G/4G на модеме: 135 комментариев

  1. Я правильно понял, для каждого рекконекта нам нужно посылать команду для запуска скрипта — bash proksik3g.sh ? Как это сделать из зеннопостера?

    Если внешний айпи «полустатический», меняется примерно раз в сутки, можно как-то сделать доступ к прокси из вне?

    1. да, всё верно для каждого реконнекта запускать скрипт. можно прописать на самом сервере в кроне задачу для выполнения скрипта через определённое время . Как делать реконнект в нужное время в шаблонах зеннопостера я рассмотрю в продолжении статьи. Так же доступ из вне к локальному входящему ip можно осуществить при помощи DNS или ещё проще- использовать прямое подключение вашего компа с интернетом по проводу. Он будет доступен из вне, как и то соединение 3g, который проксируем.

  2. Если Вам не сложно, напишите как добавить крон на сервер и как задать ему задачу на запуск bash скрипта раз в 10 минут.

    1. Добавить задачу в cron, для этого от root выполнить на сервере:
      crontab -e
      и добавить в конец строку
      */10 * * * * /root/proksik3g.sh
      Для того чтобы cron открылся через, нам понравившийся редактор nano, выполните команду
      export EDITOR=nano

  3. Спасибо,очень познавательно. А как поднять больше моб. прокси? Для той же работы в соц.сетях,если например 100 аккаунтов

    1. Пожалуйста. Для поднятия большого кол-ва моб прокси нужны модемы. 1 модем 1 моб прокси с динамич ip, сегодня напишу в продолжении стать -как поднять несколько моб проксей на 1 сервере. Подключим 2 модема и поднимем на них прокси.

    2. У меня пачка 70 аккаунтов прекрасно себя чувствует на одном свистке с перезагрузкой через 10 мин, аккаунты работают в 4 потока. Цикл работы одного аккаунта 12-15 минут.

      1. Как раз в этом и прелесть использования мобильных прокси. Но для масштабирования нужен не 1 свисток, а хотя бы шт 5. Знаю тоже людей кто откручивает на 1 моб прокси по 100 акков и более в инсте. Пока тема живёт.

  4. Спасибо за статью. Полезная инфа! Сделал всё по иснтрукции- прокси поднял, всё работает. Жду информации -как поднять прокси на нескольких модемах одновременно.

    1. Рад помочь. Да. Я скоро напишу о том как подключить несколько модемов, настроить маршрутизацию на сервере и поднять прокси на 2-х и более модемах. Следите за обновлением статьи.

    1. Немного отвлёкся. Думаю скоро напишу продолжение )
      Написал продолжение статьи, о том как поднять моб прокси и пользоваться им удалённо.

  5. Довольно интересный вариант поднятия прокси :) Не для промышленных, конечно, масштабов,но всё же

    1. Да -тут о масштабе разговора и нет )
      Так чисто для домашнего использования. Можно поднять модемов 5 ))

  6. Доброго время суток!
    Во первых спасибо что поделился такой хорошей темой!
    Можешь подсказать, ну, или, если не сложно сделать статью с подключением не через свисток, а через мобилу подключенную к ПК как Интернет-модем
    А то у меня проблема с командой:
    ls /dev/ttyUSB*
    ls: невозможно получить доступ к /dev/ttyUSB*: Нет такого файла или каталога

    и с:
    /usr/local/3proxy/3proxy /usr/local/3proxy/3proxy.cfg
    [line 5] Warning: current open file ulimits are too low (cur: 1024/max: 4096), maxconn requires at least 10000 for every running service. Configure ulimits according to system documentation

    За ранее благодарен!

    1. Приветствую. Спасибо за отзыв.
      вывод команды ls: невозможно получить доступ к /dev/ttyUSB*: Нет такого файла или каталога
      говорит о том что ваш модем сервер не видит и он по большей степени не подходит

    2. Здравствуйте! Вы решили проблему? У меня аналогичные две проблемы. Но больше, скорее всего, интересует второй вопрос :)

  7. Записал новое видео на тему моб прокси. И пришёл к выводу что один мобильный прокси должен базироваться 1 сервере (виртуальный или физический)
    Ссылка на видео https://youtu.be/I6z77NST1-U
    Приятного просмотра )

    1. Видео посмотрел. Очень полезно. Скачал ваш образ виртуалки. Есть только нюанс. Войти как в него? Понятно, что логин root, а пароль какой? А вот свои прокси поднять не удалось на собственно установленной виртуалке. Затык произошел на стадии установки 3proxy. Вылезли два предупреждения при сборке и все, дальше начались прекращения выполнения команд. Попробую разобраться с этим сам. А вот пароль от вашей сборки виртуальной машины был бы кстати. По ходу экспериментов снял блокировку с 4G-модема от МТС 829F. Он такой же как мегафоновский М 150-2, правда, с бубнами после двух перепрошивок разлочился. Но теперь я знаю, что покупать надо. Вам большое спасибо. Раскрыли мне глаза на мобильные прокси. Думаю, не только мне.

      1. Приветствую. Извиняюсь ) забыл указать пароль root от ssh. Пароль «12345»
        На сервере установлены все необходимые дистрибутивы, в том числе и 3proxy. Единственное что вам нужно будет поменять это настройки сети. На сомом деле возможно подойдут многие модели модемов. Главное — чтобы определялись они в linux как интерфейсы.
        По началу пробовал на одном сервере поднимать несколько модемов, но столкнулся с проблемой DNS. Светился DNS провайдера. А использовать публичные DNS как то не комильфо. Решил оставить вариант — один сервер — один модем — один мобильный прокси.
        Вся суть поднятия мобильных прокси сводится к раздаче инета от свистка в локальную сеть на определённый порт!

  8. Привет, после запуска скрипта proksik3g.sh появляется сообщение

    Определяется информация IP для wwp0s6u1i2… готово.
    proksik3g.sh: line 20: warning: here-document at line 9 delimited by end-of-file (wanted `END’)

    И прокси не работает. Всё делаю по инструкции, 150 раз всё перепроверил. До запуска этого скрипта прокси поднимается и всё работает.

  9. Привет ещё раз. Я свою проблему решил. всё дело в том, что в коде для срипта proksik3g.sh нужно убрать пробелы в начале всех строк. И ещё, там в комментариях спрашивали про ошибку [line 5] Warning: current open file ulimits are too low…. Чтобы её не было, нужно ввести команду ulimit -n 10000

    Спасибо за мануал, очень полезно )

    1. привет. Рад что разобрались. Можно ввести
      ulimit -n 600000
      ulimit -u 600000
      или увеличить лимиты на сервере путём прописывания строк в конце файла limits.conf и последующей перезагрузки сервера
      Открыть док
      nano /etc/security/limits.conf
      И прописать следующее
      # End of file
      root hard nofile 250000
      root soft nofile 500000
      nobody hard nofile 250000
      nobody soft nofile 500000
      * hard nofile 250000
      * soft nofile 500000
      root hard nproc 20000
      root soft nproc 40000
      nobody hard nproc 20000
      nobody soft nproc 40000
      * hard nproc 20000
      * soft nproc 4000

  10. Здравствуйте! Подскажите, а где инструкция, как поднять более 1 модема?
    И подскажите зенолаб нужен платный?
    Или не подойдет ли Лайт версия?

    1. Привет. Зенка вообще может не пригодится по сути. можно просто в кроне прописать перезагрузку модема. По поводу подключения более 1 модема на 1 вирт машину- Пришёл к выводу что лучше подключать 1 модем на 1 вирт машину- меньше мороки с маршрутизацией, а так же DNS палится.

  11. Подскажите пож-та, с чем может связан разрыв соединения до истечения 10 минут?

  12. Скажите, если с Украины через РУ симку — будут УА прокси или РУ?
    Вообще возможно в УА поднять РУ прокси?

  13. Добрый день.
    В настройках «Носители», Образ оптического диска у Вас стоит: CentOS-7-x64.. У меня такого образа нет. Скажите как найти или создать этот образ?
    Спасибо Вам за статью!

  14. Добрый день.
    В настройках «Носители», Образ оптического диска у Вас стоит: CentOS-7-x64.. У меня такого образа нет. Скажите как найти или создать этот образ?
    Спасибо Вам за статью!

  15. на этом хабе больше 5 модемов крутил (именно в работе) больше 1 дня? не отваливается?

    1. нет. не крутил. вообще не кручу ))) по проксям чисто. думаю отваливаться будут в любом случае, но это исправляется скриптом , который в случае исчезновения пингов запускает скрипт для ребута соединения и поднятия прокси повторно

  16. Добрый день. Как определить, подходит модем или нет? Нахожусь в другой стране, поэтому вопрос при выборе модема особо критичен! Можно ли будет перепрошить неподходящий модем или как-то сделать его подходящим иным способом?

    1. Приветствую. Берёте модем и подключаете к linux. если появляется интерфейс новый от модема. то подходит если не появляется то соответсвенно не подходит. Перепрошивать не пробовал модемы. тут не подскажу.

  17. Помогите разобраться новичку. Дошел до этапа создания Bash-скрипта для перезагрузки модема, и на том все веселье закончилось. МОдем Хуавей от Киевстара, инет есть, прокси был рабочим после запуска 3proxy. НО потом после перезагрузки модема скриптом (модем перегружается, о чем свидетельствует мигание индикатора, а потом его постоянное свечение) прокси перестает работать. Все делал по инструкции. Ошибок никаких не получал

    1. думаю дело в скрипте. проверьте правильно ли скрипт формирует конфиг 3proxy и запускает ли процесс прокси.

  18. День добрый! А есть мануал, или может напишете крупными мазками, что нужно по шагам донастроить, чтобы к 1-му серверу подключить несколько 3g-модемов?

    1. Привет. Чтобы поднять несколько прокси на несколько модемов посредством usb подключения нужно настраивать маршрутизацию. В планах есть написать инструкцию.

  19. Есть вопрос. Какие настройки нужно сделать, чтобы подключить несколько модемов к одному серверу? Можете сориентировать, можно крупными мазками, как нужно донастроить сервер для использования нескольких 3g-модемов на нем?

  20. Приветствую.Для начала хотел бы поблагодарить за статью прекрасную и оформленную разжевано до мелочей.Следую Вашей инструкции столкнулся с такой проблемой как не могу установить пакет разработчика. Пишет «Во всех указанных коллекциях пакеты для установки или обновления отсутствуют»
    В чем проблема может быть помогите пожалуйста если не сложно. Заранее спасибо. С уважением Тимур.

  21. А как продают тогда сервисы типа http:// mbmproxy.com, http:// proxy.biz и другие? По факту вот это все поднимают и продают как услугу или как?

  22. вопрос начального уровня — получается с одной мобильной прокси можно сидеть не ограниченному числу соц профилей одновременно без опасности быть охарактеризованными, как сеть соц сервисом?

    1. как же. вам ни одна соц сеть не даст работать с 1 моб прокси более чем положено. раньше в инсте можно на 1 моб прокси сажать и 100 акков. сейчас всё сложнее

  23. Здравствуйте! Пишу ifup wwp0s6u1i2 долго думает потом выдает ошибку. Подскажите что сделать

  24. Народ, подскажите, почему может не меняться ip адрес после перезапуска можема скриптом bash proksik3g.sh? Инет переподрубается, а ip остается тем же.

  25. Приветствую. модем Megafon m150-2 (E3372) при подключении модема выкидывает ряд ошибок
    Blk_update_request: critical medium error, dev sr1, sector 148480
    и
    buffer I/O error on dev sr1, logical block 18560, async page read
    Подскажите, что можно сделать?

  26. Как я понял, хаб это дополнительные usb порты? Значит для поднятия собственных мобильных прокси они могут быть и не нужны, можно вместо неё использовать usb порт самого компа верно? Или хаб это обязательная составляющая мануала?
    p.s спрашиваю для того, чтобы проверить мануал сначала на компе и если все сработает, то уже потом мог бы потратиться на все остальное.

  27. [root@localhost ~]# bash proksik3g.sh
    3proxy: процесс не найден

    Определяется информация IP для wwp0s6u1i1… готово.
    proksik3g.sh: line 8: unexpected EOF while looking for matching «’
    proksik3g.sh: line 21: ошибка синтаксиса: неожиданный конец файла
    [root@localhost ~]# proksik3g.sh: line 8: unexpected EOF while looking for matching «’

    В чем проблема?

  28. Спасибо вам за статью, подскажите пожалуйста насчет этого момента: «Подключим к ПК и поднимем на нём прокси, который можно будет юзать из локальной сети вместе с вашим основным инетом.»
    Если 3g модем просто воткнуть в пк и настроить реконнект bat файлом то отличие от описанного в статье будет лишь в том что я не смогу пользоваться основным интернетом, но не более? На качество IP/Трастовость соединения для Инстаграм это как то повлияет?

    1. пожалуйста. Вот тут точно не могу сказать, потому что есть подозрение что прямое подключение 3g модема хуже отрабатывает. По сути должно работать так как вы и описали.

  29. Доброй ночи, отличная статья! Не могли бы вы подсказать как написать bat. фаил для перезагрузки 3g модема мегафон с задержкой перед подключением, так же получается тоже динамический ip, если использовать модем в самом ноуте и при перезагрузке например через зенопостер будет менять ip. Это так сказать самый бюджетный и просто вариант, если немного аккаунтов)))

  30. Добрый) Подскажите , а можно получить прокси от модема и потом уже использовать его через локальный интернет ?

  31. Без зенопостера есть какой нибудь способ автоматизировать запуск proksik3g.sh ?

  32. Спасибо за мануал. И все же пара важных замечаний: вместо virtualbox используйте vmware. Он стабильно работает с подключёнными к нему устройствами, поэтому меньше отвалов. Систему советовал бы использовать debian. ОЗУ вполне хватит 256МБ. Centos 7 по мне так чересчур прожорлив к оперативки, что может сказаться сказаиься в будущем на масштабируемости и производительности.

    1. Пожалуйста. Спасибо за коммент. Очень полезно тем. кто на первых шагах к достижению своих моб прокси на вирт машинах.

  33. Добрый день! Очень полезная статья, прокси запутился. Хотел узнать как реализовать перезапуск. На windows у меня был батник типа :
    :new.bat
    rasdial /d
    ping -n 3 127.0.0.1 > nul
    rasdial «Tele2 Internet RU» /callback:*99#
    ping 127.0.0.1 -n 60 > NUL
    goto new.bat

    С этим батником на window все работало, но на linux не работает, пробовал батники которые вы скидывали в ответах к комментариям, тоже не работает. Не могли бы вы помочь мне. Хотелось бы реализовать реконнект без отключения питания на модеме. Спасибо.

    1. привет. СПасибо за комментарий. Рекконект производится в режиме 3G посредством откл и вкл соединения. В данном случае просто посылаем АТ команды на модем (смотрите команды для своего модема)
      echo -en ‘AT^NDISDUP=1,1,»internet»\r\n’ > /dev/ttyUSB0
      echo -en ‘AT^NDISDUP=1,0,»internet»\r\n’ > /dev/ttyUSB0
      internet это точка доступа моего оператора. для своего так же узнавайте

  34. Привет ) Я не технарь ни разу, как говорится «ни в зуб ногой». Но, на сколько мне позволяют мои скудные познания, ваша схема решает мою проблему. Я работаю в арбитраже трафика в соцсетях. О проблемах бана говорить не стану, сами в курсе. В итоге несколько акков веду одновременно на трех ноутах, что просто жесть. Понимаю, что идиотизм, но иначе пока не могу выкрутиться — нет технического решения. Вся работа с акками идет через MultiloginApp, через реальные 3g-роутеры, на каждый ноут отдельный айпи. Требуется реализовать схему так, чтобы можно было также работать через свои мобильные айпи (покупать за 400-60$ не радует совсем), но на ОДНОМ компе, как белый чел. Чтобы все как у людей, чтобы Цукер не подкопался ) Естественно, готов платить разумную цену за подробный мануал для нуба и помощь в ходе настройки. Контакт: kreogena@gmail.com. Заранее благодарен!

      1. Здравствуйте Я установил VirtualBox с официального сай на ноутбук и запустил . ввел тип машины
        linux но там есть только Red Had на 32 bit

  35. Здравствуйте!
    Я так понял, что если по команде ip a не показывает адрес модема и ls /dev/ttyUSB не дает устройст то модем не совместм. Или возможны варианты?

  36. Привет! Большое спасибо за статью! Очень актуально)
    Подскажи, будь добр, я не силён в линухе. Столкнулся с проблемой, когда втыкаю модем, Linux пишет о нескольких ошибках:
    blk_update_request: critical medium error, dev sr1, sector 148480
    blk_update_request: critical medium error, dev sr1, sector 148720
    blk_update_request: critical medium error, dev sr1, sector 148480
    Buffer I/O error on dev sr1, logical block 18560, async page read
    blk_update_request: critical medium error, dev sr1, sector 148480
    blk_update_request: critical medium error, dev sr1, sector 148720
    blk_update_request: critical medium error, dev sr1, sector 148480
    Buffer I/O error on dev sr1, logical block 18560, async page read

    Далее когда набираю команду:
    echo -en ‘AT^NDISDUP=1,1,»internet»\r\n’ > /dev/ttyUSB0
    то модем загорается постоянным синим светом, но команда
    wget -qO- eth0.me
    ничего не даёт. И далее соответственно прокси не работает.
    В чём может быть причина?

    1. привет-эта ошибка говорит о том что система не может увидеть устройство. думаю слишком много подключили устройств к серверу. Если модем один , то возможно вы его подключили через юсб хаб. Как правило у меня такая ошибка была на usb3.0

  37. Привет! Спасибо за статью! Как написать скрипт перезапуска модема на js?

  38. а как быть с OS Fingerprint? Если через модемчик выходить в сеть то он будет детектиться как linux. Как-то вроде подменяют TTL и MTU что бы выглядеть windows или android.

  39. Приветствую! Почти получилось понять прокси. На последнем шаге споткнулся. После команды:
    /usr/local/3proxy/3proxy /usr/local/3proxy/3proxy.cfg

    выдает:
    [line 5] Warning: current open file ulimits are too low (cur: 1024/max: 4096), maxconn requires at least 10000 for every running service. Configure ulimits according to system documentation

    Что-то не так в настройках?

  40. Еще вопрос: «100.67.106.102 это ip от оператора Мегафон», а откуда этот ip взят? Не нашел в нете об го упоминании. У меня оператор tele2 и не совсем понятно какой ip использовать.

  41. Уважаемый Гений! Будь добр, подскажи… На основном ПК установлена программа Quick_Sender. Нужно что бы она работала по твоей методе через модем а не через основной интернет, который так же подключен к пк. Нужно что бы модем перезагружался, но при этом на основном ПК интернет работал через кабель. Как это можно осуществить? Прогнать только одну программу через модем, а всё остальное что бы работало через обычный роутер.

    1. ввожу команду ls usb: невозможно получить доступ к usb: Нет такого файла или каталога — то пишет вот это. почему у меня так, подскажите плиз. спасибо.

      1. USB device ‘HUAWEI Technology HUAWEI Mobile’ with UUID {bfa14894-7c73-4a6b-9372-552c46258267} is busy with a previous request. Please try again later.

        Код ошибки:
        E_INVALIDARG (0x80070057)
        Компонент:
        HostUSBDeviceWrap
        Интерфейс:
        IHostUSBDevice {c19073dd-cc7b-431b-98b2-951fda8eab89}
        Вызванный интерфейс:
        IConsole {872da645-4a9b-1727-bee2-5585105b9eed}

  42. Здравствуйте.

    Прокси поднял. Подключился. Но чтобы ребутнуть модем, ввожу команду echo -e «AT^RESET\r\n» >/dev/ttyUSB1 и модем не реагирует. Модем вообще не реагирует на АТ команды.

      1. А разве не hilink прошивка нужна ? На стик прошивке интерфейс сам не подымается ведь.

        1. не надо его перезагружать, достаточно:
          echo -en ‘AT^NDISDUP=1,0\r\n’ > /dev/ttyUSB0
          это сбросит коннект с провайдером

  43. Привет, большое спасибо за урок, вы эксперт
    Я хотел знать, как подключить более двух модемов и настроить прокси по разным портам.
    Privet, bol’shoye spasibo za urok, vy ekspert
    YA khotel znat’, kak podklyuchit’ boleye dvukh modemov i nastroit’ proksi po raznym portam.

    1. Привет. Если Вы имеете в виду ОС linux, то это информация пока в закрытом доступе. Я могу реализовать Вам мануал по настройке большого количества моб прокси на usb хабе linux

  44. Добрый день!
    Сделл себе мобильные прокси как написано выше. Но часто теряется связь и если снова выполнить команду bash proksik3g.sh то бывает, что нормлаьно подключается, а бывает выдает такое: https://prnt.sc/p268ud
    И приходится заново перетыкать можем, потом последовательно выполнять:
    ip a
    nano /etc/sysconfig/network-scripts/ifcfg-wwp0s6u1i1

    менять первую строку:
    HWADDR=»1e:f1:40:c4:32:57″
    DEVICE=»wwp0s6u1i1″
    NAME=»wwp0s6u1i1″
    TYPE=»Ethernet»
    ONBOOT=»no»
    BOOTPROTO=»dhcp»
    NM_CONTROLLED=»no»
    NOZEROCONF=»yes»
    IPV4_FAILURE_FATAL=»no»
    IPV6INIT=»no»
    ZONE=»external»
    PEERDNS=»yes»

    сохранять это и выполнять три команды:
    echo -en ‘AT^NDISDUP=1,1,»internet.tele2.ru»\r\n’ > /dev/ttyUSB2
    ifup wwp0s6u1i1
    bash proksik3g.sh

    На сайте видел инфу что делаете настройки платно. Я хотел бы эти все действия свести к минимуму. Желательно к одной команде. Это возможно? Сколько будет стоить?

  45. А как пробросить на виртуалку два модема одинаковых ? Пишет, на второй модем, что устройство занято если они одной модели.

  46. Пытаюсь воспроизвести данный мануал на модеме E171, у меня после каждой перезагрузки меняется мак адрес модема. До перезагрузки интерфейс поднимаю, а вот после надо опять конфиг править. Подскажите как победить можно такую проблему? Спасибо.

  47. Привет. А как быть когда Yota прописывает каждый раз новый внутренний IP для подключения? В 3 прокси уже не засунешь

    1. На данный момент инструкция немного устарела. Лучше использовать модемы которые выступают в роли сетевой карты и имеют свой статический шлюз, который не меняется

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

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