Все локации активны · 99.99% uptime
Резидентные прокси

Что такое sticky session и как её настроить?

Если вы вошли на сайт, а вторым запросом появляетесь из другой страны, платформа замечает это мгновенно: cookie та же, IP другой. Результат обычно — сброс сессии или требование дополнительной проверки. Sticky-сессияустраняет эту проблему, позволяя сохранять один и тот же выходной IP в течение заданного времени.

В этой статье разбираем, как работает sticky-сессия, как управлять её длительностью и как обрабатывать обрывы.

Проблема: что ломает смена IP?

СХЕМАПоследствия смены IP в середине сессии
Типичные проблемы, вызванные CGNATCONNECT ornek.com:443 HTTP/1.1ПроксиПлатформаЗапрос на вход (IP: A)АутентификацияCookie сессииЗапрос данных (IP: B)Та же cookie, другой IPДополнительная проверка / сброс сессии

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

Как запросить sticky-сессию?

Есть три способа сказать gateway «отправляй эти запросы с одного выхода». Самый распространённый — встроить ключ сессии в имя пользователя:

СХЕМАИмя пользователя с ключом сессии
АНАТОМИЯmusteri-country-tr-session-7f3a2b-ttl-15mmusteriИдентификатор аккаунтаcountry-trФильтр страны выходаsession-7f3a2bКлюч, уникально идентифицирующий эту сессиюttl-15mЗапрошенный срок стабильности

Ключ формируете вы. Пока вы передаёте один и тот же ключ, gateway старается направлять вас на тот же узел; при смене ключа вы получаете новый выход.

МетодПримерПреимущество
В имени пользователяuser-session-a1Один порт, неограниченное число сессий
По портуgateway:10001Учётные данные постоянны, удобно для простых клиентов
Через APIPOST /session/createПрограммное управление жизненным циклом сессии

Формирование ключа: практические правила

СХЕМАПостоянный, переиспользуемый ключ на каждый аккаунт
Python — управление ключом сессии01import hashlib, os, time0203GATEWAY = "gateway.example.com:8000"04USER, PASS = os.environ["PROXY_USER"], os.environ["PROXY_PASS"]0506def session_key(hesap_id: str) -> str:07 # Пусть один и тот же аккаунт всегда даёт один и тот же ключ08 return hashlib.sha1(hesap_id.encode()).hexdigest()[:10]0910def proxy_url(hesap_id: str, ulke: str = "tr", ttl: str = "15m") -> str:11 key = session_key(hesap_id)12 user = f"{USER}-country-{ulke}-session-{key}-ttl-{ttl}"13 return f"http://{user}:{PASS}@{GATEWAY}"1415# Использование: один и тот же аккаунт при каждом вызове идёт на тот же выход16proxies = {"http": proxy_url("hesap_42"), "https": proxy_url("hesap_42")}

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

Самая частая ошибка

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

TTL: какой срок выбрать?

СХЕМАРекомендуемая длительность sticky по типу задачи
ВРЕМЯ1–3 мин10 мин30 минСтатический IPПарсинг страниц товаровИдеальноПодходитИзлишнеИзбыточноКорзина / оформление заказаНедостаточноИдеальноПодходитПодходитУправление аккаунтамиНедостаточноНедостаточноИдеальноИдеальноСессия в панелиНедостаточноНедостаточноПодходитИдеально

Выбор избыточно долгого срока приводит к большему числу запросов с одного IP и повышает риск упереться в лимит скорости. Определяйте срок по реальной потребности задачи.

Для доступа к панелям, требующим постоянной сессии, и для долгосрочного управления аккаунтами вместо sticky правильнее использовать напрямую статические ISP-прокси использовать; там IP не меняется вообще.

Почему обрывается sticky?

СХЕМАПричины обрыва сессии и их решения
ДИАГНОСТИКАКОД / ПРИЗНАКВОЗМОЖНАЯ ПРИЧИНАРЕШЕНИЕКлюч разный в каждом запросеСлучайная генерация в кодеВыводите ключ из идентификатора аккаунта и логируйте егоИстёк TTLЗапрошенный срок закончилсяУвеличьте срок под задачу или обновите сессиюУзел ушёл офлайнДомашнее устройство отключилось от сетиПересоздайте сессию с новым IPДругой параметр страныРазное значение country в двух запросахФиксируйте страну и ключ вместеПул соединений смешиваетсяОдин пул с разными учётными даннымиИспользуйте отдельный объект клиента/сессии для каждой сессии

