Один шлюз вместо списка прокси: как настроить софт, который ждёт список
Ротационный прокси — это один адрес шлюза, за которым стоит пул. Для программы это одна строка в списке прокси, и почти весь многопоточный софт написан в другом предположении: что число прокси и есть мера масштаба. Отсюда пять разных поломок, у которых одна причина, и лечатся они по-разному.
В чём именно несовпадение
Программы со списком прокси считают так: сколько адресов добавлено, столько задача и может тянуть параллельно. Адрес выдаётся потоку, отрабатывает и возвращается в очередь или выбрасывается из неё. Ротационный шлюз ломает эту арифметику: адресов в списке один, а мера масштаба переехала в число одновременных подключений, которое считается на нашей стороне.
Программа об этом не знает и продолжает делить работу по списку из одного элемента. Дальше — что именно происходит у каждой и что переключить.
ZennoPoster: режим, который опустошает список
У проекта четыре режима работы с прокси: «Не использовать», «Если возможно», «Использовать (без удаления)» и «Использовать». Последний после выдачи убирает адрес из активного списка — со списком из одной строки это значит, что первый же поток забирает шлюз, а список остаётся пустым.
BAS: одна строка достаётся первому потоку
Рекомендуемая в документации схема — ресурс «Lines from file» с опциями «use each line one time» и «Only read». С одной строкой прокси получит только первый поток, остальные пойдут напрямую. Форматы BAS принимает разные: ip:port, username:password@ip:port, socks5://ip:port и ещё несколько; типов прокси ровно два — http и socks5. DNS-запросы BAS уводит через прокси сам, поэтому об утечке имён здесь думать не нужно.
Key Collector: локальная очередь и минус один поток
Программа выдаёт задаче набор разрешённых прокси, задача складывает его в локальную очередь, и потоки берут адреса оттуда. Важное следствие: после нескольких сетевых ошибок подряд прокси исключается из очереди и, как сказано в документации, не будет выдан до следующего перезапуска. Одновременно количество рабочих потоков сокращается на единицу.
Со списком из одного шлюза это означает ноль рабочих потоков после серии ошибок — и до перезапуска задача не восстановится. За поведение отвечают настройки «Исключать прокси-сервер из локальной очереди, если встречено несколько ошибок подряд» и парные к ней «Завершать поток при исключении» и «Не завершать поток при исключении»; вторую документация сама называет опасной.
KeyAssort: потоков не больше, чем прокси плюс один
Здесь ограничение записано в руководстве прямо: число одновременных потоков не может быть больше количества добавленных прокси-серверов плюс основной IP-адрес. Одна строка шлюза — максимум два потока, независимо от того, какой тариф вы купили. Настройками программы это не обходится.
Дублирование строки: что оно решает, а что нет
Там, где нужного режима нет, работает грубый приём: вписать один и тот же шлюз столько раз, сколько потоков вы хотите отдать задаче. Проверка «потоков не больше, чем прокси» проходит, очередь не пустеет, каждый поток получает строку.
# Один и тот же шлюз, повторённый под нужное число потоков.
# Формат — тот, который ждёт конкретная программа.
ШЛЮЗ:ПОРТ:ЛОГИН:ПАРОЛЬ
ШЛЮЗ:ПОРТ:ЛОГИН:ПАРОЛЬ
ШЛЮЗ:ПОРТ:ЛОГИН:ПАРОЛЬ
ШЛЮЗ:ПОРТ:ЛОГИН:ПАРОЛЬЧестно про предел этого приёма: на нашей стороне не меняется ничего. Дублирование удовлетворяет счётчик программы, но не увеличивает ни пул, ни лимит одновременных подключений в тарифе — за него отвечает тариф, а не число строк в файле. И если программа проверяет прокси на уникальность, приём не сработает вовсе.
Где ротация уже не нужна программе
Часть софта с одной строкой работает штатно, потому что перебор адресов ему не нужен. В Netpeak при одном потоке запросы уходят по очереди со следующего прокси в списке — с единственной записью чередовать нечего, и ротация целиком остаётся серверной. В A-Parser параметр «Max threads per proxy» по умолчанию равен нулю, то есть выключен, и одна запись шлюза не ограничивает потоки; но стоит выставить там любое число выше нуля — и вы ограничите весь свой тариф.
Когда честный ответ — купить список
Если программа жёстко считает потоки по числу прокси, как KeyAssort, а дублирование строк вам не подходит, то шлюз ей архитектурно не годится. Правильный ответ здесь не «обойти проверку», а взять то, что программа ожидает: пакет статических адресов, где каждый адрес — отдельная строка в списке. Пакеты начинаются от 100 адресов, и для такого софта это не апгрейд ради апгрейда, а совпадение с его моделью работы.
Список адресов или один шлюз
Статические датацентр-IPv4 — пакеты от 100 адресов, каждый отдельной строкой в списке программы. Ротационный шлюз — от 650 ₽ за 50 потоков, если программа умеет работать с одним адресом.
Смотреть тарифыПрокси под эту задачу
Проверить нашими инструментами
Читайте также
- Сколько потоков ставить в парсере под тариф прокси: A-Parser, Key Collector, ZennoPoster, NetpeakПотоки считаются суммой по всем задачам, включая чекер прокси. Разбор, где потолок ставит программа, где лицензия, а где самый дешёвый тариф уже избыточен.
- Программа не принимает логин и пароль от прокси: кто не умеет их передавать и что делатьChromium никогда не поддерживал авторизацию SOCKS5, у Android нет поля для пароля, у netsh нет параметра. Разбор по клиентам, проверка одной командой и обход через whitelist.
- 403 через прокси: отказал сайт, отказал прокси или дело вообще не в адресе403 приходит и от прокси, и от целевого сайта, и различить их можно не всегда. Разбор: где смотреть код Cloudflare, какие коды не лечатся сменой адреса и почему заголовки прокси — плохой тест.
