Вход Регистрация

Прокси

Как тестировать прокси: методики и инструменты

Узнайте, как эффективно тестировать прокси с помощью различных методов и инструментов. Проверьте производительность прокси, чтобы обеспечить анонимность.

Команда Froxy 7 ноя 2024 6 мин
Как тестировать прокси: методики и инструменты

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

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

Что нужно для тестирования прокси?

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

Если новый IP определяется как IP прокси-сервера, то прокси работает как положено. Но тут есть масса подводных камней:

  • В ответе онлайн-сервиса вы получаете только выходной IP-адрес. А он может не совпадать с точкой входа, например, если используются прокси с обратной связью, выходные IP могут ротироваться хоть при каждом новом запросе, поэтому важно знать свой реальный IP, чтобы было с чем сравнить. В случае с BackConnect прокси нужно проверять не столько выходной IP, сколько соответствие условий ротации и правильность таргетинга (тип адреса, его расположение, соответствие пулу определённого провайдера связи).
  • Браузер не возвращает скорость работы прокси или его пинг. Для этого нужно проводить полноценные тесты на основе сети из опорных точек (выделенных серверов или дата-центров). Да, всегда можно вручную пропинговать через прокси список целевых URL, но степень автоматизации в этом случае будет крайне низкой.
  • Ни браузер, ни терминал не возвращают дополнительную информацию об IP-адресе: его физическое расположение, принадлежность телеком-оператору (или данные о владельце пула), поддерживаемые протоколы и т.п.
  • В ряде задач нужно проверить не только сам IP (прокси-сервер), но и возможности профильного софта. Например, для антидетект-браузеров это способность качественно эмулировать цифровые отпечатки и обходить наиболее распространённые системы защиты (антифрод-системы).
  • Не менее интересна совместимость прокси с конкретными сайтами и web-сервисами. Например, узнать, что прокси не работает с условным Google, LinkedIn или eBay можно будет только после включения прокси к полноценную работу.

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

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

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

Что следует проверять и как это делается:

  • Время отклика (скорость ответа/реакции прокси). Проверка организуется за счёт системных команд ping. Пингование производится либо от ПК (устройства) пользователя к прокси (что малоинформативно), либо от прокси к списку опорных точек (в этом случае можно узнать в каких странах и регионах у прокси будет минимальная задержка, а в каких – максимальная). В качестве опорных точек обычно выбирают региональные дата-центры, крупных телеком-операторов или сайты поисковых систем (крупных web-сервисов). Слишком большие задержки при отклике могут приводить к обрыву соединений с целевыми сайтами.
  • Скорость подключения. Проверка осуществляется за счёт скачивания тестовых архивов/файлов заданного размера. Чем больше файл и чем дольше длится проверка, тем точнее будет измерение. Но тут важно понимать, что маршрут подключения в сети Интернет может состоять из разных сегментов, часть из них могут иметь низкую надёжность и пропускную способность. Соответственно, итоговая скорость будет определяться по пропускной способности самого «узкого» сегмента. Поэтому тестирование скорости больше проводится для общего понимания возможностей прокси (подходит он под ваши задачи или нет).
  • Анонимность прокси. Прокси могут быть без анонимности (реальный IP пользователя явно указывается в специальных HTTP-заголовках), с низкой анонимностью (присутствуют характерные заголовки, но нет реального IP клиента), со средней анонимностью (когда IP-клиента намеренно подменяется на неправильный, чтобы сбить с толку системы отслеживания), с высокой анонимностью (никаких признаков того, что используется подключение через прокси, нет, все характерные HTTP-заголовки отсутствуют). Проверить анонимность прокси можно только путём анализа ответов сервера. Обратите внимание: анонимность можно проверить только в HTTP-прокси. В Socks-прокси вопрос анонимности даже не поднимается, так как никакие дополнительные HTTP-заголовки такие прокси не отправляют.
  • Местоположение. Все IP-адреса распределяются специальными компаниями – регистраторами. Соответственно, в их распоряжении есть свои базы: какие пулы IP и за кем закреплены. Но обычно такие базы не являются общедоступными (точнее они требуют глубокой переработки). Вместо этого антифрод-системы опираются на базы георасположений из открытого доступа (они могут быть в том числе и с платным доступом). К таким можно отнести: ip2location, MaxMind, SypexGeo и т.п. У таких сервисов есть API и к ним можно отправлять автоматические запросы, получая в ответ конкретное расположение IP, а также принадлежность к определённому оператору связи. Тип IP и расположение могут многое рассказать о пользователе (и прокси).
  • Наличие в спам-базах. Чёрные списки IP далеко не редкость. Крупные компании либо сами создают свои спам-базы, либо объединяются с другими игроками рынка (для экономии). Небольшим компаниям остаётся только обращаться к общедоступным спискам. К таким можно отнести: barracudacentral, Spamhaus Blocklist (SBL), SERVICESNET, CBL и другие (их десятки). Но можно либо прогонять IP по этим базам вручную, либо пользоваться специальными сервисами (в режиме одного окна).
  • Совместимость с целевыми сайтами и web-сервисами. Тут проверка только одна – попытаться подключиться через прокси к конкретным сайтам и выяснить: блокируется соединение или нет.

