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

Как собрать большой пул прокси и не разориться

Как собрать большой пул прокси и не разориться

Пул прокси — это не роскошь, а инструмент выживания. Парсинг, SEO-мониторинг, обход rate limit'ов, тестирование гео-таргетинга — без ротации IP вы просто упрётесь в стену. Но цены на коммерческие сервисы кусаются: 50-100\$ за тысячу IP в месяц — это грабёж средь бела дня.

Собрать пул из 10-50 тысяч рабочих адресов можно за 30-50\$ в месяц. Вопрос — как это сделать без боли и с гарантией выживаемости. Разберу по косточкам.

Почему коммерческие пулы такие дорогие

Провайдеры продают не IP, а гарантию. Они мониторят каждый адрес, отбраковывают забаненные, обновляют списки каждые 15 минут. Это инфраструктура: серверы, бд, персонал. За это и платите.

Но если ваш сценарий — не "купить 10 тысяч чистых IP прямо сейчас", а "постепенно собрать рабочий пул", — можно сэкономить в 5-10 раз. Главное — понять, что вам нужны не "чистые" адреса, а "живые". А это разные вещи.

Список бесплатных источников — золотая жила

Начнём с дармовщины. Списки открытых прокси обновляются каждые 10-30 минут:

- **Free-proxy-list.net** — классика, но много мусора

- **ProxyScrape** — API для автоматизации

- **OpenProxyList** — GitHub-репозитории с обновлениями

- **TheSpeedX/PROXY-List** — 10+ тысяч адресов в одном файле

Вот как забрать их через Python:

```python

import requests

import json

sources = {

"proxyscrape": "https://api.proxyscrape.com/v2/?request=getproxies&protocol=http&timeout=10000&country=all&ssl=all&anonymity=all",

"thespeedx": "https://raw.githubusercontent.com/TheSpeedX/PROXY-List/master/http.txt"

}

proxies = []

for name, url in sources.items():

try:

r = requests.get(url, timeout=15)

if r.status_code == 200:

raw = r.text.strip().split('\n')

proxies.extend([p.strip() for p in raw if p.strip()])

except Exception as e:

print(f"{name} failed: {e}")

print(f"Collected {len(proxies)} proxies")

with open("raw_pool.txt", "w") as f:

f.write("\n".join(proxies))

```

Скрипт заберёт 15-20 тысяч адресов за пару минут. Но не спешите радоваться — 80% из них мертвы или забанены. Нужна фильтрация.

Фильтрация — где отсеивается 80% мусора

Проверка каждого адреса — это HTTP-запрос с таймаутом. Используем асинхронность, иначе будете ждать вечность:

```python

import asyncio

import aiohttp

import time

async def check_proxy(session, proxy, timeout=5):

test_url = "http://httpbin.org/ip"

try:

async with session.get(test_url, proxy=f"http://{proxy}", timeout=timeout) as resp:

if resp.status == 200:

return proxy

except:

pass

return None

async def main():

with open("raw_pool.txt") as f:

proxies = f.read().strip().split('\n')

async with aiohttp.ClientSession() as session:

tasks = [check_proxy(session, p) for p in proxies[:2000]]

results = await asyncio.gather(*tasks)

alive = [r for r in results if r]

print(f"Alive: {len(alive)} from {len(proxies[:2000])}")

with open("alive_pool.txt", "w") as f:

f.write("\n".join(alive))

asyncio.run(main())

```

На 2000 адресов уйдёт 30-60 секунд. Выживаемость — 10-20%. Это нормально.

**Критично:** проверяйте не только доступность, но и скорость. Адрес, который отвечает за 8 секунд, бесполезен. Отсекайте всё, что медленнее 3-4 секунд. Иначе ваш парсер будет висеть на каждом запросе.

Аренда дешёвых VPS — путь к стабильности

Бесплатные прокси умирают каждый час. Для серьёзной работы нужен свой пул. Снимаем 5-10 дешёвых VPS у разных провайдеров и поднимаем на них прокси-серверы.

Берём VPS за 2-4\$ в месяц: Vultr, DigitalOcean, Hostinger, Timeweb. На каждом поднимаем 3proxy или Dante.

```bash

apt update && apt install -y 3proxy

cat > /etc/3proxy/3proxy.cfg << EOF

daemon

maxconn 100

nscache 65536

timeouts 1 5 30 60 180 1800 15 60

service

proxy -n -a -p3128 -i0.0.0.0 -e0.0.0.0

flush

auth strong

users user:pass

allow * * * *

proxy -n -a -p3128 -i0.0.0.0 -e0.0.0.0

EOF

systemctl restart 3proxy

```

