Ротация прокси: когда меняется IP

Ротация прокси: когда меняется IP

Ротация прокси — это смена выходного IP-адреса, с которого сайт получает ваш трафик. Адрес может меняться с новым запросом, через заданный интервал или по команде приложения. Подходящий момент смены позволяет распределять независимые запросы между разными IP и сохранять один адрес для связанных действий.

Выбор между постоянным адресом и сменой адресов разобран в статье Статические прокси и прокси с ротацией. Здесь рассмотрим, что запускает смену IP и как она влияет на уже выполняющиеся запросы.

Что меняется при ротации

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

Например, программа мониторинга цен может получить одну общедоступную карточку товара через 192.0.2.14, а другую — через 198.51.100.27. Это условные адреса для примера. Компьютер с программой не менял своё интернет-подключение: запросы пришли на сайт через разные выходы.

Результат зависит от двух отдельных решений: когда заново выбирать выход и откуда брать следующий адрес. Таймер может запустить выбор другого доступного прокси или переподключение мобильного модема. Причина смены одна, но сам процесс и возможный перерыв в работе различаются.

Ротация с каждым запросом

При ротации с каждым запросом сервис заново выбирает выход для запросов, которые может направить независимо. Это удобно для отдельных страниц товаров, публичных объявлений или поисковых запросов, которым не нужен общий IP. Здесь важно уточнить слово «запрос»: при HTTPS и TCP-подключениях через SOCKS5 смена обычно привязана к открытию нового соединения с сайтом.

Представим сбор цен с 500 страниц товаров. Каждая страница даёт отдельный результат. Сервис может распределить запросы между доступными выходами, вместо того чтобы отправлять всё задание через один адрес. Несколько одновременно выполняющихся запросов тоже могут использовать разные выходы.

Одна программа отправляет три последовательных запроса через один шлюз к одному сайту. В примере каждый запрос открывает новое соединение. Шлюз выбирает для них выходные адреса 192.0.2.14, 198.51.100.27 и 203.0.113.42.

При новом выборе может повториться адрес, который уже использовался. Пул конечен, а выбор бывает случайным. Ротация по запросу сама по себе не обещает 500 разных IP на 500 запросов.

Запрос и соединение — разные вещи

Приложение может отправлять несколько HTTP-запросов по одному соединению. При обычном HTTPS-подключении через прокси сначала создаётся туннель к сайту. Внутри него передаются зашифрованные запросы, а прокси пересылает их данные, не читая отдельные запросы.

Поэтому выходной адрес сохраняется на время работы этого туннеля. В режиме ротации по запросу новый выход может выбираться при открытии нового туннеля или соединения с сайтом. Повторное использование прежнего туннеля может сохранить тот же IP.

Одна страница браузера может загружать множество ресурсов через несколько соединений, а её обновление — использовать уже открытые соединения. Поэтому ротация не привязана к одному нажатию, одной вкладке или одной полной загрузке страницы.

Ротация через заданный интервал

При ротации по времени IP назначается на определённый срок. По окончании этого срока сервис заново выбирает выход. Пока назначение действует и выход доступен, связанные запросы могут использовать один адрес.

Допустим, сессия началась в 10:00 и рассчитана на пять минут. Во время проверки программа открывает каталог, применяет фильтр и проверяет следующую страницу результатов через один выход. В 10:05 назначение истекает; новое соединение после этого может получить другой адрес. Пять минут здесь — пример, а не стандартный интервал для всех сервисов.

Одна программа работает через шлюз с ротацией по таймеру. В примере запросы 1, 2 и 3 в первые пять минут используют 192.0.2.14. После истечения интервала запросы 4, 5 и 6 идут с 198.51.100.27.

Уточните, когда запускается таймер. Он может отсчитывать время от первого запроса сессии или работать по расписанию порта прокси. Если до очередной смены по расписанию осталась минута, новая задача не получит полные пять минут. Отдельный таймер бездействия также может завершить закрепление раньше.

Интервал обычно относится к конкретной сессии, порту или настройке прокси-подключения. Он не обязательно меняет адреса всех соединений аккаунта одновременно. Если нескольким задачам нужны отдельные назначения IP, сервис должен поддерживать соответствующее разделение.

Сохранение назначенного выхода для нескольких запросов обычно называют закреплённой сессией, или sticky session. Сервис с ротацией может некоторое время удерживать адрес, а затем выбирать выход заново.

Ротация по команде

При ротации по команде вы или ваше приложение выбираете момент запроса другого выхода. В зависимости от сервиса для этого служит кнопка в панели, специальная ссылка для смены IP или команда API. Некоторые сервисы также создают новое назначение при запуске другой прокси-сессии.

Это удобно, когда задача состоит из связанных шагов, но её длительность заранее неизвестна. Например, проверка открывает форму, отправляет её и ждёт страницу подтверждения. Можно сохранить текущий выход на всю последовательность и запросить другое назначение перед следующей независимой проверкой.

Три связанных шага первой задачи используют выход 192.0.2.14. После завершения задачи программа подаёт команду Сменить IP. Шаги следующей задачи используют 198.51.100.27.

Ротацию по команде можно автоматизировать: программа запрашивает смену после завершённой задачи или заданного количества запросов. «По команде» означает, что момент переключения определяете вы или ваше приложение. Нажимать кнопку вручную каждый раз не требуется.

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

Что происходит с уже выполняющимся запросом

В обычном TCP-соединении с сайтом выходной IP остаётся частью этого соединения. Запрос и ответ проходят по одному установленному соединению. Ротация не может просто перенести незавершённый обмен на другой выходной адрес.

Сервис может по-разному обработать момент смены. Он может дать существующему соединению закончить работу через прежний выход, а новое назначение применять к последующим соединениям. Другой вариант — закрыть соединение, после чего приложению придётся подключиться заново. Переподключение модема тоже может прервать проходящий через него трафик.

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

Откуда берётся следующий IP

Выбор другого выхода из пула

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

Если сервис поддерживает фильтры по местоположению или сети, они ограничивают набор подходящих выходов. Можно менять IP внутри одной страны, сохраняя страну. Узкий отбор может уменьшить число доступных адресов и увеличить частоту повторов.

Переподключение мобильного модема

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

Другие мобильные сервисы выбирают другое доступное устройство из пула. Оба варианта относятся к ротации мобильных прокси, но по-разному влияют на текущую работу. Само понятие мобильной ротации не уточняет, какой механизм используется.

Кто управляет переключением

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

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

Поэтому список статических серверных или провайдерских прокси (ISP) тоже позволяет организовать ротацию. Собственный IP каждого прокси остаётся постоянным; программа меняет прокси, через который пойдёт следующее соединение. Такой подход удобен, когда вы хотите сами распределять адреса между заданиями.

Замена купленных адресов в подписке — отдельная операция. Плановое обновление меняет набор доступных вам IP. Оно само по себе не заставляет приложение переключаться между ними во время работы.

Выбирайте момент смены под задачу

Сначала определите, каким действиям нужен один и тот же выход. Затем назначьте смену на момент, когда следующий запрос или задача уже могут использовать другой IP.

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

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

Смена IP не удаляет cookies браузера и данные аккаунта. Сайт по-прежнему может связать запросы с одной сессией или учётной записью. Ротация распределяет трафик между выходами, но не сбрасывает все ограничения и не гарантирует успешный запрос.

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

Вернуться в базу знаний