Вот так, например, могут выглядеть признаки неанонимных прокси в HTTP-заголовках:

Помимо непосредственно параметров прокси можно также проверять различные признаки, которые выдают работу парсера (или антидетект-браузера). Так как все боты представляются определёнными браузерами, их можно проверять по целому набору параметров: поддержка JavaScript (и передаваемые внутри системные переменные), соответствие часового пояса, поддержка ActiveX или WebRTC, user-агент, язык, разрешение экрана и т.п. Но это уже скорее про цифровые отпечатки.

Как проверить, что прокси работает

Как проверить, что прокси работает

Итак, мы выяснили, что существует несколько разных способов для проверки работоспособности прокси. К ним можно отнести: ручную установку и проверку (на своём устройстве – через браузер или терминал), использование специальных онлайн-сервисов (программ-чекеров) или самописных скриптов, которые будут делать то, что вы заложите им в программу.

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

IP-чекеры

Самый удобный формат – это онлайн-сервисы. Не нужно ничего устанавливать и настраивать. Все проверки проходят в автоматическом режиме, а вам выдаётся только итоговый результат. Существуют IP-чекеры, которые работают со списками прокси, а есть те, которые анализируют ваш IP-адрес (удобно выполнять подключение к таким страницам и в ответ получать информацию о текущем адресе, соответственно, если вы подключаетесь через прокси, то видите информацию о нём).

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

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

Примеры чекеров для штучных проверок: whatismyproxy.com, ip-api.com (информация о расположении IP-адреса и об операторе связи), 2ip.io/ru/privacy/ (проверка анонимности), 2ip.ru/spam/ (прогон IP по спам-базам).

Пример чекера для проверки больших списков – hidxxx.name/proxy-checker/. Для тестирования нужно вставить список в формате IP:Port в специальное поле, при желании можно также добавить строки с адресами сайтов, на которых нужно проверить работоспособность прокси, и запустить проверку. У чекера присутствуют платные опции (но зато можно задействовать API-интерфейс).

Базы данных IP-адресов

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

Примеры таких сервисов – IP2Location и MaxMind. Первый максимально простой и бесплатный, а второй – с массой интересных опций. Например, есть специальное решение для выявления прокси (без признаков в HTTP-заголовках, только по IP) и VPN-сервисов (сравнение VPN с прокси).

Программа для тестирования прокси – FOGLDN Proxy Tester

Это stand-alone софт, который может устанавливаться на ПК с Windows или MacOS. 

Интерфейс утилиты максимально простой и не требует перевода. Нужно только загрузить список ваших прокси (вставить в специальное поле) и запустить проверку. Плюсы очевидны: данные о ваших прокси остаются только у вас, в один клик можно удалить неработоспособные IP и выгрузить только рабочие. Программа поддерживает авторизацию по логину/паролю и умеет проверять прокси на указанных целевых сайтах. Распространяется софт абсолютно бесплатно.

Конечно, существуют определённые риски: программа написана неизвестными авторами и что конкретно в коде никто не знает. Вполне вероятно, что ваш ПК или Mac сам будет работать в роли прокси 😉

Пользовательское ПО: cкрипт для теста прокси на Golang по шагам

cкрипт для теста прокси на Golang по шагам

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

Что конкретно должен делать скрипт:

  1. Принимать список прокси (это может быть фиксированный формат).
  2. Желательно также организовать ввод хотя бы одного целевого сайта (а лучше списка).
  3. Выбирать прокси из списка по очереди и подключаться через них.
  4. При активном прокси выполнять запрос к целевому сайту – пинговать их.
  5. Выводить статус ответа целевого сайта/сервера и значение пинга (скорости ответа).

