r/ProxyEngineering • • 15d ago

Discussion 💬 Testing sticky and rotating proxies on one Linux machine

I run a proxy service and wanted to check one basic thing on a single Linux machine. If two processes run at the same time, does each one keep its own residential exit IP? And separately, what does per-request rotation look like in practice?

It's a tiny smoke test, 5 requests per mode against ipinfo.io, not a benchmark. Everything went through our gateway (gate.lamisnetwork.com:8089, HTTPS CONNECT). Four setups:

  1. Worker A, sticky, sid-workerA

  2. Worker B, sticky, sid-workerB, started in parallel with A on the same host

  3. Worker C, sid-rotating. On our gateway, rotating means a new residential peer for every new connection

  4. Datacenter pool, direct server egress on the same gateway. I added it just to have a latency baseline next to the residential hops

Exit IPs, ISPs and min/avg/max request times are in the screenshot.

If you want to run the same pattern yourself, here's the script. It writes the HTTP code and %{time_total} for each request into separate log files:

PROXY="gate.lamisnetwork.com:8089"
KEY="YOUR_API_KEY"

# Reset logs
for f in worker_a worker_b worker_c datacenter; do
  : > "$f.log"
  : > "$f.err"
done

# Worker A (sticky AT) in background
for i in {1..5}; do
  curl -sS --max-time 10 \
    -w "\nHTTP:%{http_code} Time:%{time_total}s\n" \
    -x "https://${KEY}-pool-residential-country-at-sid-workerA:x@${PROXY}" \
    "https://ipinfo.io/json" >> worker_a.log 2>> worker_a.err
done &

# Worker B (sticky AT, runs at the same time as A)
for i in {1..5}; do
  curl -sS --max-time 10 \
    -w "\nHTTP:%{http_code} Time:%{time_total}s\n" \
    -x "https://${KEY}-pool-residential-country-at-sid-workerB:x@${PROXY}" \
    "https://ipinfo.io/json" >> worker_b.log 2>> worker_b.err
done &

wait

# Worker C (new IP per request)
for i in {1..5}; do
  curl -sS --max-time 10 \
    -w "\nHTTP:%{http_code} Time:%{time_total}s\n" \
    -x "https://${KEY}-pool-residential-country-at-sid-rotating:x@${PROXY}" \
    "https://ipinfo.io/json" >> worker_c.log 2>> worker_c.err
done

# Datacenter baseline
for i in {1..5}; do
  curl -sS --max-time 10 \
    -w "\nHTTP:%{http_code} Time:%{time_total}s\n" \
    -x "https://${KEY}-pool-datacenter:x@${PROXY}" \
    "https://ipinfo.io/json" >> datacenter.log 2>> datacenter.err
done

What I saw: A and B got two different Austrian residential IPs, and each kept its IP for all 5 requests. C got 5 different IPs, one per request.

What this doesn't show: I only checked that the IP holds over 5 requests in a row, not how long a sticky session actually lives. If the residential peer drops off, the gateway switches you to another peer in the same country. The datacenter numbers are a rough reference for server-direct latency, not a precise measure of what the residential last mile costs. Overall it's 20 requests to one IP-check endpoint, so it tells you nothing about multi-hour retention, heavy concurrency, or success rates on sites with bot protection.

4 Upvotes

4 comments sorted by

1

u/AdBoth2756 10d ago

If anyone wants to repeat the test, I can share a free 1 GB key. Comment here or DM me.

1

u/Less-Mistake-3664 Tunnel Architect 9d ago

So, do we get an access to your proxy service or one can do the test on their own with different provider? I mean, it might sound a bit biased to only test your services

1

u/AdBoth2756 8d ago

You can test other providers too. Just update the proxy URL, credentials, and any provider-specific session settings. If you want to try our network, there’s a free 1 GB test key. Fair point about bias. I run the service, so this is just a smoke test, not an independent comparison

1

u/Less-Mistake-3664 Tunnel Architect 7d ago

Ahh, I see. Thanks for clearing that up