Первые две строки — из вашего собственного кода, третья обусловлена природой пула. Для диагностики сначала убедитесь в постоянстве ключа.

Как корректно обрабатывать обрыв

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

01

Отслеживайте смену IP

В начале каждой сессии фиксируйте выходной IP. Если при периодической проверке IP изменился, считайте сессию оборванной.

02

Закрывайте сессию чисто

Сохраняйте cookie, но не бросайте начатую операцию на полпути; незавершённая операция вызывает подозрения на платформе.

03

Пересоздавайте с новым ключом

Сформируйте новый ключ сессии и выполните вход заново. Не пытайтесь использовать прежнюю cookie с новым IP.

04

Ограничьте число повторных попыток

Множество повторных входов подряд по одному аккаунту вызывает тревогу на платформе. Делайте паузы между попытками.

Сопоставление аккаунт — IP

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

СХЕМАПостоянное сопоставление сессии на каждый аккаунт
СОПОСТАВЛЕНИЕПулвыходные узлы1Аккаунт A → ключ a1всегда один и тот же2Аккаунт B → ключ b7другой выход3Сопоставление хранится постоянносохраняется даже при перезапуске процесса

Храните соответствие не в памяти, а в постоянном хранилище (база данных, файл); иначе при каждом перезапуске ваши аккаунты разойдутся по разным выходам.

Для сценариев с несколькими аккаунтами прокси для соцсетей наша статья и наша страница продукта дают дополнительный контекст.

Проверка: действительно ли sticky работает?

СХЕМАИзмерение стабильности сессии
# подробный вывод curl — посмотрите строки CONNECT01# Отправьте 6 запросов с одним ключом и сравните выходные IP02USER="musteri-country-tr-session-test01-ttl-10m"03for i in $(seq 1 6); do04 curl -s -x "http://$USER:$PASS@gateway.example.com:8000" \\05 https://ornek-ip.example/text06 sleep 3007done0809# Ожидается: во всех шести строках один и тот же IP10# Если отличаются: постоянен ли ключ, достаточен ли TTL, исправен ли узел?

Проведите этот тест и до покупки. Разница между заявленным сроком и реальным поведением может стать решающей при выборе провайдера.

Резюме

Sticky-сессия — обязательное условие для любой задачи со входом в аккаунт. Выводите ключ из идентификатора аккаунта и храните его постоянно, выбирайте TTL по реальной потребности задачи и рассматривайте обрыв не как ошибку, а как ожидаемую ситуацию. Если нужен постоянный IP, вместо sticky статические ISP-прокси более подходящий инструмент. Чтобы проверить свою конфигурацию Мой IP-адрес и проверка proxy вы можете воспользоваться нашими инструментами.

Часто задаваемые вопросы

01Сколько минут длится sticky-сессия?

Зависит от провайдера; типичный диапазон — от 1 до 30 минут. Некоторые сервисы предлагают больший срок, но без гарантии, поскольку выходной узел может отключиться в любой момент.

02Как формировать ключ сессии?

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

03Можно ли с тем же ключом запросить другую страну?

Нет, это противоречивый запрос. При смене параметра страны gateway обращается к другому пулу узлов, и сессия обрывается. Держите страну и ключ неизменными вместе.

04Что делать, если во время sticky-сессии сменился IP?

Считайте сессию оборванной и выполните вход заново с новым ключом. Попытка использовать прежнюю cookie с новым IP — самое рискованное поведение, провоцирующее дополнительную проверку на платформе.

05Достаточно ли sticky вместо статического IP?

Для коротких и среднесрочных операций достаточно. Для сессий в панелях, которые должны быть постоянно открыты, и для доступа с whitelist по IP нужен статический ISP-прокси.

Связанные статьи и страницы

СЛЕДУЮЩИЙ ШАГ

Усильте свою прокси-инфраструктуру уже сегодня.

Начните с платным тарифом за считанные минуты или сначала попробуйте наш бесплатный список прокси.

FREEPROXY.TR

Ищете бесплатные прокси — вы попали по адресу

Комплексная прокси-платформа, где можно посмотреть актуальные адреса бесплатных прокси, сравнить типы HTTP и SOCKS и проверить свои прокси-подключения бесплатными инструментами.