How to check if a Socks5 proxy works

If you created the proxy by yourself you should first of all check whether there is an open port (the p argument only works if the concerning process is yours or you are root):

netstat -tlnp

This should give you a line like: (I have a proxy on localhost:8888)

tcp        0      0 127.0.0.1:8888          0.0.0.0:*               LISTEN

If you found such a line or the proxy isn't yours, try sending packets through it. For example request a web page with curl:

curl --socks5 localhost:8888 binfalse.de

Should output some HTML stuff. Hope this helps to search for mistakes ;-)


Aux: For my example I created the proxy via:

ssh -o ServerAliveInterval=60 -D8888 someone@somewhere

Replace someone with your username and somewhere with your destination server. Of course using OpenSSH is just one method in a bunch of possible socks5 proxies.


To get curl to resolve the DNS on the other side, change --socks5 with --socks5-hostname.

See the man page for more info.


The following command will test whether Socks 5 proxy works at localhost:8080:

timeout 5 curl -x socks5://localhost:8080 http://example.com/

Otherwise it'll timeout after 5 seconds. If you don't have a timeout command, drop it.