Method · Beginner

How to test a proxy: exit IP, location, leaks, headers, speed and success rate

A proxy that "works" can still leak, sit in the wrong city or fail on your target. Ten minutes of checks, mostly with cURL, tell you what a sales page cannot.

2 min read 7 sections Updated Published

1. The exit and its country#

cURL
curl -s -x http://USER-cc-de-city-berlin:[email protected]:9000 https://api.ipify.org
# then look the address up in one or two public geolocation databases

Country must match. At city level, accept the neighbouring town: databases disagree there. Run it a few times without -sid- to confirm rotation, then with a fixed -sid- to confirm stickiness.

2. Anonymity headers#

Fetch a header-echo endpoint over plain HTTP and read every header. Nothing should mention a proxy or an address other than the exit: no X-Forwarded-For, Via, Forwarded, X-Real-IP. Check over HTTP, not HTTPS, since a proxy cannot add headers inside TLS.

3. DNS#

With SOCKS5, compare socks5:// and socks5h://: only the second resolves at the exit. With HTTP proxies the hostname always goes to the proxy. If a site behaves differently through the proxy than expected, a local DNS answer pointing at the wrong regional edge is a common cause.

4. WebRTC (browsers only)#

Open a WebRTC leak test in the browser you will use. Only the exit may appear; if your real address shows, disable WebRTC or set its IP policy to proxied-only.

5. Latency and throughput#

Timing
curl -s -o /dev/null -w 'connect %{time_connect}s  ttfb %{time_starttransfer}s  total %{time_total}s\n' \
     -x http://USER-cc-de:[email protected]:9000 https://example.com/
# a few hundred milliseconds of TTFB is normal on a household exit; seconds mean a slow line, try another session id

For throughput, download a 10 MB test file and read %{speed_download}; expect tens of Mbit/s on residential, hundreds on datacenter and ISP.

6. Success rate against your target#

Bash sample
ok=0; for i in $(seq 1 50); do
  code=$(curl -s -o /dev/null -w '%{http_code}' -m 30 -x "http://USER-cc-us:[email protected]:9000" https://target.example/some/page)
  [ "$code" = 200 ] && ok=$((ok+1))
done; echo "$ok/50 succeeded"

Fifty requests cost a few megabytes. Check the *content* of a few responses too: a 200 with missing prices is a soft block, and only content inspection catches it.

7. What to conclude#

FindingMeaningAction
Wrong countryParameter typo or unsupported codeCheck -cc- (gb, not uk)
Proxy headers presentNot an elite proxyChange provider
403 or CAPTCHA on first requestExit type too weak for the targetResidential → mobile, or datacenter → residential
Blocks after N requestsPer-IP rate limitRotate more, slow down
Slow everythingHousehold lineNew session id, or ISP/datacenter for speed

Questions people ask#

How much does testing cost on ProxShift?

The minimum top-up, $20, and a few megabytes of traffic for the checks; the rest of the balance stays for real work and never expires.

Ready when you are

Run it for real.

Create an account, top up $20 and paste the endpoint from this guide into your tool. Traffic you buy never expires.