Skip to content
Beginner / 2 min read

Как аутентифицировать прокси Smartproxy: Белый список IP против имени пользователя/пароля и липкие сессии

Решите, что использовать: аутентификацию по имени пользователя/паролю или по белому списку IP, выберите ротационные или липкие сессии и проверьте ваш резидентный или датацентровый эндпоинт Smartproxy с помощью реальных HTTP- и SOCKS5-запросов, прежде чем автоматизировать что-либо.

HTTP(S) Приватность/Анонимность Другое

Обзор

Smartproxy предоставляет резидентные и датацентровые прокси-эндпоинты через HTTP(S) и SOCKS5 (более 65 млн IP на резидентной стороне) по фиксированному месячному тарифу. Два ранних решения определяют, сработает ли ваша настройка с первого раза: какой режим аутентификации вы используете и должен ли запрос сохранять тот же выходной IP или переключаться на новый.

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

Аутентификация: имя пользователя/пароль или белый список IP

Оба стиля аутентификации настраиваются в дашборде:

  • Имя пользователя/пароль — учетные данные отправляются с каждым запросом. Работает с любой машины, контейнера или CI-раннера и выдерживает смену сети или адреса интернет-провайдера.
  • Белый список IP — учетные данные не передаются с запросом, но ваш текущий публичный IP должен быть зарегистрирован. Это перестает работать в тот момент, когда ваш провайдер меняет ваш адрес или вы переходите в другую сеть.

Используйте имя пользователя/пароль, если у вас нет фиксированного офисного IP и инструмента, который вообще не может отправлять учетные данные прокси.

Типы сессий: ротационные или липкие

  • Ротационные — запросы могут исходить с другого IP каждый раз. Это поведение по умолчанию, когда токен сессии не прикреплен, и это то, что вам нужно для крупномасштабного сбора, где количество запросов с одного IP должно оставаться низким.
  • Липкие — один и тот же выходной IP сохраняется на время жизни токена сессии, что позволяет сохранять потоки с состоянием, такие как вход в систему, добавление в корзину и оформление заказа, на одном адресе.

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

Выбор между резидентными и датацентровыми эндпоинтами

Резидентные Датацентровые
Пул 65M+ IP Меньшие, стабильные диапазоны
Скорость Умеренная Высокая
Лучше всего для Гео-точный сбор, проверка рекламы, проверка цен Высокообъемный краулинг устойчивых целей, внутреннее тестирование
Риск блокировки Ниже, IP широко распределены Выше, диапазоны хорошо известны

Оба типа эндпоинтов достигаются одинаковым способом; различаются только хост, порт и учетные данные.

Шаги

  1. Найдите свой эндпоинт и учетные данные в дашборде.

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

    export SP_USER='your-proxy-username'
    export SP_PASS='your-proxy-password'
    export SP_ENDPOINT='host:port'   # paste the exact value from the dashboard
    

    Храните учетные данные в переменных окружения или в менеджере секретов, а не фиксируйте их в скрипте.

  2. Выберите режим аутентификации.

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

    curl -sS https://ipinfo.io/ip
    

    Перепроверяйте и заново добавляйте этот адрес всякий раз, когда ваш провайдер меняет его; устаревшая запись в белом списке — самая распространенная причина внезапной ошибки 407.

  3. Проверьте ротационный HTTP-запрос.

    Отправьте запрос через эндпоинт и убедитесь, что видите IP прокси, а не свой собственный.

    curl -sS -x "http://${SP_USER}:${SP_PASS}@${SP_ENDPOINT}" https://ipinfo.io/json
    

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

    for i in 1 2 3; do
      curl -sS -x "http://${SP_USER}:${SP_PASS}@${SP_ENDPOINT}" https://ipinfo.io/ip
      echo
    done
    

    Если адрес никогда не меняется, проверьте, не встроен ли в ваше имя пользователя токен сессии.

  4. Закрепите выходной IP с помощью липкой сессии.

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

    export SP_USER_STICKY='your-username-with-session-parameters'   # copy from the dashboard
    
    for i in 1 2 3; do
      curl -sS -x "http://${SP_USER_STICKY}:${SP_PASS}@${SP_ENDPOINT}" https://ipinfo.io/ip
      echo
    done
    

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

  5. Проверьте гео-таргетинг.

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

    export SP_USER_DE='your-username-with-country-parameter'   # copy from the dashboard
    curl -sS -x "http://${SP_USER_DE}:${SP_PASS}@${SP_ENDPOINT}" https://ipinfo.io/json
    

    Поле country в ответе должно совпадать с целевым значением, которое вы настроили.

  6. Проверьте SOCKS5-эндпоинт.

    Используйте схему socks5h://, чтобы разрешение DNS происходило на прокси, а не локально, что предотвращает утечки и блокировки на основе DNS.

    curl -sS -x "socks5h://${SP_USER}:${SP_PASS}@${SP_ENDPOINT}" https://ipinfo.io/json
    

    Если ваш клиент поддерживает только socks5://, DNS разрешается локально; в скриптах предпочитайте socks5h.

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

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

    export SP_DC_ENDPOINT='datacenter-host:port'
    curl -sS -x "http://${SP_USER}:${SP_PASS}@${SP_DC_ENDPOINT}" https://ipinfo.io/ip
    
  8. Используйте эндпоинт из Python.

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

    import os
    import requests
    
    auth = f"{os.environ['SP_USER']}:{os.environ['SP_PASS']}@"
    endpoint = os.environ['SP_ENDPOINT']
    proxies = {
        "http": f"http://{auth}{endpoint}",
        "https": f"http://{auth}{endpoint}",
    }
    
    response = requests.get("https://ipinfo.io/json", proxies=proxies, timeout=30)
    response.raise_for_status()
    print(response.json())
    

    Для липкой работы создайте второй словарь proxies из SP_USER_STICKY и используйте его для всей сессии.

  9. Добавьте логику повторных попыток и ротации.

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

    import time
    
    for attempt in range(4):
        try:
            response = requests.get("https://ipinfo.io/json", proxies=proxies, timeout=30)
            if response.status_code < 400:
                break
        except requests.RequestException:
            pass
        time.sleep(2 ** attempt)
    

Устранение неполадок

  • 407 Proxy Authentication Required — имя пользователя или пароль неверны, строка сессии или таргетинга была вставлена не в то поле, или ваш IP в белом списке больше не соответствует вашему текущему адресу. Заново скопируйте строку из генератора в дашборде.
  • Учетные данные отклонены после успешной работы — пароли, содержащие @, :, / или #, должны быть URL-кодированы внутри URL прокси (@ становится %40, : становится %3A). Предпочитайте пароль без специальных символов, если ваш инструмент не может их кодировать.
  • curl: (7) Failed to connect — хост или порт неверны, или вы скопировали резидентный эндпоинт в датацентровый слот (или наоборот). У каждого продукта свой хост и порт.
  • Каждый запрос возвращает один и тот же IP — в имени пользователя все еще присутствует токен липкой сессии, или вы используете набор учетных данных для липкой сессии вместо ротационного.
  • Липкая сессия меняет IP в середине рабочего процесса — время жизни сессии истекает. Начните новый токен сессии намеренно и повторно аутентифицируйтесь, вместо того чтобы предполагать, что старый сохранится бесконечно.
  • Запросы истекают только на SOCKS5 — клиент может не поддерживать удаленный DNS. Переключитесь на socks5h:// или используйте HTTP-эндпоинт для этого инструмента.
  • Аутентификация по белому списку периодически не работает — мобильные сети и домашние подключения меняют публичные IP. Используйте имя пользователя/пароль для автоматических задач.

Итог

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