Звучит несложно, но вот реализовать такой скрипт смогут только те, кто знаком с программированием. Ниже простейший пример скрипта на языке Go.

  1. Предварительно скачайте и установите среду Go. Поддерживается установка в разных операционных системах.
  2. Для Windows нужно дополнительно скачать и установить Git-клиент (с официального сайта). Не забудьте согласиться, чтобы при установке программа автоматически добавила строки в %PATH%. Если установщик этого не сделает, то добавьте переменную окружения вручную: найдите в поиске инструмент «Изменение переменных среды текущего пользователя», откройте его, создайте новый параметр с именем «git» и значением «C:\Program Files\Git\bin\git.exe» (если путь до исполняемого файла отличается, замените на свой).
  3. Запустите командную строку (например, терминал в Windows, без прав администратора).
  4. Создайте каталог для проектов и свой первый проект. Для этого введите команды:

     

    mkdir \My-proxy-test

(каталог будет создан в корне системного диска)

cd \My-proxy-test

(переключаемся в этот каталог)

go mod init My-proxy-test

(создаём Go-модуль)

go get github.com/trananhtung/proxy-checker

(скачиваем библиотеку для тестирования прокси)

Теперь можно переходить непосредственно к созданию прокси-чекера.

Для этого перейдите в каталог с вашими скриптами («C:\My-proxy-test») и создайте скрипт (простой текстовый файл, у которого потом измените расширение с txt на go). Пусть это будет «my-proxy-cheker.go».

Откройте его в текстовом редакторе (блокноте) и наполните содержимым:

package main

import (

"fmt"

"github.com/trananhtung/proxy-checker"

)

func main() {

proxy := "http://1.1.1.1:8080" //тут должен быть ваш прокси

targetURL := "https://google.com" //тут вписываем целевой сайт

timeout := uint(5) // тут таймаут в секундах (значение в скобках)

result := proxy_checker.ProxyTest(proxy, targetURL, timeout)

if result {

fmt.Println("Прокси работает")

} else {

fmt.Println("Прокси не работает")

}

}

Обратите внимание на значения переменных: вам нужно вставить свой прокси и целевой сайт, при желании можно увеличить или уменьшить таймаут.

Теперь, как тестировать прокси:

  • Меняете значение прокси на свои.
  • Сохраняете файл.
  • Запускаете его в терминале командой «go run my-proxy-cheker.go»
  • После отработки в консоли будет выведен результат: работает прокси или не работает.

Ту же самую библиотеку можно задействовать в более сложных скриптах. В этом случае к ней можно обратиться с помощью функции ProxyTest:

func ProxyTest(proxy, urlTarget string, timeout uint) bool

Она будет возвращать истину или ложь (по аналогии «работает» или «не работает»).

В цикле можно перебирать списки прокси любого размера.

Итоги и рекомендации

как тестировать прокси

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

Выше мы описали все самые доступные методы тестирования прокси-серверов и даже показали, как это можно организовать на уровне своих скриптов.

Если вы не хотите ничего тестировать, то просто покупайте качественные прокси с ротацией у нас. Froxy – это 10+ млн. IP-адресов. В ассортименте мобильные, резидентные и датацентровые (серверные) прокси. Если адрес выходит из строя, он автоматически заменяется на работоспособный. В настройках подключения ничего менять не нужно, так как прокси работают по схеме с обратной связью (вход в прокси-сеть для клиента остаётся статичным).

Получайте уведомления о новых функциях и обновлениях Froxy

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

Статьи по Теме

Как использовать cURL с прокси: Пошаговое руководство

Прокси

Как использовать cURL с прокси: Пошаговое руководство

Узнайте, как эффективно использовать cURL с прокси, следуя нашему подробному руководству. Узнайте о преимуществах использования прокси, разберитесь в...

Команда Froxy 28 дек 2023 5 мин
Как использовать Wget с прокси-сервером

Прокси

Как использовать Wget с прокси-сервером

Wget - это свободная консольная программа для загрузки файлов по сети. Узнайте подробнее о возможностях Wget и как настроить Wget с прокси-сервером в...

Команда Froxy 11 апр 2024 5 мин