Skip to content

How to Check If a Proxy Is Working: Four Tests, and What We Found

How to check if a proxy works: alive, exit country, speed and anonymity. We checked our own free list again: about half answered within 20 seconds.

HProxy TeamJuly 2, 2026Updated September 28, 20268 min read

How to Check If a Proxy Is Working (Free Online Checker)

A proxy works when it answers in time, exits where you expect, is fast enough for the job, and does not pass your own address on. Test all four, right before you use it. We checked how much that matters on our own free list. Of 200 entries on ordinary addresses it showed as working on 28 September 2026 at 17:10 UTC, 89 answered our checker within 20 seconds. Only 57 answered within 8 seconds, and 3 within a second.

This page shows each test with curl, what our own recheck found, and the faster way with our free checker.

What working means

  1. It answers in time. Choose the time first. Our list counts a proxy as working if it answered within 90 seconds per protocol. Our checker waits 8 seconds unless you ask for more.
  2. It exits where you expect. The site sees the exit address, and that address has a country and a network.
  3. It is fast enough. A page that takes 30 seconds to load is of no use for most jobs.
  4. It keeps your address to itself. Some proxies pass your own address on to the site.
Four tests, right before you use a proxy
  1. Does it answer?

    within the time you choose

  2. Where does it exit?

    the exit address, its country and network

  3. Is it fast enough?

    time the connection and the whole request

  4. Does it pass your address on?

    transparent, anonymous or elite

Source: HProxy · hproxy.comProxy.

A proxy can pass one test and fail another. Run all four.

Test 1: does it answer?

These examples use the documentation address 203.0.113.7. Put your proxy in its place.

# Sends one request through the proxy and gives up after 10 seconds
curl -x http://203.0.113.7:8080 --max-time 10 https://httpbin.org/ip

In the curl manual, -x means "Use the specified proxy", and --max-time means "Set the maximum time in seconds that you allow each transfer to take". A working proxy answers with the address the site saw:

{
  "origin": "203.0.113.7"
}

If the origin is your own address, the proxy did not carry the request. If curl stops at the time limit, the proxy is too slow or dead. The origin may differ from the address you dialled. Some proxy hosts send traffic out from another address, which is not a leak by itself. In our recheck, 31 of the 89 proxies that answered did so, and 40 of 109 in the second sample.

Test 2: where does it exit?

Look up the address from test 1. Our free IP lookup API returns its country, network number (ASN), network name, ISP and a datacenter label, with no key.

# Looks up one address, without any proxy
curl "https://hproxy.com/api/ip/203.0.113.7"

Do not trust the country a list prints. In our recheck, 2 of the 89 proxies that answered exited in another country than our own list showed for them, and 10 of 109 in the second sample.

Test 3: is it fast enough?

curl can time the TCP connection and the whole request. In its manual, time_connect is "The time, in seconds, it took from the start until the TCP connect to the remote host (or proxy) was completed", and time_total is "The total time, in seconds, that the full operation lasted".

# Prints how long the connection and the whole request took, and discards the page
curl -x http://203.0.113.7:8080 --max-time 20 -o /dev/null -s -w "Connect: %{time_connect}s  Total: %{time_total}s\n" https://httpbin.org/ip

On Windows, write -o NUL in place of -o /dev/null. Among the 89 proxies that answered our checker within 20 seconds, the median took 6.7 seconds. Only 3 of the 200 answered within a second.

Test 4: does it pass your address on?

Ask for the headers the site received, over plain HTTP:

# Shows the request headers as the site received them
curl -x http://203.0.113.7:8080 --max-time 10 http://httpbin.org/headers

It has to be plain HTTP. Over HTTPS, the proxy opens a tunnel with the CONNECT method and then limits itself to "blind forwarding of data", as RFC 9110 puts it. It cannot add headers there, so a leaky proxy would look clean. In the answer, look for these:

  • Your own address. Usually in X-Forwarded-For, which RFC 7239 names among "the non-standard header fields" used to pass it on, or in Forwarded, X-Real-IP or Client-IP. That makes the proxy transparent.
  • A proxy header without your address. Such as Via, which RFC 9110 says "indicates the presence of intermediate protocols and recipients" on the way. That makes it anonymous.
  • Neither. That makes it elite, and the site sees an ordinary visitor.

For a SOCKS5 proxy, change the scheme: curl -x socks5://203.0.113.7:1080 --max-time 10 https://httpbin.org/ip. curl also takes socks5h://, socks4:// and socks4a:// there. Our explainer on what a SOCKS5 proxy is covers the difference, and our guide on using proxies with curl covers the rest of curl.

What we found when we checked our own list again

We took 200 entries at random from those our free list API showed as working, on addresses that held fewer than 20 entries of the list. Seconds later, we checked each one again with our own checker, allowing 20 seconds per probe. Seven minutes later, we did it again with another 200.

Our own console window: three samples of 200 entries our free list showed as working on 28 September 2026, two from ordinary addresses at 17:10 and 17:17 UTC and one from every entry at 11:47 UTC. Last checked by the list a median 31 and 32 minutes before, 89, 109 and 87 answered our checker within 20 seconds, 57, 69 and 47 within 8 seconds, and 3, 3 and 1 within a second. Among those that answered, 29, 34 and 35 showed another anonymity grade than the list.
Captured on our own machine on 28 September 2026: Node printing the saved result of our recheck, run from our server. Counts only, no addresses.
  • Answered. 89 of 200 answered within 20 seconds, and 109 in the second sample. Drawn from every entry of the list at 11:47 UTC, 87 of 200 did.
  • Speed. Only 57 of the 89 answered within 8 seconds, the default of our checker, and 3 within a second.
  • Timed out. 83 gave no answer within 20 seconds. The list had last checked them a median 31 minutes earlier.
  • Grade and country. 29 of the 89 came back with another anonymity grade than the list showed, and 2 in another country. In the second sample, 34 and 10 of 109.
