SOCKS5 proxy checker
Paste SOCKS5 proxies, one per line, and the checker opens a SOCKS5 session to each: it negotiates authentication, asks the proxy to connect to a neutral HTTPS endpoint, and records the exit IP, its location and how long the first response took. SOCKS5 is preselected; switch to SOCKS5H when the proxy, not the checker, should resolve the target's hostname.
One endpoint per line. Credentials are masked in results.
Complete the human verification before starting the check.
Format for your browser
Paste one proxy in the list above. Formatting happens on your device. Copied output includes credentials; keep it private. Check proxies uses the existing checker.
Credentials are used for your check and masked in results. Exports and shared summaries omit them. How your data is handled
Check results
Status, diagnostics, cold response time, exit IP, and location appear here.
Your results will appear here
Add your proxy list, choose a protocol and target, then select Check proxies.
Formats the checker accepts
Use the address your provider gives you. With credentials, either form works; percent-encode @, : and / inside a password written as a URL.
socks5://USER:PASS@HOST:PORT socks5h://USER:PASS@HOST:PORT HOST:PORT:USER:PASS HOST:PORT
SOCKS5 or SOCKS5H: who resolves the hostname
With socks5://, the client looks up the target's address and hands the proxy an IP. With socks5h://, the client sends the hostname and the proxy resolves it. The proxy protocol is the same; only the address type in the CONNECT request differs.
SOCKS5H is usually what you want behind a residential or geo-targeted proxy. The lookup happens from the exit's network, so a site that answers differently by region returns the regional address, and your own resolver never sees the hostname. Plain SOCKS5 resolves from wherever the client runs, which can send the connection to an address meant for another region.
If a proxy works as SOCKS5 but fails as SOCKS5H with TARGET_DNS_FAILED, the proxy cannot resolve names itself. If it works as SOCKS5H but fails as SOCKS5, the proxy may refuse raw IP destinations.
SOCKS5 reply codes and what they mean
When a SOCKS5 CONNECT fails, the proxy answers with a one-byte reply code (RFC 1928). Clients often print it as a number or a short phrase; the checker maps the failure to one of its error codes.
| Reply | Meaning | What to check |
|---|---|---|
| 0x01 General failure | The proxy could not complete the request for a reason it does not name. | Retry once; if it repeats on every target, the proxy or its upstream is unhealthy. |
| 0x02 Not allowed by ruleset | The proxy's rules refuse this destination or client. | Check allowlists, blocked ports and the provider's acceptable use rules. |
| 0x03 Network unreachable | The proxy has no route to the destination network. | Common when an IPv4-only exit is asked for an IPv6 address, or the reverse. |
| 0x04 Host unreachable | The proxy could not reach the destination host. | Confirm the host is up from another network; try SOCKS5H so the proxy picks the address. |
| 0x05 Connection refused | The destination refused the TCP connection. | The port is closed or filtered at the destination, not at the proxy. |
| 0x06 TTL expired | The connection timed out inside the proxy's network. | Usually transient; retry, then try another exit. |
| 0x07 Command not supported | The proxy does not support the requested command, such as BIND. | Use CONNECT for TCP. The checker only sends CONNECT. |
| 0x08 Address type not supported | The proxy cannot handle the address type sent: IPv6, IPv4 or a hostname. | Switch between SOCKS5 and SOCKS5H, or use an IPv4 target. |
Authentication fails before any reply code: the proxy either rejects every method the client offers (the 0xFF method reply) or rejects the username and password (RFC 1929). The checker reports both as AUTH_REQUIRED.
The checker's own codes, such as AUTH_REQUIRED, TARGET_DNS_FAILED and TIMEOUT, are explained one by one on the proxy checker error codes page.
Test a SOCKS5 proxy from the command line
To reproduce a result outside the browser, request an IP echo service through the proxy. A working proxy prints the exit IP; a failure prints the curl error.
curl, proxy resolves the hostname (SOCKS5H)
curl -x socks5h://USER:PASS@HOST:PORT https://api.ipify.org
curl, client resolves the hostname (SOCKS5)
curl -x socks5://USER:PASS@HOST:PORT https://api.ipify.org
Python requests (pip install "requests[socks]")
import requests
proxy = "socks5h://USER:PASS@HOST:PORT"
print(requests.get("https://api.ipify.org", proxies={"http": proxy, "https": proxy}, timeout=15).text)curl reports SOCKS5 failures as error 97 (proxy handshake or authentication) or names the reply code in its message; add -v to see each step.
What a SOCKS5 check does not cover
- TCP only. The checker sends CONNECT; it does not test UDP ASSOCIATE or BIND.
- Username and password, or no authentication. GSSAPI and other SOCKS5 methods are not tested.
- One request attempt per proxy, capped at eight seconds. A pass shows the proxy worked at that moment, not its throughput or uptime.
- Location comes from a separate GeoJS lookup of the exit IP, so it is a database answer, not a measurement.
For HTTP and HTTPS proxies, use the proxy checker. How each transport is tested is set out in HTTP, HTTPS and SOCKS5 testing.
SOCKS5 checker questions
How do I check if a SOCKS5 proxy is working?
Paste it into the checker above in socks5://USER:PASS@HOST:PORT or HOST:PORT:USER:PASS form and run the check. A working proxy returns an exit IP, a location and a response time. From a terminal, curl -x socks5h://USER:PASS@HOST:PORT https://api.ipify.org prints the exit IP when the proxy works.
What is the difference between SOCKS5 and SOCKS5H?
Only where the target hostname is resolved. SOCKS5 resolves it on the client and sends the proxy an IP address; SOCKS5H sends the hostname and lets the proxy resolve it. SOCKS5H keeps DNS lookups off your own network and returns region-correct addresses through a geo-targeted exit.
Can I check many SOCKS5 proxies at once?
Yes. Paste up to 1,000 lines. Each proxy gets one request attempt of at most eight seconds, and the results export as CSV or JSON when the run finishes.
Why does my SOCKS5 proxy fail with an authentication error?
The proxy refused the username and password, or refused every authentication method offered. Check the username format your provider documents (many encode country or session options in it), make sure special characters in the password are percent-encoded in URL form, and check whether the provider expects IP allowlisting instead of a password.
Does this checker test SOCKS5 UDP?
No. It tests TCP through CONNECT, which is what browsers, scrapers and most HTTP clients use. UDP ASSOCIATE needs a client that sends UDP datagrams through the proxy, which a browser-based check cannot do.
Is the SOCKS5 checker free?
Yes, with no signup. The free limit is 1,000 proxies per 10 minutes and 2,000 per hour. Credentials are used for your check and masked in results; exports and shared summaries leave them out.
More free tools
See all tools- Proxy cost calculatorCompare per-GB, per-run unlimited, monthly unlimited and traffic-pack costs using your own numbers.Open tool
- IP Leak TestInspect browser-visible IPv4, IPv6, WebRTC candidates, and DNS-location indicators against a known baseline.Open tool
- IPv6 TestCheck whether a target website actually works over IPv6, including every embedded host it depends on, because one IPv4-only resource breaks the page.Open tool