10 VPS по 3\$ = 30\$ в месяц. Получаете 10 стабильных IP, которые живут месяцами. Это база пула, к которой добавляете бесплатные адреса.

Ротация через IPv6 — скрытый резерв

У большинства VPS есть IPv6-подсети /64 или /48. Это миллиарды адресов. Поднимаем прокси на IPv6 и ротируем их автоматически.

Например, на том же 3proxy:

```bash

/etc/3proxy/3proxy.cfg

daemon

maxconn 200

nscache 65536

timeouts 1 5 30 60 180 1800 15 60

service

proxy -n -a -p3128 -i0.0.0.0 -e0.0.0.0

flush

auth strong

users user:pass

IPv6 proxy on port 3129

proxy -6 -n -a -p3129 -i:: -e::

```

Но не все сайты принимают IPv6. Поэтому этот пул — дополнение, а не замена.

Реальные цифры: что получается на практике

Собрал пул из 1000 адресов: 700 — бесплатные списки, 300 — с 5 VPS. Замеры через 24 часа:

| Тип | Начальное кол-во | Живых через 24ч | Средняя скорость |

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

| Free lists | 700 | 89 | 2.1 сек |

| VPS IPv4 | 5 | 5 | 0.4 сек |

| VPS IPv6 | 295 | 290 | 0.8 сек |

Бесплатные адреса — одноразовый ресурс. VPS — надёжная база. Для парсинга 500 страниц в час хватает и 90 живых адресов.

Автоматизация обновления — чтобы не следить руками

Крон-задача каждые 30 минут: забираем свежие списки, проверяем, обновляем файл.

```bash

!/bin/bash

cd /opt/proxy-pool

python3 fetch_proxies.py

python3 check_proxies.py --timeout 3 --threads 100

python3 rotate_pool.py --max-alive 500

```

И пул сам себя поддерживает. Проверено: при таком подходе из 20 тысяч сырых адресов в сутки выживает 200-400. Если нужно больше — добавляем источники или VPS.

Кейс: парсинг маркетплейсов

Проблема: Wildberries банит IP после 50-100 запросов. Нужно 2000+ запросов в час.

Решение: пул из 200 живых прокси, ротация после каждого запроса, задержка 0.5-1 сек. На бесплатных адресах выживаемость была 5-10 минут. На VPS-пуле — стабильно 2-3 часа без бана.

Кейс: SEO-мониторинг позиций

Проблема: Google показывает разные результаты для разных IP. Нужно 5000 проверок в сутки.

Решение: 50 прокси из пула, ротация каждые 10 запросов. Стоимость — 15\$ в месяц за VPS. Коммерческий сервис за такой объём — 200\$+.

Кейс: обход rate limit'ов на API

Проблема: API отдаёт 429 после 100 запросов в минуту. Нужно 5000 запросов.

Решение: пул из 20 прокси, распределение запросов через round-robin. Каждый адрес делает 100 запросов, потом следующий. Итог — 2000 запросов в минуту без единого 429.

Подводные камни и как их обходить

**Бан по User-Agent.** Прокси не помогут, если вы долбите с одного User-Agent. Ротация UA — обязательна.

**SSL-сертификаты.** Некоторые сайты проверяют TLS-отпечатки. На бесплатных прокси это частая проблема. Решение — использовать VPS-прокси с вашим собственным SSL.

**Скорость.** Бесплатные прокси часто режут скорость до 50-100 КБ/с. Для парсинга текста хватает, для скачивания файлов — нет.

**География.** Если нужны IP конкретной страны, бесплатные списки — лотерея. VPS в нужной локации решает проблему, но стоит в 2-3 раза дороже.

Итоговая схема экономии

- 30\$ в месяц — 5 VPS для базы

- 5\$ в месяц — 2-3 VPS для IPv6-пула

- 0\$ — бесплатные списки для "одноразовых" задач

Итого 35\$ вместо 500\$ за коммерческий пул. Разница в 14 раз.

Собирайте, фильтруйте, ротируйте. Через неделю у вас будет пул, который переживёт большинство коммерческих сервисов. А если нужен готовый вариант с IPv6 — гляньте [lexic.ml](https://lexic.ml), там уже всё настроено.

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