What HAProxy’s leastconn Measures in a SOCKS Pool
An HAProxy TCP pool chooses by active connections and weights, not target download speed or complete SOCKS health.
listen socks_pool
bind 127.0.0.1:1080
mode tcp
balance leastconn
timeout connect 5s
timeout client 1h
timeout server 1h
server proxy_a 192.0.2.10:1080 check
server proxy_b 192.0.2.11:1080 checkUse actual compatible SOCKS endpoints and workload timeouts. Configure the app as a SOCKS client of the loopback listener; backends must accept its expected protocol/account. For permitted public-target tests with no SOCKS credentials configured, the SOCKS proxy list supplies candidate backends; match the client’s SOCKS version and verify access to the actual targets.
A less occupied server can still have a slower upstream. leastconn balances active counts/weights, and the shown check only establishes TCP acceptance. Negotiation, authentication and destination access need separate evidence.
A live tunnel stays on its selected backend. This TCP pool does not carry the separate UDP ASSOCIATE datagrams.
If lowest target latency is required, define and measure that target-specific outcome rather than inferring it from connection count.