# Proxy Tester: cURL, Python & Node Commands

> Test any HTTP or SOCKS5 proxy locally: enter host, port and credentials, get curl with timings, Python, Node and a batch script. Nothing leaves your browser.

[Home](https://quanticdata.io/)/[Free tools](https://quanticdata.io/tools/)/Proxy tester

# 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.

By [Aldo Morese](https://quanticdata.io/about/), founder of QuanticData · Published Sep 3, 2026 · Updated Sep 3, 2026

Protocol HTTP / HTTPS (CONNECT)SOCKS5 Host Port Username (optional) Password (optional) Target URL

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.

curl

```

```

The form becomes one curl command; the four -w timings say which layer the time went to, and the run ends either at a 200 carrying the exit IP or at the proxy's own 407.

## 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 trailing `h` makes the proxy resolve DNS, so the target sees a lookup from the exit rather than from your machine.

- **The timings are the diagnosis.** `time_connect` is the TCP connect to the proxy, `time_appconnect` includes the CONNECT tunnel and TLS through the exit, `time_starttransfer` is 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](https://quanticdata.io/blog/proxy-not-working-checklist/), the credential failure in [how to fix 407 Proxy Authentication Required](https://quanticdata.io/blog/how-to-fix-407-proxy-authentication-required/), and the target-side refusals in the [403](https://quanticdata.io/blog/web-scraping-403-forbidden/) and [429](https://quanticdata.io/blog/429-too-many-requests-web-scraping/) guides.

The page assembles the command and hands it to you: your credentials are percent-encoded in the tab and copied to the clipboard, and the run happens on your machine — which is also why the timings you get are yours, not ours.

## Sources and standards

What this tool implements or checks against, so you can verify a verdict yourself:

- [curl manual: --proxy, --proxy-user and the -w write-out variables](https://curl.se/docs/manpage.html)

- [RFC 7235, HTTP authentication (407 Proxy Authentication Required)](https://www.rfc-editor.org/rfc/rfc7235)

- [RFC 1928, SOCKS Protocol Version 5](https://www.rfc-editor.org/rfc/rfc1928)

## Questions about testing proxies

### How do I test a proxy with curl?

Send a request through it to a page that echoes your IP: `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?

No. The page has no backend: the commands are assembled in your browser and copied to your clipboard. Nothing is stored or transmitted, which is also why the test runs on your machine rather than here.

### What does curl exit code 56 with a 407 mean?

The proxy refused your CONNECT tunnel because it did not accept the credentials or your source IP. It is a proxy-side error, not a block by the target: fix the username, password, URL encoding or IP allowlist. Details in the 407 guide.

### How do I test a SOCKS5 proxy?

Use the `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?

Your real target, with the same headers you will use in production. A proxy that passes ipinfo.io and fails your target is working correctly; the target is refusing the request, which is a 403 or 429 problem rather than a proxy problem.

## Related

[cURL converter Turn the working curl into requests, httpx or Node](https://quanticdata.io/tools/curl-converter/) [User agent What your client tells the target](https://quanticdata.io/tools/user-agent/) [WAF detector Who refused you when the target says no](https://quanticdata.io/tools/waf-detector/) [Proxy locations Which countries each network covers](https://quanticdata.io/proxies/)

## 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 key](https://app.quanticdata.io/register)

Free key, $2 of usage credit every month, no credit card.

## Also on this site

Quantic**Data**

Residential proxies & web data APIs for AI.

#### Proxies

- [Residential Basic](https://quanticdata.io/residential-proxies/#basic)

- [Residential Premium](https://quanticdata.io/residential-proxies/#plans)

- [Cheap Residential](https://quanticdata.io/cheap-residential-proxies/)

- [Mobile Proxies](https://quanticdata.io/mobile-proxies/)

- [Datacenter Proxies](https://quanticdata.io/datacenter-proxies/)

- [ISP Proxies](https://quanticdata.io/isp-proxies/)

- [Rotating Proxies](https://quanticdata.io/rotating-proxies/)

- [Sneaker Proxies](https://quanticdata.io/sneaker-proxies/)

- [SOCKS5 Proxies](https://quanticdata.io/socks5-proxies/)

- [IPv6 Proxies](https://quanticdata.io/ipv6-proxies/)

- [Proxy locations](https://quanticdata.io/proxies/)

#### Data APIs

- [MCP Server](https://quanticdata.io/mcp-server/)

- [Web Scraper API](https://quanticdata.io/web-scraping-api/)

- [SERP API](https://quanticdata.io/serp-api/)

- [Collectors](https://quanticdata.io/collectors/)

- [Web Data for AI](https://quanticdata.io/web-data-api-for-ai/)

- [Quantic AI](https://quanticdata.io/ai-web-scraping-service/)

- [Crawl & Map](https://quanticdata.io/crawl-map/)

- [SEO Audit](https://quanticdata.io/seo-audit/)

#### Use cases

- [Company data](https://quanticdata.io/scrape-company-data/)

- [Price monitoring](https://quanticdata.io/competitor-price-monitoring/)

- [Market research](https://quanticdata.io/market-research-data/)

- [Real estate data](https://quanticdata.io/real-estate-data-scraping/)

- [Scrape job postings](https://quanticdata.io/scrape-job-postings/)

#### Company

- [Documentation](https://quanticdata.io/docs/)

- [Blog](https://quanticdata.io/blog/)

- [Free tools](https://quanticdata.io/tools/)

- [Partners](https://quanticdata.io/partners/)

- [About](https://quanticdata.io/about/)

- [Alternatives](https://quanticdata.io/alternatives/)

- [Pricing](https://quanticdata.io/pricing/)

- [FAQ](https://quanticdata.io/#faq)

- [For AI agents](https://quanticdata.io/#ai)

#### Free tools

- [All tools](https://quanticdata.io/tools/)

- [Website to Markdown](https://quanticdata.io/tools/website-to-markdown/)

- [PDF to Markdown](https://quanticdata.io/tools/pdf-to-markdown/)

- [WAF detector](https://quanticdata.io/tools/waf-detector/)

- [AI visibility audit](https://quanticdata.io/tools/ai-visibility-audit/)

- [AI crawler checker](https://quanticdata.io/tools/ai-crawler-checker/)

- [robots.txt tester](https://quanticdata.io/tools/robots-txt-tester/)

- [robots.txt generator](https://quanticdata.io/tools/robots-txt-generator/)

- [User agent](https://quanticdata.io/tools/user-agent/)

- [cURL converter](https://quanticdata.io/tools/curl-converter/)

- [Proxy tester](https://quanticdata.io/tools/proxy-tester/)

© 2026 QuanticData ·

- [quanticdata.io](https://quanticdata.io/)

·

- [Terms](https://quanticdata.io/terms/)

·

- [Privacy](https://quanticdata.io/privacy/)

If you are an AI agent:

- [llms.txt](https://quanticdata.io/llms.txt)

·

- [llms-full.txt](https://quanticdata.io/llms-full.txt)

---

Source: https://quanticdata.io/tools/proxy-tester/ · Site index for AI: https://quanticdata.io/llms.txt · Full dump: https://quanticdata.io/llms-full.txt
