Каждый запрос вашей машины к интернету несёт ваш IP-адрес. Прокси-сервер стоит посередине и делает запрос вместо вас, поэтому назначение видит адрес прокси, а не ваш. Этот один уровень переадресации, вся суть. Всё остальное: ротация, уровни анонимности, дюжина торговых наименований, это вариации на эту тему.
В этой статье рассматривается, что на самом деле происходит, когда вы направляете трафик через прокси, несколько типов, которые стоит понять, и как выбрать нужный для реальной задачи. Мы упорядочим шестнадцать «типов», которые встречаются в других источниках, по решениям, которые они действительно представляют, поскольку большинство из них описывают одни и те же два-три варианта выбора под разными названиями.
Что такое прокси-сервер
Прокси-сервер, это машина, которая выполняет сетевые запросы от имени другой машины. Ваш клиент общается с прокси, прокси общается с назначением, и ответ возвращается тем же путём. Для назначения трафик выглядит так, будто он пришёл от прокси.
Эта переадресация даёт несколько преимуществ сразу: источник видит другой IP, вы можете разместить этот IP в другой сети или стране, а промежуточный узел может проверять, кэшировать, фильтровать или переписывать трафик по мере его прохождения. То, что из этого вам нужно, определяет, какой тип прокси вы выбираете.
Как прокси работает на самом деле
При использовании HTTP-прокси ваш клиент открывает соединение с прокси, а не с целевым сайтом, и указывает полный URL цели в строке запроса. Прокси читает это, открывает собственное соединение с источником, пересылает ваш запрос и передаёт ответ обратно. Поскольку прокси видит запрос в виде открытого текста, он может добавлять, удалять или переписывать заголовки на пути. Именно так прокси прикрепляет чистый IP, устанавливает геолокацию или применяет политику заголовков.
С HTTPS всё иначе. Ваш клиент не может позволить прокси читать зашифрованный поток, поэтому он отправляет запрос CONNECT, прося прокси открыть сырой туннель до источника, и затем выполняет TLS-рукопожатие прямо через этот туннель. Прокси перемещает байты туда-обратно, не видя их содержимого.
# Client asks the proxy to tunnel to the origin CONNECT example.com:443 HTTP/1.1 Host: example.com:443 # Proxy confirms, then relays the encrypted bytes blindly HTTP/1.1 200 Connection Established
Именно поэтому HTTP-прокси может фильтровать или изменять контент, а HTTPS-туннель в основном лишь ретранслирует его. «Прозрачная» инспекция HTTPS требует установки сертификата на клиенте, чтобы прокси мог самостоятельно завершать TLS, и к этому следует относиться скептически в любой сети, которую вы не контролируете.
Таксономия прокси: четыре решения, а не шестнадцать типов
Большинство списков «типов прокси» смешивают четыре несвязанных вопроса в одно плоское меню. Разделите их, и картина упростится. Любой конкретный прокси, это точка в четырёх измерениях: откуда берётся его IP, в каком направлении он смотрит, по какому протоколу работает и насколько раскрывает информацию о вас.
По происхождению: датацентровые, резидентные, мобильные
Это наиболее важное измерение для скрейпинга, и именно за него люди платят.
Датацентровые прокси, это IP-адреса, размещённые у облачных провайдеров или хостингов. Они быстрые и дешёвые, и поставляются большими непрерывными блоками, что также делает их наиболее лёгкими для распознавания и блокировки со стороны сайта. Используйте их там, где цель не проверяет репутацию IP.
Резидентные прокси работают через реальные потребительские соединения ISP, поэтому их IP выглядят как обычные домашние пользователи. Они медленнее и дороже, но заблокировать их гораздо сложнее. Подробное сравнение см. в датацентровые vs резидентные прокси, а статья ISP vs резидентные прокси описывает промежуточный вариант, статические резидентные прокси.
Мобильные прокси работают через сотовые сети (4G и 5G). Поскольку операторы распределяют небольшой пул IP-адресов между множеством абонентов через carrier-grade NAT, блокировка одного мобильного IP рискует заблокировать тысячи реальных пользователей, поэтому сайты мирятся с ними лучше всего. Они также самые дорогостоящие.
Забудьте о логике ротации. Smart AI Proxy выбирает резидентный, датацентровый или мобильный IP для каждого запроса, обрабатывает повторные попытки и стоит за одной конечной точкой, поэтому вам не нужно управлять пулами самостоятельно.
По направлению: прямой vs обратный
Прямой прокси (forward proxy) стоит перед клиентами и смотрит наружу, в интернет. Именно это обычно имеют в виду под словом «прокси»: вы направляете через него свой трафик. Обратный прокси (reverse proxy) стоит перед серверами и смотрит на них изнутри, принимая запросы от публики и распределяя их по бэкендам для балансировки нагрузки, кэширования или завершения TLS. Nginx перед приложением, это обратный прокси. Механика перекрывается, но цель противоположна. Подробное сравнение в статье прямой vs обратный прокси.
По протоколу: HTTP(S) vs SOCKS5
HTTP-прокси понимает HTTP, что позволяет ему действовать на уровне запросов (переписывание заголовков, о котором говорилось выше). SSL/HTTPS-прокси, это просто HTTP-прокси, который также обрабатывает туннель CONNECT для зашифрованного трафика; подробнее в HTTP vs HTTPS прокси.
SOCKS5-прокси работает на уровень ниже. Он пересылает сырые TCP- и UDP-пакеты, не понимая протокол поверх них, поэтому переносит всё (HTTP, электронную почту, торренты, игровой трафик), но не может переписывать заголовки, поскольку никогда их не читает. Выбирайте SOCKS5, когда нужна агностическая переадресация по протоколу; HTTP, когда нужен контроль на уровне запроса. Подробности в что такое SOCKS5-прокси.
По анонимности: прозрачный, анонимный, элитный
Прокси различаются тем, сколько они раскрывают. Прозрачный прокси передаёт ваш реальный IP в заголовках вроде X-Forwarded-For и объявляет о себе; используется для кэширования и контентной фильтрации, но не для анонимности. Анонимный прокси скрывает ваш IP, но всё ещё идентифицирует себя как прокси. Элитный прокси, или прокси с высокой анонимностью, скрывает и то, и другое, представляясь обычным клиентом. Искажающий прокси идёт дальше и сообщает поддельный IP. Для скрейпинга, как правило, нужно элитное поведение, при котором цель не может понять, что задействован прокси.
Специализированные и приватные прокси
Прочие названия, которые вы встретите, это скорее узконаправленные инструменты, а не отдельные категории:
- Web-прокси: прокси, которым управляют через страницу браузера, без настройки клиента. Удобный, ограниченный, часто логируемый.
- CGI-прокси: та же идея, реализованная как серверный скрипт, который получает страницы для вас.
- Suffix-прокси: добавляет своё имя к URL цели; тривиален в использовании, легко блокируется, распространён для обхода простых фильтров.
- DNS-прокси: пересылает DNS-запросы, а не HTTP; используется для фильтрации и географической маршрутизации на уровне разрешения имён.
- Tor (onion) и I2P: сети анонимности, а не коммерческие прокси. Они маршрутизируют трафик через несколько добровольных ретрансляторов для сильной анонимности ценой значительной задержки. Подходят для приватности, но не для высокопроизводительного скрейпинга.
Для чего на самом деле используют прокси
Отбросив перечни функций, прокси решают четыре практические задачи:
Сбор данных в масштабе. Основное реальное применение. Ротирующиеся IP позволяют собирать публичные данные (цены, объявления, результаты поиска) без ограничения или блокировки единственного адреса. Вот почему скрейпинговая инфраструктура, это по большей части прокси-инфраструктура.
Управление геолокацией. Прокси в другой стране позволяет видеть геоспецифичные цены, контент и результаты поиска, а также тестировать поведение вашего сайта для пользователей из других мест.
Ускорение через кэширование. Прямой или обратный прокси, кэширующий ответы, обслуживает повторные запросы локально, снижая задержку и нагрузку на источник. Именно по этой причине корпоративные сети изначально использовали прокси.
Безопасность, фильтрация и мониторинг. Будучи узловой точкой для трафика, прокси может блокировать категории сайтов, проверять запросы на нарушения политик и вести журнал использования. Это контентная фильтрация и мониторинг трафика, поэтому прокси распространены в управляемых сетях.
Риски, честно
Прокси, это машина, через которую вы направляете свой трафик, а значит, вы доверяете тому, кто ею управляет.
Обычный HTTP-прокси может читать всё, что вы отправляете по незашифрованным соединениям, а злоумышленник-оператор может логировать учётные данные или внедрять контент. Бесплатные публичные списки прокси, наихудшие из них: вы понятия не имеете, кто ими управляет и что они сохраняют. Если прокси бесплатный, анонимный и вы его не настраивали, считайте, что он всё логирует.
Стоит назвать два конкретных риска. Первый: отсутствие шифрования на прокси-узле: при использовании обычного HTTP-прокси соединение между вами и прокси не зашифровано, если только сам назначения не использует HTTPS. Второй: несанкционированное хранение данных: любой прокси может записывать проходящие через него запросы, поэтому политика логирования важна не меньше, чем качество IP. Для рабочей среды используйте провайдера с чёткой политикой, а не скрейпнутые бесплатные списки.
Как направить трафик через прокси
В простейшем случае прокси, это хост, порт и необязательные учётные данные. Большинство инструментов принимают их напрямую. Вот один запрос через HTTP-прокси с помощью curl:
# Send the request through a proxy and check the exit IP curl -x "http://user:[email protected]:8080" "https://httpbin.org/ip" # Response shows the proxy's IP, not yours { "origin": "203.0.113.42" }
Для всего сеанса оболочки можно установить переменные окружения HTTP_PROXY и HTTPS_PROXY, которые соблюдает большинство инструментов командной строки. Браузеры и операционные системы предоставляют те же настройки хоста и порта в параметрах сети. Механика везде одинакова; меняется только поле конфигурации.
Использование Crawlbase Smart AI Proxy
Самостоятельное управление пулами, ротацией и повторными попытками, вот что становится дорогостоящим. Управляемая конечная точка скрывает это за собой: вы направляете клиента на один хост, и он выбирает IP, ротирует при сбое и возвращает ответ. С управляемым провайдером работает тот же вызов curl, минус необходимость поддерживать пул. Именно такую модель использует Crawlbase Smart AI Proxy, и вы можете подключить его согласно документации API.
Как узнать и проверить IP вашего прокси
Чтобы увидеть IP, который предоставляет прокси, запросите через него эхо-сервис вроде httpbin.org/ip или ifconfig.me и прочитайте вернувшийся адрес, точно как в примере с curl выше. Если там отображается IP прокси, а не ваш собственный, маршрутизация работает.
Что касается подделки: IP-адрес в заголовках вроде X-Forwarded-For легко сфабриковать, поэтому серверы никогда не доверяют им при принятии решений в сфере безопасности. Сам TCP-адрес источника нельзя подделать для обычного двустороннего соединения, поскольку рукопожатие требует получения пакетов обратно. Прокси не столько скрывает ваш IP, сколько легитимно инициирует соединение от своего собственного.
Ключевые выводы
- Прокси, это один уровень переадресации. Он делает запрос вместо вас, поэтому источник видит его IP, а не ваш.
- HTTP-прокси видит ваши запросы; HTTPS-туннель, нет. Этот единственный факт объясняет, что каждый из них может и не может делать.
- Выбирайте по четырём осям, а не по шестнадцати типам: происхождение, направление, протокол, анонимность. Большинство именованных «типов», просто один из этих вариантов выбора.
- Для скрейпинга главное, происхождение. Датацентровые, для скорости, резидентные и мобильные, для обхода блокировок.
- Вы доверяете тому, кто управляет прокси. Бесплатные анонимные прокси несут риск логирования; используйте провайдера с чёткой политикой.
Часто задаваемые вопросы
Чем прокси-сервер отличается от пакетного фильтрующего файрвола?
Прокси работает на прикладном уровне и делает запросы от вашего имени, поэтому он понимает и может переписывать трафик, который передаёт. Пакетный фильтрующий файрвол работает на более низком уровне, разрешая или отбрасывая пакеты на основе адресов и портов, не выступая в роли конечной точки. Файрвол решает, может ли трафик пройти; прокси участвует в нём.
Что такое адрес прокси-сервера?
Это хост и порт, к которым подключается ваш клиент, например proxy.example.com:8080, иногда с именем пользователя и паролем. Этой пары достаточно инструменту для маршрутизации трафика через прокси.
Как найти адрес прокси-сервера?
Для прокси, которым вы управляете или на который подписаны, провайдер предоставляет хост, порт и учётные данные. В управляемой сети адрес может быть установлен в настройках сети вашей операционной системы или браузера либо автоматически задан администратором. Чтобы узнать IP, который предоставляет прокси, запросите через него эхо-сервис.
Какова типичная функция прокси-сервера?
Наиболее распространённое рабочее применение, сбор публичных веб-данных в масштабе путём ротации IP во избежание ограничений скорости и блокировок. В корпоративных сетях наиболее распространённая функция, кэширование и контентная фильтрация в единой контролируемой точке.
Обходите любой сайт в масштабе, без борьбы с инфраструктурой.
Crawlbase берёт на себя прокси, отпечатки и CAPTCHA, чтобы ваша команда выпускала конвейеры данных вместо поддержки обвязки краулинга. 1 000 запросов бесплатно, без карты.
