Пулы IP и шлюзы подключения
Прокси-сервис может выдать один адрес подключения и при этом предоставить доступ ко множеству публичных IP. Адрес, который вы указываете в программе, ведёт на входной шлюз. Набор адресов, через которые сервис может обращаться к сайтам, называется пулом IP. Сайт видит выходной IP, выбранный для соединения с ним; этот IP может отличаться от адреса шлюза.
Выбор между сохранением и сменой адреса разобран в статье Статические прокси и прокси с ротацией. Здесь разберём разницу между шлюзом в настройках, разрешённым вашему аккаунту набором выходов и адресами, доступными в нужный момент.
Как шлюз соединяет программу с пулом
За пулом стоят работающие подключения, позволяющие выходить в интернет с разных публичных адресов. У серверного прокси-сервиса выходы могут быть настроены на серверах. В резидентской сети трафик может проходить через домашние подключения участников, а в мобильной — через сотовую сеть. Список IP в базе сам по себе не передаёт запросы: сервису нужны работающее оборудование и маршрут через выбранный выход.
Шлюз служит общей точкой входа в эту инфраструктуру. Обычно запрос проходит следующие этапы:
- Программа подключается к шлюзу по поддерживаемому протоколу прокси и передаёт необходимые данные доступа.
- Сервис проверяет аккаунт и определяет, каким пулом или назначенной группой адресов он может пользоваться.
- Применяет настройки маршрутизации и выбирает доступный выход либо использует уже сделанное назначение.
- Выходной узел устанавливает соединение с сайтом. Ответ возвращается программе через прокси-сервис.
Например, программа может подключаться к gateway.example:8000, а сайт — получать её трафик с адреса 192.0.2.14. Следующее соединение через ту же точку входа может использовать выход 198.51.100.27. Это условные адреса для примера. Настройки подключения в программе остались прежними, а выход за шлюзом изменился.
Шлюз позволяет сервису управлять выходами, не выдавая программе отдельную запись подключения для каждого IP. Проверка доменного имени шлюза через DNS покажет адрес точки входа. Чтобы узнать фактический выход, нужно проверить, с какого адреса получил соединение сайт или сервис проверки IP, открытый через прокси.
Что означают адрес и порт шлюза
Точка подключения, или endpoint, состоит из хоста и порта. Хост — это доменное имя или IP-адрес, а порт указывает на службу, принимающую соединение. Программе также нужны протокол прокси и предусмотренный провайдером способ доступа. Параметры выбора выхода могут передаваться в логине, определяться портом или задаваться в личном кабинете.
Поэтому список реквизитов прокси может описывать разные способы доступа:
| Способ доступа | Как определяется выход |
|---|---|
| Прямые адреса прокси | Программа выбирает адрес прокси из списка и подключается к нему. |
| Порты шлюза с назначенными выходами | Сервис связывает каждый выданный порт с назначенным выходом. Программа выбирает соответствующий порт. |
| Доступ к пулу через шлюз | Программа передаёт настройки подключения, а сервис выбирает выход из подходящей части пула. |
Шлюз может обслуживать как постоянные назначения, так и доступ с ротацией. При назначенном порте запись подключения может сохраниться после замены выходного IP. При доступе к пулу множество сформированных записей может вести к одному и тому же набору адресов.
У номеров портов нет единого значения для всех прокси-сервисов. Другой порт может выбирать протокол, правило маршрутизации или конкретный назначенный выход. Создание более длинного списка точек подключения само по себе не выделяет дополнительные IP. Важно, как сервис сопоставляет эти записи с выходами.
Какая часть пула доступна вашему запросу
Вся сеть провайдера не обязательно доступна каждому клиенту. Доступ может разделяться по продуктам, типам сетей, аккаунтам или выделенным группам IP. Два клиента, использующих одно имя шлюза, могут получать выходы из разных наборов, потому что у их аккаунтов разные права доступа.
Если сервис поддерживает фильтры, дополнительные условия могут сузить выбор. Для целой страны может быть доступно больше выходов, чем для конкретного города и интернет-провайдера в ней. Фильтр отбирает существующие адреса; новые подходящие выходы от него не появляются.
Фактическая доступность сужает выбор ещё раз. Некоторые выходы могут быть отключены, временно недоступны или не способны принять ещё одно соединение. Наличие страны или города в меню не означает, что подходящие выходы будут доступны там в любой момент. Если совпадений нет, сервис может вернуть ошибку или применить предусмотренный запасной вариант. Для проверки конкретной географии переход на другую страну меняет смысл полученного результата.
Закреплённая сессия, или sticky session, влияет на выбор иначе: она просит сервис продолжать использовать назначенный выход. Сам пул от этого не увеличивается. Пул определяет возможные адреса, а правила сессии и ротации — порядок их использования во времени.
Страна шлюза и страна выходного IP
Шлюз и выход могут находиться в разных странах. Программа в Германии может подключиться к шлюзу в Нидерландах и использовать выход в Японии, если сервис поддерживает такой маршрут. Сайт получает соединение с выходного IP. В этом примере он определяет его как японский: схема показывает разницу между входом и выходом, а не ошибку геолокации.
Региональные шлюзы могут дать программе более короткий или удобный маршрут до сервиса. Но дальше трафику ещё нужно пройти через выходное подключение и получить ответ сайта. Близость входного сервера сама по себе не определяет время выполнения всего запроса.
Несколько доменных имён шлюза могут также открывать доступ к пересекающимся пулам. Смена точки входа не обязательно предоставляет отдельный запас выходов. Учёт сессий на входных серверах тоже может различаться, поэтому прежнее назначение IP не всегда переносится при подключении через другой шлюз.
Что на самом деле означает размер пула
Число IP полезно только вместе с объяснением, что именно посчитано. Следующие показатели отвечают на разные вопросы:
| Показатель | Что он описывает |
|---|---|
| IP, настроенные в сервисе | Адреса, настроенные для работы сервиса. Часть может находиться в резерве, быть недоступной или не входить в набор вашего аккаунта. |
| Уникальные IP за период | Разные адреса, учтённые за день, месяц или другой указанный период. Они не обязательно были доступны одновременно. |
| Доступные аккаунту выходы сейчас | Адреса, которыми можно воспользоваться в текущий момент с вашим продуктом, правами доступа и настройками выбора. |
У управляемых серверных пулов и размещённых на серверах провайдерских прокси (ISP) состав адресов может быть относительно постоянным. Но и здесь ёмкость адресного диапазона, число настроенных прокси и число IP в вашем пакете могут различаться. Адрес в резерве не становится доступным выходом, пока сервис не предоставит его для работы.
В резидентских пулах, построенных на домашних подключениях участников, устройства появляются в сети и отключаются, а интернет-провайдеры могут менять выданные им публичные адреса. Поэтому месячный счётчик разных IP способен расти даже без увеличения числа устройств, одновременно доступных в пуле.
У мобильного доступа есть ещё одно отличие. Прокси-сервис может управлять модемами с SIM-картами или получать доступ через распределённые устройства с мобильным интернетом. Публичные адреса им назначает сотовый оператор. Одно устройство может использовать разные IP в разное время, а несколько устройств — совместно выходить через один публичный IP благодаря операторскому NAT, или CGNAT. Поэтому количество модемов или телефонов нельзя напрямую пересчитать в число уникальных публичных IP.
Для конкретной задачи имеет значение набор, доступный с её условиями и в её рабочие часы. Большая общая цифра по всему миру мало говорит о числе подходящих адресов в одном городе или у одного оператора.
Почему один IP может появляться снова
Пул не обязательно работает как очередь, которая выдаёт каждый адрес по одному разу и только потом начинает круг заново. Сервис может выбирать выход случайно, сохранять прежнее назначение или отдавать предпочтение доступным выходам, подходящим для маршрута. Поэтому IP может повториться до того, как программа использует все остальные адреса.
У повторов бывают разные причины. Сессия может удерживать назначенный выход. Фильтры могут оставлять небольшой выбор. Часть пула может быть отключена. Наконец, сам алгоритм распределения может чаще выбирать определённые выходы. Частота повторов показывает, что получил ваш аккаунт в этих условиях; по ней нельзя напрямую посчитать всю сеть провайдера.
Для полезной проверки записывайте выходной IP, время, фильтры географии и режим сессии. Открывайте новые соединения с сайтом и позволяйте сервису выбирать выход заново, вместо того чтобы удерживать одну sticky-сессию. Например, 40 разных IP на 100 соединений показывают, что за время теста вы получили эти 40 адресов. Это не означает, что во всём пуле лишь 40 IP или что следующие 100 соединений дадут столько же.
Что делает пул полезным для вашей задачи
Разные адреса не всегда означают разные сети. Множество IP может относиться к одному диапазону или одному оператору. Если нужны результаты из сетей нескольких интернет-провайдеров, важно распределение выходов между этими сетями. Номер автономной системы, или ASN, помогает определить сеть маршрутизации, к которой относится адрес, и дополняет обычный подсчёт IP.
Нагрузка тоже распределяется неравномерно. Выходы в популярной географии могут использоваться значительно чаще адресов в других частях того же пула. В общем пуле через выход также может идти трафик других клиентов — одновременно или в другое время. Если сайт ограничивает обращения с одного IP, недавняя активность этого адреса может влиять на ваши запросы. Большой запас в других странах не уменьшает нагрузку на группу, нужную вашей задаче.
Число доступных IP не определяет ресурсы сервиса. Один выход может обслуживать несколько соединений, а аккаунт с доступом ко множеству выходов — иметь ограничения одновременных соединений, частоты запросов или объёма трафика. Дополнительные записи шлюза не увеличивают эти лимиты. Выбор адресов и объём работы, который способен выполнить сервис, нужно оценивать отдельно.
При ошибке определите, на каком этапе она возникла. Отказ в доступе к шлюзу — повод проверить аутентификацию. Сообщение об отсутствии подходящего выхода — фильтры и доступность адресов. Отказ самого сайта — его ответ и отправленный запрос. Больший пул может помочь при нехватке подходящих выходов, но не исправит неверный пароль и не снимет ограничение аккаунта на сайте.
