One gateway instead of a proxy list: configuring software that expects a list
A rotating proxy is a single gateway address with a pool behind it. To a program that is one line in the proxy list — and almost all multi-threaded software is written on the opposite assumption, that proxy count is the unit of scale. Hence five different failures with one cause, each fixed differently.
What exactly does not match
List-based programs reason like this: however many addresses are loaded, that is how much the job can pull in parallel. An address is handed to a thread, does its work and returns to the queue or is dropped from it. A rotating gateway breaks that arithmetic: there is one address in the list, and the unit of scale has moved to the number of concurrent connections, which is counted on our side.
The program does not know this and keeps dividing the work across a one-element list. Below is what actually happens in each, and what to switch.
ZennoPoster: the mode that empties the list
A project has four proxy modes: «Не использовать», «Если возможно», «Использовать (без удаления)» and «Использовать». The last one removes the address from the active list once it has been handed out — with a one-line list that means the very first thread takes the gateway and the list is then empty.
BAS: one line goes to the first thread
The documented pattern is a “Lines from file” resource with “use each line one time” and “Only read”. With one line only the first thread gets a proxy; the rest go direct. BAS accepts several formats — ip:port, username:password@ip:port, socks5://ip:port and a few more — and exactly two proxy types, http and socks5. BAS routes DNS queries through the proxy itself, so name leaks are not a concern here.
Key Collector: a local queue and one thread fewer
The program hands a task a set of permitted proxies, the task puts that set into a local queue, and threads draw from it. The consequence that matters: after several consecutive network errors a proxy is excluded from the queue and, as the docs put it, will not be handed out again until the next restart. At the same time the number of working threads is reduced by one.
With a one-gateway list that means zero working threads after a run of errors, and the task will not recover until a restart. The behaviour is governed by «Исключать прокси-сервер из локальной очереди, если встречено несколько ошибок подряд» and its pair, «Завершать поток при исключении» and «Не завершать поток при исключении» — the docs themselves call the second one dangerous.
KeyAssort: threads cannot exceed proxies plus one
Here the limit is written into the manual outright: the number of simultaneous threads cannot exceed the number of added proxy servers plus the main IP address. One gateway line means two threads maximum, whatever plan you bought. No setting works around it.
Duplicating the line: what it fixes and what it does not
Where the mode you need does not exist, there is a blunt move: write the same gateway as many times as the threads you want to give the job. The “threads must not exceed proxies” check passes, the queue does not empty, every thread gets a line.
# The same gateway repeated to match the thread count you want.
# Use whichever format the program expects.
GATEWAY:PORT:LOGIN:PASSWORD
GATEWAY:PORT:LOGIN:PASSWORD
GATEWAY:PORT:LOGIN:PASSWORD
GATEWAY:PORT:LOGIN:PASSWORDPlainly about its limit: nothing changes on our side. Duplication satisfies the program's counter; it does not grow the pool or the concurrent-connection limit, which is set by the plan and not by the number of lines in a file. And if the program deduplicates its proxy list, the move does not work at all.
Where the program does not need rotation anyway
Some software works fine with one line because it never needed to cycle addresses. In Netpeak, with one thread set, requests are sent alternately from the next proxy in the list — with a single entry there is nothing to alternate, and rotation stays entirely server-side. In A-Parser, “Max threads per proxy” defaults to 0, meaning disabled, so one gateway entry does not cap your threads; set it to anything above zero, though, and you cap your whole plan.
When the honest answer is to buy a list
If a program hard-counts threads from the proxy count, as KeyAssort does, and duplicating lines is not acceptable to you, a gateway is architecturally the wrong fit. The right answer is not to defeat the check but to buy what the program expects: a package of static addresses where each address is its own line. Packages start at 100 addresses, and for this kind of software that is not an upgrade for its own sake — it matches how the program works.
A list of addresses, or one gateway
Static datacenter IPv4 — packages from 100 addresses, each its own line in the program's list. A rotating gateway from 650 ₽ for 50 threads, if the program can work with a single address.
View pricingProxies for this job
Check it with our tools
Read next
- How many threads to set in a scraper for your proxy plan: A-Parser, Key Collector, ZennoPoster, NetpeakThreads add up across every running task, proxy checkers included. Where the ceiling is set by the program, where by the licence, and where the cheapest plan is already oversized.
- The program will not take a proxy login and password: which clients cannot send them, and what to doChromium has never supported SOCKS5 authentication, Android has no password field, netsh has no parameter. A breakdown by client, a one-command check, and the whitelist route around it.
- 403 through a proxy: the site refused, the proxy refused, or the address is not the problemA 403 can come from the proxy or from the target site, and they cannot always be told apart. Where to find the Cloudflare code, which codes no address change will fix, and why proxy headers are a poor test.
