Proxy tester
Type a proxy and get the exact commands to test it from your own machine: curl with timings, Python requests, Node, PowerShell and a batch script. Everything is built in your browser; your credentials never leave this page.
The target should be a page that echoes your IP so the first test cannot be refused by an anti-bot layer. Test your real site second.
How to read the result
The curl command prints one line: the HTTP code, the exit IP the target saw, and four timings. Each combination points at one layer of the proxy path.
| What you see | Layer | What it means |
|---|---|---|
curl: (7) Failed to connect, (5) Could not resolve proxy | Reaching the proxy | Wrong host or port, HTTP client on a SOCKS port, or a firewall that only allows 80 and 443 outbound |
curl: (28) timed out before any response | Reaching the proxy | Packets are dropped on the way: egress rules, or IPv6 preferred on a broken network (try curl -4) |
curl: (56) CONNECT tunnel failed, response 407 | Proxy accepting you | Credentials not accepted or source IP not on the allowlist; also what an exhausted plan looks like |
502 or 503 from the proxy | Proxy accepting you | No exit matched your targeting flags at that moment; widen city to country or retry with a new session |
code=200 with an exit IP that is not yours | Working | The proxy works end to end. Now run the same command against your real target |
403, 429, or 200 with a challenge page on the real target | Target refusing it | Not a proxy fault. The site is deciding about the request: see the 403 and 429 guides |
200 but ttfb above 3 s | Speed | Slow exit or slow target. High connect is the gateway, high tls is the tunnel plus handshake, high ttfb alone is the target |
Why the commands look the way they do
- Credentials go through
-U, not the URL. A password with@,:or%inside a proxy URL breaks parsing silently; the Python and Node variants percent-encode it for you. - SOCKS5 uses
socks5h://. The trailinghmakes the proxy resolve DNS, so the target sees a lookup from the exit rather than from your machine. - The timings are the diagnosis.
time_connectis the TCP connect to the proxy,time_appconnectincludes the CONNECT tunnel and TLS through the exit,time_starttransferis when the target's first byte arrived. - The batch script counts, it does not judge. Run 100 requests and look at the distribution of codes and timings before deciding a proxy is slow or broken.
The full diagnostic path is in proxy not working: a 10-step checklist, the credential failure in how to fix 407 Proxy Authentication Required, and the target-side refusals in the 403 and 429 guides.
Sources and standards
What this tool implements or checks against, so you can verify a verdict yourself:
Questions about testing proxies
How do I test a proxy with curl?
curl -x host:port -U user:pass https://ipinfo.io/json. If the IP in the response is the proxy exit rather than yours, it works. Add -w with time_connect, time_appconnect and time_starttransfer to see which segment is slow.Does this tool send my proxy credentials anywhere?
What does curl exit code 56 with a 407 mean?
How do I test a SOCKS5 proxy?
socks5h:// scheme so the proxy resolves DNS: curl -x socks5h://host:port -U user:pass https://ipinfo.io/json. In Python requests install the requests[socks] extra and use the same scheme in the proxies dict.What should I test after the IP check?
Proxies that pass this test
Residential from $0.80/GB with user:pass or IP allowlist auth, a country flag in the username, and a free 100 MB trial to run this exact command against.
Get my free API keyFree key, $2 of usage credit every month, no credit card.