All free tools Nothing is stored

Bulk Proxy Checker

Paste a whole proxy list and test every entry at once. See which proxies are alive, how fast they answer, the public IP they exit from, whether they leak the client address, whether HTTPS works through them, and where they are located.

Check your proxy list

Live test
One proxy per line, up to 200 at a time. Accepted forms: host:port, scheme://host:port, user:pass@host:port and host:port:user:pass. A scheme written on a line overrides the protocol selected below.
A plain-text file up to 256 KB is read in your browser and placed in the box above. The file itself is never uploaded.
Automatic detection tries HTTP, then SOCKS5, then SOCKS4.
How many proxies your browser keeps in flight at once.
A proxy that stays silent for longer is counted as dead.
What to test

Your list is not stored. Each proxy is dialled from the VPSLake server only for its own test, and the only address it is ever asked to reach is our own echo endpoint. Proxy addresses, credentials and results are held in memory for the length of the request and then discarded.

Test a list in four steps

No sign-up, no download and no desktop proxy checker to install. Paste the list and read the table.

  1. 1

    Paste or load your proxies

    Put one proxy on each line, or load a .txt list from your device. Mixed formats and mixed protocols in the same list are fine.

  2. 2

    Pick the protocol and speed

    Leave Detect automatically selected if you are not sure what the list contains. Raise the speed if you want the run finished sooner, or lower it on a slow connection.

  3. 3

    Watch the results arrive

    Rows fill in as each batch finishes, so you can start reading before the run ends. Press Stop at any point and everything checked so far is kept.

  4. 4

    Export the proxies that survived

    Filter to the working, elite or HTTPS-capable entries, then copy them, download a clean .txt, or take the full CSV with every measurement.

How the check actually works

A web page cannot open a connection through a proxy on its own. Browsers deliberately expose no way for JavaScript to choose a proxy for a request, so any tool claiming a purely in-browser proxy test is really doing the connection somewhere else.

Here the split is honest: your browser holds the list, decides how many checks run at once, streams the results into the table and does the location lookups. The proxy connection itself is made with cURL on the VPSLake server, because that is the only place it can be made. The page every proxy is asked to fetch is answered by Apache directly rather than by PHP, so hundreds of proxy hits never queue behind the checker that is waiting on them.

Transparent, anonymous and elite

Each proxy is asked to fetch a small endpoint on our own server that reports back exactly what arrived. Elite means the request carried no trace of a proxy at all. Anonymous means headers such as Via revealed that a proxy was in the path, but not who was behind it.

Transparent means the proxy attached the address of whoever connected to it, in a header like X-Forwarded-For. A proxy that discloses our address would disclose yours too, so treat that grade as a proxy that hides nothing.

Reading the speed column

Speed is the complete round trip: your proxy is contacted from our server, it fetches a tiny endpoint, and the answer comes back. Under 300 ms is quick, up to about a second is usable for scraping and browsing, and anything slower will feel painful on real pages.

Because everything is measured from one location, the numbers are best used to rank proxies against each other rather than as an absolute figure for your own connection.

Why HTTPS support matters

Fetching a plain HTTP page and tunnelling an encrypted HTTPS connection are two different jobs. Plenty of proxies from public lists manage the first and refuse the second, which makes them useless for almost every modern site.

The HTTPS column is a real CONNECT tunnel opened through the proxy, not a guess from its port number. It is only attempted for proxies that already answered, so a list full of dead entries costs nothing extra.

Use this on proxies you are allowed to use

This checker only ever asks a proxy to fetch one small endpoint on our own server. It cannot be pointed at someone else's website, it will not dial private, loopback or reserved addresses, and it refuses mail ports, so it cannot be turned into a scanner or an open relay. Use it to verify proxies you own, rent or are otherwise entitled to use. A result here is a measurement taken at one moment from one location: free public proxies in particular go up and down constantly, and a proxy that passes now may be gone in an hour. If you need an exit address that is reliably yours, run your own proxy on a server you control rather than relying on a public list.

Bulk Proxy Checker FAQ

Both, and each does the part it can. Your browser keeps the list, splits it into small batches, decides how many run at once, streams results into the table as they land, and performs the country and ISP lookups against ipwho.is directly from your device. The proxy connection itself is made with cURL on the VPSLake server, because no browser API lets a web page route a request through a proxy of your choosing. Any tool that claims otherwise is doing the same thing somewhere out of sight.
HTTP, HTTPS, SOCKS4, SOCKS4a, SOCKS5 and SOCKS5h. Lines may be written as host:port, scheme://host:port, user:pass@host:port, scheme://user:pass@host:port or host:port:user:pass. IPv6 goes in brackets, as [2001:db8::1]:8080. Host names are accepted as well as addresses. A scheme written on a line always wins over the protocol chosen in the form, so one list can mix protocols freely.
Elite proxies pass the request on with no sign that a proxy was involved. Anonymous proxies add headers such as Via or Proxy-Connection that reveal a proxy is present but say nothing about the client. Transparent proxies attach the connecting client's address in a header such as X-Forwarded-For, X-Real-IP or Forwarded, so the destination site can see straight through them. The grade is read from the headers that actually arrived at our endpoint, not guessed from the proxy's port or type.
No. Each batch is posted to the checker, used to dial those proxies, and discarded when the response is sent. Nothing is written to a database, a log of your list, or a file. Credentials are passed straight to cURL for that one connection and are never echoed back to the page. Normal web-server access logs record that the checker endpoint was called, but the list travels in the request body rather than the URL, so it does not appear in them. If a proxy password is one you cannot risk sending anywhere, do not paste it into any online checker, including this one.
Up to 200 in a single run. Your browser sends them in batches of 10 to 25 depending on the speed setting, and keeps up to 50 proxies in flight at once. Two checking slots are shared across everyone using the tool, so at busy moments a batch is told to wait a moment and retries itself; that is handled for you and only shows as a slightly slower run. Each batch also stops after 25 seconds and reports whatever has not answered by then, so one stuck list can never tie the server up.
The most common reason is IP allow-listing: many rented proxies only accept connections from addresses you registered, and our server is not one of them. Others block data-centre ranges outright, are geographically restricted, or are simply overloaded and slower than the ten-second timeout. Check the message in the status column — “refused the connection”, “needs a username and password” and “did not answer in time” point at three completely different problems.
Every request carries a one-time value that our endpoint must repeat back. If a reply arrives without it, something between us and the endpoint rewrote or invented the answer — a captive portal, an ad-injecting proxy, a caching appliance serving a stale page, or an entry that is not really a proxy at all. Those are marked as not working on purpose: a proxy you cannot trust to pass traffic through untouched is not a usable proxy.
Your browser asks ipwho.is about each unique working exit address, so the lookup uses your own connection and quota rather than ours, and only the exit address is sent — never your list, your credentials or anything else. Turn the option off if you would rather no third party saw those addresses. Geolocation databases are approximate, so treat the city as a hint and the country and network as reasonably dependable.
No, and that is a deliberate design decision. The destination is fixed to a small endpoint on our own server and there is no field to change it, so a proxy can never be asked to fetch a third-party address. Private, loopback and reserved ranges are rejected, host names that resolve into them are rejected, and mail ports are refused so the checker cannot be used to hunt for open relays.
Three things, all built in your browser. Copy working puts the live proxies on your clipboard in the same form you pasted them. Working .txt downloads that same list as a file. Full CSV includes every row with its protocol, status, exit address, anonymity grade, HTTPS result, speed and location, ready for a spreadsheet. Exports follow the filter you have selected, so filtering to elite or HTTPS-capable proxies first gives you exactly that list.