В день, когда объявили 12-ый конкурс мой приятель предложил мне написать какую-нибудь статью. И так уж сложилось, что не за долго до объявления конкурса я нашел решение своей проблемы и этим решением я хочу поделиться с вами. Проблема, как оказалось, была связана с некачественными прокси (хотя я их сам поднимал на centos или debian и работал с ними несколько лет до трагических обстоятельств - "Масс баны"). Не качественность определялась несколькими факторами, во-первых, маленький пул, во-вторых, подняты на линуксе, в-третьих, отсутствует траст.
Поэтому было принято решение попробовать использовать мобильные прокси и что бы каждый аккаунт заходил с новой мобильной айпи, т.е. что бы у акков было как можно меньше пересечений. Конечно, тема не новая, поэтому я обратился к одним из провайдеров с которыми ранее сотрудничал. Меня сразу заверили, что для моих целей нужны только приватные мобильные прокси и не иначе, хотя с этим я и не спорил. Ценник озвучили на прокси 2х типов. Первый тип - ожидание при обрыве связи 15-30 секунд стоит от 3300 до 4500р в месяц. Второй тип – ожидание при обрыве 1 секунда стоит от 6500 до 8500р в месяц.
«Нихрена себе» - подумал я, но заявку на тест-драйв оставил. В итоге тест-драйв затянулся, и я решил попробовать самостоятельно поднять проксю на своем модеме. На тот момент у меня как раз завалялся мертвый модем Huawei e3372h, до этого он стоял в деревне на чердаке с подключенной антенной (спустя 2 года добросовестной работы он почему-то сдох, может холодно или влажность?). На выходе получался безлимитный 4G интернет от Yota за 350р в месяц, на планшетном тарифе. Т.е. на тот момент я уже активно пользовался этими модемами, т.к. они умеют фиксировать TTL, менять IMEI и имеют вебморду и вообще очень стабильно работают.
Немного пошерстив 4pda я узнал, что шить с иглы не так и сложно. И я, вооружившись скрепкой, легко и просто оживил мертвеца. Далее воспользовавшись гуглом нашел инфу по настройке 3proxy на винде и вуоля - мобильный прокси готов. Сразу скажу, что благодаря моб проксям проблема масс баннов в моем случае была решена. Ну да ладно, довольно историй, перейдем к делу.
ЭТАП ПЕРВЫЙ. Покупка модема.
Использовать будем, как я уже писал выше huwei e3372h. Купить можно как на алиэкспрессе, так и у себя в городе. В крупных городах есть конторы, которые занимаются радиотехникой, у них 100% они есть. Находим самые дешевые варианты при помощи яндекс.маркета. У меня в городе такие модемы стоят в районе 1850р – это не модифицированные модемы, обычно у этих же продавцов есть и модифицированные, но стоят на 500р дороже. Можно не запариваться и купить уже готовый вариант из коробки, но это не наш метод – мы будем шить. Т.к. это займет не больше 5-10 минут. Как шить смотрите в видео. Прошивальщики, которые я использую - в прилепе. Если же вы живете далеко в глубинке и вам религия не позволяет с алика заказывать или просто хочется побыстрее поднять свой первый мобильный прокси, то бежим в ближайший офис мегафона и покупаем там модем M-150, лезем на 4pda http://4pda.ru/forum/index.php?showtopic=582284 и разбираемся с разлочкой.
ЭТАП ВТОРОЙ. Прошивка модификаций и настройка модема
Забыл упомянуть в видео, что при первом подключении первого модема к компьютеру нужно запустить autorun с карты памяти встроенной в модем. После установки драйверов, в дальнейшем все вновь подключаемые модемы будут определяться автоматически.
ЭТАП ТРЕТИЙ. Настройка 3proxy
Итак, мы модифицировали наш модем и выполнили его настройку. Теперь идем на официальный сайт разработчика 3proxy https://3proxy.ru/download/stable/ и скачиваем вот эту версию.
Теперь в папке bin создаем текстовый файл и называем его 3proxy.txt (можно назвать как угодно, на самом деле). В этом файле мы прописываем конфигурацию нашего прокси-сервера.
Под цифрой 1 локальный айпи вашего основного подключения, под цифрой 2 айпи вашего модема. P8052 – это порт для https подключений, p8053 – это порт для socks подключений, цифры можете использовать какие вам больше нравятся, если не нужны https то просто удалите соответствующую строчку. Для подключения большего количества модемов добавляем аналочичные строчки для них между командами allow и flush. Вместо login и password указываем свой логин и пароль с которыми мы будем коннектиться к прокси. Вот скрин конфига с моего сервера.
Тут видно, что основной айпи сервера я тоже использую как прокси.
я ее использую для того что бы качать с торрентов, т.к. живу загородом и интернет у меня на том же e3372h, но некоторые провайдеры режут скорость на торрентах, а на сервере PON - 300 мбит/c. =))
Теперь осталось только запустить наш 3proxy. Запускаем командную строку от имени администратора. Сделать это можно введя в поиске cmd и нажав ПКМ по значку сmd.exe выбрав «Запустить от имени администратора»
Если кто-то не знает, то вставка осуществляется ПКМ или Shift+Ins. Жмем Enter. Все, наши прокси работают. Проверяем в диспетчере задач (Ctrl+Shift+Esc), должна появиться служба 3proxy.
Теперь можно попробовать подключиться к прокси в фф или в зенке, если прокси поднимаете на той же машине где установлен zennoposter. На примере моего сервера прокси будет выглядеть так: socks5://login:[email protected]:8065
ЭТАП ЧЕТВЕРТЫЙ. Управление приватной мобильной проксей.
С настройкой прокси мы завершили. Теперь у нас есть 2 варианта их использования в зависимости от того на какой машине поднимаются прокси.
Вариант 1.
Модемы воткнуты непосредственно в ту же машину, на которой установлен зеннопостер. Этот вариант подойдет тем, кто так же, как и я имеет собственный физический сервер или тем, кто использует для работы с зенкой домашний компьютер.
Следует сказать, что поменять динамический IP адрес можно 2-мя способами:
1. Передернуть бегунок передачи мобильных данных. (айпи меняется только в сетях 3G) Смена происходит в течение 1 секунды (хотя иногда и подтупливает, поэтому я жду 5 секунд перед чеком айпи)
Кроме того, второй способ смены айпи может применяться для некоторых операторов, у которых не общий пул айпи адресов для всех абонентов региона, а выделенные несколько айпи. Для смены айпи у таких операторов одновременно с перезагрузкой нужно использовать автоматическую смену IMEI. Для этого заходим в настройки модификаций модема, копируем 8 цифр текущего имей и вставляем в соответствующее поле, а также устанавливаем закрепитель IMEI и включаем случайную установку.
Сразу скажу, что работать с такими операторами геморройней, т.к. помимо вышесказанного надо еще складывать получаемые айпишки и проверять на повторы, что бы даже после ребута вам не выдало ту же самую ip.
Что бы делать все вышеописанное прямо внутри вашего собственного шаблона нужно сделать всего несколько post/get запросов к вашему модему.
Что бы сильно не запариваться предлагаю использовать мои снипеты, которые я приложу в отдельном проекте.
Опишу логику.
В исходных данных задаем тип смены айпи: передергиваем или ребутим (False и True соответственно).
В случае если выбран вариант с передергиванием, то после того как мы взяли из таблицы данные прокси (теперь данные прокси надо хранить в таблице, а не в списке) переходим к C# экшену который передергивает, конечно же установив перед этим счетчик в положение 0. Логика передергивателя следующая:
1. Делаем Get запрос к http://ip_modem/api/webserver/SesTokInfo где ip_modem - это айпи модема с которым мы работаем. В ответ получаем sesinfo и tokinfo которые являются кукой и токеном соответственно.
2. Делаем Post запрос к http://ip_modem/api/dialup/mobile-dataswitch в котором передаем
Используя полученную ранее куку и токен. Этим запросом мы выключаем передачу данных
3. Повторяем первый запрос получаем новые токен и куку
4. Повторяем второй запрос и передаем
чем включаем передачу данных обратно.
5. Делаем Get запрос к http://check.zennolab.com/proxy.php и получаем наш ip
В случае если айпи не получили, повторяем передергивание. Если не получили 6 раз, то делаем ребут модема.
Логика ребута следующая:
1. Делаем Get запрос как в предыдущем экшене
2. Делаем Post запрос к http://ip_modem/api/device/control в запросе передаем
И модем уходит на перезагрузку, которая длится от 20 секунд
Вариант 2
Модемы воткнуты, например, в ноут у вас дома, а сервер вы арендуете. В принципе этот вариант не сильно отличается от первого если только вы сами будете использовать эти прокси. Но все же, что бы все работало нам потребуется сделать некоторые телодвижения.
Во-первых, к компу в который воткнуты модемы должен быть удаленный доступ. Я имею в виду, что он должен иметь либо выделенный ip адрес, который можно купить у вашего провайдера, либо использовать DDNS. С выделенным ip я думаю все понятно, DDNS настраивается в роутере, большинство современных роутеров поддерживают эту функцию. Подробно не буду останавливаться на этом, гуглите как настраивается конкретно ваш роутер. У меня Mi Router и он предлагает лишь одного провайдера oray.com
Во-вторых, нужно пробросить внутренние порты ваших проксей, что бы они были доступны из вне. Делается это так же в настройках роутера. В разных роутерах могут быть небольшие отличия, но принцип везде одинаковый, добавляете правило, по которому все внешние подключения к определенным портам будут переадресовываться на определенный внутренний айпи и определенный внутренний порт.
В-третьих, все эти подключения будут блокироваться Брандмауэром (если у вас он конечно не отключен). Поэтому необходимо прописать разрешения для нужных нам портов. Делается это следующим образом – заходим в Брандмауэр Windows в режиме повышенной безопасности. Там переходим в Правила для входящих подключений и жмем кнопку Создать правило. Выбираем – Для порта и жмем далее. На следующей вкладке указываем конкретные порты или диапозон.
В-четвертых, для того что бы управлять нашими модемами удаленно нужно создать дополнительную проксю, которая будет указывать на наш компьютер с модемами (я вас обманул, эту проксю можно использовать не только для торрентов =) Думаю объяснять как ее сделать не надо, достаточно посмотреть скриншот который я показывал выше со своими настройками. Для чего это надо? Если попытаться передернуть модем под модемной проксей, то прокся тут же выключится после выключения бегунка передачи данных и больше не включится.
Итак, все готово. Теперь мы можем использовать тот же самый шаблон, который мы использовали при первом варианте, за одним исключением, нам нужно указать в исходных данных проксю указывающую на ваш компьютер с модемами. Для того, чтобы все запросы, связанные с модемом, делались через нее.
Теперь немного о формате проксей. Как я уже говорил раньше прокси складываем в таблицу. В первом столбце будут сами прокси в формате зеннопостера где в качестве айпи будет внутренний айпи компьютера+порт, т.е. для разных модемов будут меняться только порты. Во втором столбце внутренний ip модема соответствующий этой проксе. Думаю, что не нужно объяснять зачем это.
Что касается удаленного управления, то в качестве ip прокси будет использоваться либо статичный айпи купленный у провайдера, либо домен DDNS.
Есть еще третий вариант использования, я бы назвал его коммерческим, т.е. если вы хотите использовать не для собственной нужды, а сдавать их в аренду, то второй вариант не очень-то подойдет. Лично я не захотел бы палить айпи своей машины. Поэтому тут нужно использовать собственный API находящийся на стороннем веб сервере. По сути его можно сделать в одном php файле. Я хотел подготовить такой к этой статье, но к сожалению, php кодер из меня так себе, надо вспоминать синтаксис и как там запросы делаются. А времени на то что бы вникать нет. Если кто-то предложит в комментах, то Welcome.
Пара слов об использовании.
Как вы уже, наверное, поняли, то смысл таких проксей в том, чтобы каждый отдельный аккаунт любого сервиса, с которым вы работаете, никак не пересекался с другими аккаунтами. Для этого перед началом выполнения вашего шаблона нужно передернуть модем и желательно не трогать его до того момента пока вы не закончите работу с акком. В однопотоке тут все понятно, но как построить работу в многопотоке? Ведь важно, чтобы другой поток не перехватил модем и не передернул его. Проблема даже не в том, что это передергивание приведет к небольшому подвисанию уже работающего потока и шаб может вывалиться с ошибкой, ведь крутые парни пишут шаблоны, в которых есть умные таймауты, ожидающие появление элемента прежде чем кликать куда попало (а мы же крутые парни?).
Проблема в том, что разные потоки с разными акками будут одновременно работать с одной ip. Несмотря на то, что мобильные сети устроены таким образом, что с одной мобильной ip одновременно сидят тысячи людей (например в северо-западном регионе у отдельных операторов 11к ip на всех), но не все эти люди одновременно делают одинаковые действия в одном и том же сервисе. Как показала практика, на большом пуле акков такие частые пересечения приводят к масс-банам, когда банятся пачки связанных акков, а наша задача как раз это избежать.
Поэтому решение находится в блокировании прокси, которая находится в данный момент в работе. Самый простой вариант - использовать список с удалением, т.е. в начале шаблона берем из списка проксю, а в конце работы шаблона возвращаем ее обратно.
Следующий момент – это частые смены операторов. На своем опыте скажу, что в каких-то сервисах массовая смена операторов приводит к баннам, в каких-то не имеет значения. Поэтому в тех сервисах в которых это имеет значение я использую клоны шаблонов, по одному под каждого оператора. Под каждый клон свой список с проксями, своя таблица с акками, внутри этого шаблона любой акк берет любую проксю, т.к. ip динамический и не имеет принципиального значения с какого именно модема мы заходим – диапазон один. Клонов получается не много, т.к. и операторов не много.
Кроме того, пока работает главный шаблон, для которого принципиально отсутствие пересечений, другие шаблоны тоже могут использовать прокси, но без передергивания.
На выходе мы имеем приватные прокси за 400-500р в месяц за штуку. Ну и плюс сами модемы, которые окупаются моментально. Имея небольшую ферму я отказался от других проксей в принципе. Все свои шаблоны я строю на использовании уже имеющихся модемов.
Здравствуйте, огромное спасибо за статью, но у меня возникла проблема, что модем не отображает панель (та которая доступна по адресу 192.168.8.1) сразу скажу перепробовал все возможные комбинации которые есть в интернете, подскажите в чем может быть проблема, а то как мне кажется перепробовал все возможные методы
Здравствуйте, огромное спасибо за статью, но у меня возникла проблема, что модем не отображает панель (та которая доступна по адресу 192.168.8.1) сразу скажу перепробовал все возможные комбинации которые есть в интернете, подскажите в чем может быть проблема, а то как мне кажется перепробовал все возможные методы
а что делать если при запуске службы 3proxy все время вылетает ошибка "Ошибка 1053: Служба не ответила на запрос своевременно". Пробовал на win10 и на win server 2016 везде одинаково, менял версию 3proxy с 13й на 10, менял 32 битную на 64 везде все одинаково. Может кто сталкивался? в реестре прописывал советы из гугла про "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control " и тд без результатов, в просмотре событий пишет "Превышение времени ожидания (196608 мс) при ожидании подключения службы "3proxy tiny proxy server".
Когда драйвера не установлены у модема будет показывать 2 флеш накопителя, на одном из которых будет авторан, если накопитель один и он не доступен, то дрова действительно установлены. Какая модель модема у Вас, что написано под крышечкой куда симка вставляется? Возможно у вас не hilink прошивка, а stick. В любом случае мало информации.
а что делать если при запуске службы 3proxy все время вылетает ошибка "Ошибка 1053: Служба не ответила на запрос своевременно". Пробовал на win10 и на win server 2016 везде одинаково, менял версию 3proxy с 13й на 10, менял 32 битную на 64 везде все одинаково. Может кто сталкивался? в реестре прописывал советы из гугла про "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control " и тд без результатов, в просмотре событий пишет "Превышение времени ожидания (196608 мс) при ожидании подключения службы "3proxy tiny proxy server".
Самым радикальным образом, как я ее решил: забил на службу и запускаю просто эгзешником 3прокси
А до этого чего только ни перепробовал, один хрен не хочет у меня эта служба работать
Позавчера разбирался с такой же проблемой 1053. Изначально надо посмотреть запускается ли 3proxy обычный exe файл без службы, если запускается и сразу исчезает, надо посмотреть на конфиг
Позавчера разбирался с такой же проблемой 1053. Изначально надо посмотреть запускается ли 3proxy обычный exe файл без службы, если запускается и сразу исчезает, надо посмотреть на конфиг
да попробовал везде запускается и сразу исчезает, ставил конфиг по мануалу, потом разные стандартные, все одинаково без результатно, даже с таким конфигом
да попробовал везде запускается и сразу исчезает, ставил конфиг по мануалу, потом разные стандартные, все одинаково без результатно, даже с таким конфигом Посмотреть вложение 49009
У меня просьба к автору шаблона.
Можете ли вы добавить в шаблон вот такую функцию.
Чтобы шаблон где то записывал предыдущее значение ip адреса и потом сравнивал после передергивания.
Если ip адреса разные то все ОК.
Если ip адреса одинаковые то передергиваем еще раз.
( У меня после передергивания по три раза выдает один и тот же ip адрес. )
Будет естественно если шаблон первый раз передернет ip пару раз что что было с чем сравнивать.
У меня просьба к автору шаблона.
Можете ли вы добавить в шаблон вот такую функцию.
Чтобы шаблон где то записывал предыдущее значение ip адреса и потом сравнивал после передергивания.
Если ip адреса разные то все ОК.
Если ip адреса одинаковые то передергиваем еще раз.
( У меня после передергивания по три раза выдает один и тот же ip адрес. )
Будет естественно если шаблон первый раз передернет ip пару раз что что было с чем сравнивать.
Просто добавьте 3 экшена. 1 экшен берем значение из файла с удалением, 2 записываем значение текущего айпи в файл, 3 сравниваем эти 2 значение, если не равны, то идем дальше, если равны, то возвращаемся к передергиванию. В качестве имени файла используем айпи модема.
Парни, кстати.
Прошивки что приложены - не льются по началу.
Я тут из модема кирпич уже один сделал, пока разбирался почему.
Решение оказалось достаточно простое
после того как открыты порты на модеме и надо заливать проложенные прошивки - сначала льется переходная прошивка версии 21.180... НЕ 22.3...
После переходной уже нормально заливаются и текущие прошивки
Кто прошивал, думаю порадуются решению.
p.s. НЕЛЬЗЯ лить веб морду первее чем основную прошивку!!! Даже если хочется. Почти гарантированный кирпич.
Парни, кстати.
Прошивки что приложены - не льются по началу.
Я тут из модема кирпич уже один сделал, пока разбирался почему.
Решение оказалось достаточно простое
после того как открыты порты на модеме и надо заливать проложенные прошивки - сначала льется переходная прошивка версии 21.180... НЕ 22.3...
После переходной уже нормально заливаются и текущие прошивки
Кто прошивал, думаю порадуются решению.
p.s. НЕЛЬЗЯ лить веб морду первее чем основную прошивку!!! Даже если хочется. Почти гарантированный кирпич.
А вот и нифига.
Сколько я понимаю, у этих модемов разные серии есть и разные стоковые прошивки.
Вот он начальных условий и зависит станет оно как написано или не станет.
И еще прикол. Стоковая прошивка может оказаться как бы более новой версии, чем ту, что хочешь залить модифицированную. И потому тоже может не становиться.
А вот и нифига.
Сколько я понимаю, у этих модемов разные серии есть и разные стоковые прошивки.
Вот он начальных условий и зависит станет оно как написано или не станет.
И еще прикол. Стоковая прошивка может оказаться как бы более новой версии, чем ту, что хочешь залить модифицированную. И потому тоже может не становиться.
Если прокся "внешняя", то вот этим сервисом можно проверять очень быстро и удобно https://proxy-checker.net Но надо знать что прокси просто бывают не стабильные. Если она прямо сейчас работает, то не факт что через минуту не упадет.
Если прокся "внутренняя", т.е. сам поднял с модема, то то зенкой просто делаешь скрипт, который берет из файла и все по порядку чекает)) Это пишется за 10 минут. А так же это расширяется в текущие скрипты. Т.е. скрипт работает и если прокся упала, то выводится уведомление. Например стандартное всплывающее, только внутрь его пишешь название проекта, какая прокся упапал и ставишь чтобы висело подольше, а то пропустишь.
При перезагрузке модема-флешки хаувея (как в статье) в браузере всегда открывается окно интерфейса модема (условно по адресу 192.168.8.1) Как сделать так, чтобы не открывалось? А то после 100 перезагрузки как-то много слишком вкладок браузера будет.
Стандартное отключение автозарузок там через панель управления и групповые политики - не помогает.
При перезагрузке модема-флешки хаувея (как в статье) в браузере всегда открывается окно интерфейса модема (условно по адресу 192.168.8.1) Как сделать так, чтобы не открывалось? А то после 100 перезагрузки как-то много слишком вкладок браузера будет.
Стандартное отключение автозарузок там через панель управления и групповые политики - не помогает.