Ротація чи sticky-сесія: як налаштувати зміну IP під завдання

Коли потрібен новий IP на кожне зʼєднання, а коли одна адреса на пів години. Як працюють обидва режими, який час життя сесії ставити і які помилки трапляються найчастіше.

5 хв читання

Коли ви створюєте проксі в кабінеті, треба обрати режим: ротація чи sticky-сесія. Здається, що це дрібниця, але від цього вибору залежить, чи працюватиме завдання. Багато звернень у підтримку зі скаргою «проксі не працюють» насправді зводяться до невідповідного режиму, а самі проксі в порядку.

Ротація: новий IP на кожне зʼєднання

За ротації кожне нове зʼєднання виходить в інтернет через іншу адресу з пулу обраної країни. Сто зʼєднань сайт побачить як сто різних відвідувачів.

Для парсингу це саме те, що треба. Обмеження на частоту запитів (rate limit) майже завжди рахуються за IP. Якщо навантаження розподілене на сотні адрес, до ліміту справа не доходить.

Зверніть увагу: IP змінюється на кожне зʼєднання, а не на кожен запит. Якщо HTTP-клієнт тримає keep-alive і надсилає десять запитів в одному TCP-зʼєднанні, усі десять підуть з однієї адреси. Коли під час перевірки ротації скриптом ви бачите IP, що повторюються, причина зазвичай у цьому. Найпростіше перевіряти через curl: кожен його виклик відкриває нове зʼєднання.

bash
# кожен виклик curl відкриває нове зʼєднання, отже IP буде новий
for i in 1 2 3; do
  curl -s -x http://LOGIN:PASSWORD@proxy-dealer.com:5555 https://api.ipify.org
  echo
done

Якщо створити в кабінеті одразу кілька проксі з ротацією, їхні логіни відрізнятимуться міткою line. Вона потрібна лише для того, щоб конфіги можна було розрізняти, на зміну IP вона не впливає.

Sticky-сесія: один IP на заданий час

Sticky-сесія (від англійського sticky, «липкий») закріплює за вами одну адресу. Усі зʼєднання йдуть через неї, доки сесія не закінчиться. Для будь-якої роботи зі входом в акаунт потрібен саме цей режим.

Ось як ротація всередині акаунта виглядає з боку майданчика. Користувач увів пароль із Нью-Йорка, за секунду відкрив налаштування з Чикаго, ще за секунду натиснув «Зберегти» з Далласа. Антифрод таке не пропустить. У sticky-сесії вся робота в акаунті йде з одного IP, як у звичайної людини.

Сесія задається міткою в логіні. Кабінет додає її сам, але корисно розуміти, з чого складається логін:

text
LOGIN-country-US-city-chicago-sid-k3v9x2ab-ttl-30m
       │          │            │            └ час життя: 30 хвилин
       │          │            └ ідентифікатор сесії
       │          └ місто
       └ країна

Доки ідентифікатор сесії (sid) не змінюється, ви отримуєте той самий IP. Новий sid означає нову адресу. Тому на одному балансі можна тримати кілька незалежних профілів: створіть у кабінеті кілька sticky-проксі, у кожного буде свій sid.

Який час життя ставити

За резидентським чи мобільним IP стоїть чийсь реальний пристрій. Якщо власник вимкне роутер або телефон втратить мережу, сесія обірветься раніше строку, і ви отримаєте нову адресу. Вплинути на це не можна, так улаштовані такі мережі. Тому ставте той час життя, якого вистачить на завдання, без великого запасу. У кабінеті можна задати до двох годин.

ЗавданняРежимЧас життя
Парсинг каталогу чи видачіРотаціяне задається
Оформлення замовлення, багатокрокова формаSticky10–15 хвилин
Робота в рекламному кабінетіSticky30–60 хвилин
Профіль в антидетект-браузеріSticky, окремий на кожен профіль30–60 хвилин

Буває й навпаки: сесія жива, але пристрій трапився повільний. За нашими замірами швидкість мобільних пристроїв в одній і тій самій країні може відрізнятися в кілька разів. Якщо sticky-проксі помітно гальмує, не чекайте кінця сесії й перестворіть проксі в кабінеті. Новий sid дасть інший пристрій.

Помилки, які трапляються найчастіше

Ротація в антидетект-браузері

Браузер відкриває десятки зʼєднань паралельно: картинки, скрипти, шрифти. За ротації кожне йде з нового IP, і сайт бачить, що одну сторінку завантажили з пʼятнадцяти різних місць. Для браузерних профілів підходить лише sticky.

Один sticky-проксі на кілька акаунтів

Якщо три акаунти працюють через один sid, для майданчика вони сидять на одному IP, і це прямий звʼязок між ними. Кожному акаунту потрібна своя сесія.

Sticky для масового парсингу

Увесь потік запитів іде через одну адресу й швидко впирається в ліміт. Скрипт отримує помилку 429 або капчу, і здається, що проксі погані. Для збору даних вмикайте ротацію.

Перевірте на своєму завданні

Резидентські: $3 за ГБ, мобільні: $4 за ГБ. Оплата за трафік, без підписки, гігабайти не згорають.

СТВОРИТИ АКАУНТ