Инструменты для прокси · 1 мин чтения

Как проверить, рабочий ли прокси (с готовым скриптом)

Прокси полезен только тогда, когда он жив, скрывает ваш настоящий IP и достаточно быстр для задачи. Разбираем пять способов проверить все три пункта — вместе с готовым чекером на bash и Python, который можно запустить прямо сейчас.

Что на самом деле значит «рабочий прокси»

Это три отдельные проверки, а не одна.

О прокси говорят «работает», будто это один факт с ответом «да» или «нет». Это не так: прокси может пройти одну проверку и провалить две другие, и каждый провал ломает свою задачу. Нормальная проверка отвечает на три вопроса.

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

Если нужно быстро проверить один прокси, вставьте его в чекер прокси s4m. Если же у вас целый список — например, отфильтрованные записи из бесплатного публичного списка прокси, — используйте скрипты ниже и проверьте всё пакетно.

Пять способов проверить прокси

От одного клика до пакетного скрипта.

Воспользуйтесь онлайн-чекером

Самый быстрый вариант: вставьте HOST:PORT в инструмент /tools/proxy-checker/ и получите живость, время отклика и уровень анонимности. Идеально для одного прокси или быстрой выборочной проверки — ничего устанавливать не нужно.

Проверьте один прокси через curl

Одна команда показывает, жив ли он и какой выходной IP видит мир: сделайте curl через прокси к сервису, возвращающему ваш IP, и сравните ответ со своим настоящим адресом. Совпали — прокси прозрачный и сливает вас.

Проверьте уровень анонимности

Обратитесь к эндпоинту, который отражает ваши заголовки. Высокоанонимный (elite) прокси не шлёт ни Via, ни X-Forwarded-For, выдающих ваше происхождение; анонимный прячет ваш IP, но сообщает, что он прокси; прозрачный передаёт ваш настоящий IP-адрес. Это соответствует фильтрам elite/anonymous/transparent в бесплатном списке.

Измерьте задержку

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

Автоматизируйте весь список скриптом

Для десятков или тысяч прокси пройдитесь циклом по файлу и запишите живой/мёртвый, выходной IP и задержку. Чекеры на bash и Python ниже делают ровно это — скопируйте, сохраните и запустите.

Чекер прокси на bash

Сохраните как proxy-check.sh, положите по одному HOST:PORT в строке в proxies.txt (по умолчанию SOCKS5), затем: bash proxy-check.sh proxies.txt

bash
#!/usr/bin/env bash
# proxy-check.sh — test proxies for liveness, latency and anonymity.
# Usage: bash proxy-check.sh proxies.txt   (one HOST:PORT per line, SOCKS5)
set -u
TARGET="https://api.ipify.org"
TIMEOUT=8

myip=$(curl -s --max-time "$TIMEOUT" "$TARGET")
echo "your real IP: $myip"
echo "-------------------------------------------"

while IFS= read -r proxy; do
  [ -z "$proxy" ] && continue
  start=$(date +%s.%N)
  out=$(curl -s --max-time "$TIMEOUT" --socks5-hostname "$proxy" "$TARGET")
  code=$?
  end=$(date +%s.%N)
  if [ $code -ne 0 ] || [ -z "$out" ]; then
    printf '%-22s DEAD\n' "$proxy"
    continue
  fi
  ms=$(awk "BEGIN{printf \"%d\", ($end-$start)*1000}")
  if [ "$out" = "$myip" ]; then
    printf '%-22s ALIVE %5sms  TRANSPARENT (leaks your IP!)\n' "$proxy" "$ms"
  else
    printf '%-22s ALIVE %5sms  OK exit=%s\n' "$proxy" "$ms" "$out"
  fi
done < "$1"

Чекер прокси на Python

Сохраните как proxy_check.py и запустите: pip install "requests[socks]" && python3 proxy_check.py proxies.txt

python
#!/usr/bin/env python3
"""proxy_check.py — validate proxies for liveness, latency and anonymity.
Usage: python3 proxy_check.py proxies.txt   (one HOST:PORT per line)
Requires: pip install "requests[socks]"
"""
import sys, time, requests

TARGET = "https://api.ipify.org"
TIMEOUT = 8

def real_ip():
    return requests.get(TARGET, timeout=TIMEOUT).text.strip()

def check(proxy, my_ip):
    proxies = {"http": f"socks5h://{proxy}", "https": f"socks5h://{proxy}"}
    t0 = time.perf_counter()
    try:
        exit_ip = requests.get(TARGET, proxies=proxies, timeout=TIMEOUT).text.strip()
    except Exception:
        return f"{proxy:22} DEAD"
    ms = int((time.perf_counter() - t0) * 1000)
    if exit_ip == my_ip:
        return f"{proxy:22} ALIVE {ms:5}ms  TRANSPARENT (leaks your IP!)"
    return f"{proxy:22} ALIVE {ms:5}ms  OK exit={exit_ip}"

def main():
    my_ip = real_ip()
    print("your real IP:", my_ip)
    print("-" * 43)
    with open(sys.argv[1]) as fh:
        for line in fh:
            p = line.strip()
            if p:
                print(check(p, my_ip))

if __name__ == "__main__":
    main()

Как читать результаты

Что означают DEAD, TRANSPARENT и OK.

Оба скрипта печатают одни и те же три вердикта. DEAD значит, что запрос так и не завершился — прокси лежит, заблокирован или не уложился в таймаут; выбрасывайте. TRANSPARENT значит, что прокси ответил, но выходной IP совпадает с вашим настоящим: он передаёт ваш адрес дальше и не даёт никакой анонимности. OK с другим выходным IP и приемлемой цифрой в миллисекундах — это то, что стоит оставить.

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

FAQ

Ответы на вопросы

Как понять, что прокси сливает мой настоящий IP-адрес?

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

Чем различаются elite, anonymous и transparent прокси?

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

Почему прокси из бесплатного списка так быстро умирают?

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

Можно ли использовать скрипт и для HTTP-прокси?

Да. В примерах предполагается SOCKS5 (socks5h), который заодно резолвит DNS удалённо. Для HTTP-прокси смените схему на http:// (curl -x http://HOST:PORT или http:// в словаре proxies в Python) и укажите HTTP-порт прокси, например 3128.

Хватит нянчить мёртвые прокси

Используйте тайм-ауты, повторные попытки и проверки работоспособности. Аутентификация или оплата не гарантирует доступность либо принятие запроса целевым сервисом. Посмотрите статус и время проверки, затем проверьте адрес перед использованием.

Эту страницу нашли по запросу

Реальные поисковые фразы, на которые отвечает эта страница — по ссылкам откроются материалы, раскрывающие тему глубже.