200 proxies our list showed as working, checked again seconds later
Shown as working200100%
Answered within 20 seconds8945%

55% lost from Shown as working

Within 8 seconds, our checker's default5728%

36% lost from Answered within 20 seconds

Within a second32%

95% lost from Within 8 seconds, our checker's default

In a second sample seven minutes later, 109 of 200 answered within 20 seconds.
Source: HProxy, our checker, 28 September 2026, 17:10 UTC · hproxy.comProxy.

Part of the gap is by design. Our list gives each check 90 seconds per protocol, because a slow proxy is still a working one. For you, a proxy that needs 40 seconds is useless. The rest is time: a proxy can stop between two checks. So decide how long you will wait before you test.

The faster way: our free checker

Paste any proxy into our free proxy checker, with no signup. It makes a real connection through the proxy and reports the exit address, country, latency and anonymity grade. From the command line, it is one request:

# Tests one proxy from our server: alive or dead, protocols, anonymity, latency, country
curl "https://hproxy.com/api/proxy-check?proxy=203.0.113.7:1080"

For a longer wait, the streaming checker takes a per-probe budget. Its documentation lists it in milliseconds: "Per-probe budget, 1,000 to 60,000. Default 8,000".

# Checks two proxies with 20 seconds per probe, one line per proxy as each one finishes
curl -N -X POST https://hproxy.com/api/free-proxy/check -H "Content-Type: application/json" -d '{"proxies": ["203.0.113.7:1080", "198.51.100.3:8080"], "timeout_ms": 20000}'

To pull entries into your own tools, our free proxy list API serves the same list we checked.

Check right before you use it

A proxy that passed all four tests an hour ago may be gone now. Those in our pool that worked and then stopped lasted a median 10 days, counting only addresses with fewer than 20 of them, without Amazon's networks or one June evening when our checker failed (measured 2026-09-28), and their grades and exits change in between. Our guide to free anonymous proxies goes deeper into the grades, and when free proxies are fine covers the jobs that fit.

When free is not enough

For web tasks that have to keep running, such as checking your own site from another country, a residential proxy is the better tool. Its address belongs to a home connection, and it stays up while you work. Ours start at $0.44/GB, pay as you go, and purchased traffic has no scheduled expiry date.

The plain answer

Check a proxy for four things, right before you use it: that it answers within the time you choose, where it exits, how fast it is, and whether it passes your address on. On our own free list, about half of the entries shown as working answered within 20 seconds, and fewer than two in five within 8 seconds. Test first, then trust.

How we measured

On 28 September 2026 at 17:10 and 17:17 UTC, we asked our free list API for every entry it showed as working. Each time we took 200 at random from the entries whose address held fewer than 20 entries of the list. Seconds later, we checked each one with the streaming endpoint of our checker, allowing 20 seconds per probe, from our server in the United States. The figures over every entry come from a sample of 200 drawn from the whole list at 11:47 UTC with the same method. The latency is the fastest answer across the protocols of each proxy. We store no proxy addresses from these checks, and every time is in UTC.

Sources

Frequently asked questions

How do I check if a proxy is working?

Send a request through it with a time limit and see which address answers, for example curl -x http://IP:PORT --max-time 10 https://httpbin.org/ip. If the answer shows an address that is not yours, the proxy carried the request. On 28 September 2026, 89 of 200 entries on ordinary addresses that our free list showed as working answered our checker within 20 seconds. A second sample had 109.

How long should I wait for a free proxy?

Decide before you test. Our free list counts a proxy as working if it answered within 90 seconds per protocol, and our checker waits 8 seconds unless you ask for more. Of 89 listed proxies that answered within 20 seconds in our test, 57 answered within 8 seconds and 3 within a second.

What do elite, anonymous and transparent mean?

They describe what the site sees. A transparent proxy shows the site your own address, as the sender or in a header such as X-Forwarded-For. An anonymous proxy shows a proxy header such as Via, but not your address. An elite proxy shows neither.

How do I test a SOCKS5 proxy?

Use the socks5 scheme in the same command: curl -x socks5://IP:PORT --max-time 10 https://httpbin.org/ip. The other tests work the same way.

Why do free proxies stop working so fast?

They are run by strangers, shared by many people and often slow. On 28 September 2026, our list had checked the 200 entries in our test a median 31 minutes earlier, and 83 of them timed out on our checker within 20 seconds.

Can I check a proxy without the command line?

Yes. Paste it into our free proxy checker at hproxy.com/proxy-checker, with no signup. It reports the exit address, country, latency and anonymity grade.

Get proxies that are alive right now

Our free proxy list re-checks every exit every few minutes across 100+ countries, with a live last-checked time, so you copy IPs that worked moments ago, not a stale text dump. When the location has to survive a real check, the paid network holds up.

129M+ proxy checks run · 100+ countries · HTTP / HTTPS / SOCKS · re-checked every few minutes · no signup

HProxy.

Honest guides and comparisons on proxies, scraping and staying unblocked, from the team that runs the network.

RSS feed