← Назад в базу знаний

Ротация IP без разрыва сессии: как работают sticky sessions и привязка к порту

Ротация IP без разрыва сессии: как работают sticky sessions и привязка к порту

Ротация IP без разрыва сессии: sticky sessions и привязка к порту

Прокси-серверы крутят IP. Это их работа. Но когда IP меняется — сессия падает. Теряется авторизация, слетает корзина, Яндекс начинает видеть бота. Решение — sticky sessions и привязка к порту. Разберём, как это работает на практике.

Проблема: сессия vs ротация

HTTP-сессия держится на куках, токенах или IP-адресе. Меняешь IP — сервер думает, что пришёл новый пользователь. Капча, редирект на логин, блокировка. Для парсинга это смерть.

IPv6 прокси от lexic.ml дают пул адресов. Без привязки каждый запрос — новый IP. Сервер видит: 2a01:4f8:xxxx:1, потом 2a01:4f8:xxxx:2. Сессия разорвана.

Sticky sessions: как это работает

Sticky session — фиксация одного IP на время сессии. Прокси запоминает, какой адрес выдал клиенту, и держит его до конца сессии. Механизм простой:

1. Первый запрос — прокси выбирает IP из пула.

2. Создаётся запись: клиент → IP.

3. Все следующие запросы идут через тот же IP.

4. Сессия жива, куки не слетают.

Настройка в прокси-клиентах обычно одной галочкой. В curl — опция `--resolve`. В Python — параметр `session` в requests.

Привязка к порту: жёсткая фиксация

Привязка к порту — когда IP фиксируется на конкретном порту прокси. Не на время сессии, а на весь период работы. Пока порт открыт — IP не меняется.

Схема:

- Прокси слушает порты: 10001, 10002, 10003.

- Каждый порт — свой IP.

- Клиент подключается к порту 10001 — получает IP 2a01:4f8:xxxx:1.

- Переключился на порт 10002 — IP сменился.

Это удобно для мультиаккаунтинга. Один браузер — один порт. Второй браузер — другой порт. IP не пересекаются, сессии не падают.

Сравнение: sticky vs привязка к порту

| Параметр | Sticky sessions | Привязка к порту |

|----------|----------------|-------------------|

| Длительность | На время сессии | Пока порт открыт |

| Управление | Автоматическое | Ручное |

| Смена IP | При завершении сессии | При переключении порта |

| Нагрузка | Минимальная | Средняя |

| Ошибки | Редко | Почти никогда |

Sticky sessions проще. Привязка к порту надёжнее. Выбор зависит от задачи.

Пример настройки в curl

```bash

Sticky session через --resolve

curl --resolve example.com:443:2a01:4f8:xxxx:1 https://example.com

Привязка к порту — указываем порт прокси

curl --proxy http://user:pass@proxy.lexic.ml:10001 https://example.com

```

В первом случае IP фиксируется для домена. Во втором — через порт прокси. Разница в гибкости.

Python: sticky sessions с requests

```python

import requests

Sticky session через сессию

session = requests.Session()

session.proxies = {'https': 'http://user:pass@proxy.lexic.ml:10000'}

Первый запрос — IP выбран

response = session.get('https://example.com')

Второй запрос — тот же IP

response = session.get('https://example.com/login')

```

Сессия requests держит соединение. Прокси не меняет IP, пока сессия жива. Но если сессия разорвана — IP может смениться.

Привязка к порту в Python: жёстко и надёжно

```python

import requests

Разные порты — разные IP

proxy_1 = {'https': 'http://user:pass@proxy.lexic.ml:10001'}

proxy_2 = {'https': 'http://user:pass@proxy.lexic.ml:10002'}

Для аккаунта 1

session1 = requests.Session()

session1.proxies = proxy_1

response1 = session1.get('https://example.com')

Для аккаунта 2

session2 = requests.Session()

session2.proxies = proxy_2

response2 = session2.get('https://example.com')

```

IP не пересекаются. Сессии не падают. Можно крутить хоть 100 аккаунтов.

Когда sticky sessions не спасают

Sticky sessions работают, пока прокси не перезагрузили. Если прокси упал — сессия потеряна. Привязка к порту тоже не вечна. Если порт занят — IP не получить.

Ещё нюанс: некоторые сайты привязывают сессию к IP + User-Agent. Меняешь User-Agent — сессия падает. Sticky sessions тут бессильны.

Реальный кейс: парсинг Ozon

Задача: собрать 10 000 карточек товаров. Без ротации IP — блокировка через 50 запросов. С ротацией — капча после каждой смены IP.

Решение: sticky sessions. Один IP — 100-200 запросов. Потом сессия завершается, IP меняется. Капчи нет, сессии живут.

Настройка:

- Пул из 50 IPv6 адресов.

- Sticky sessions на 5 минут.

- Задержка между запросами 2 секунды.

Результат: 10 000 карточек за 3 часа. Ноль блокировок.

Кейс: мультиаккаунтинг в Instagram

Задача: 20 аккаунтов, каждый должен сидеть на своём IP. Без привязки к порту — аккаунты пересекаются, Instagram банит.

Решение: привязка к порту. 20 портов — 20 IP. Каждый браузер подключается к своему порту.

Настройка:

- Прокси lexic.ml, 20 портов.

- В каждом браузере — свой прокси-порт.

- Куки и сессии хранятся локально.

Результат: аккаунты живут месяцами. Ни одного бана.

Как выбрать: sticky или привязка

Если задача — парсинг с одного аккаунта — sticky sessions. Быстро, просто, не требует настройки.

Если мультиаккаунтинг или критична стабильность — привязка к порту. Жёстко, надёжно, но нужно больше портов.

Для SEO-мониторинга — sticky sessions. IP меняется раз в час, сессии не падают.

Для работы с API — привязка к порту. API часто банит по IP. Фиксация на одном адресе — риск.

Типичные ошибки

1. **Не завершили сессию.** Sticky session висит, IP не меняется. Сервер видит 1000 запросов с одного адреса — блокировка.

2. **Перепутали порты.** Привязка к порту — каждый порт свой IP. Подключились к 10001, а думаете, что 10002.

3. **Забыли про таймаут.** Если прокси долго не отвечает — сессия рвётся. Sticky sessions не помогут.

4. **Слишком быстрая ротация.** Меняете IP каждые 10 секунд — сервер видит аномалию.

Итог

Sticky sessions и привязка к порту — два способа не потерять сессию при ротации IP. Первый — автоматический, второй — ручной. Оба работают, но для разных задач.

Для парсинга — sticky. Для мультиаккаунтинга — привязка. Для всего остального — тестируйте оба варианта.

Прокси от lexic.ml поддерживают оба режима. Главное — не забыть настроить. Иначе сессия упадёт, а вы будете гадать, почему.

✔️Купить прокси