Is there an easy way, preferably by using the Linux terminal, to check if a Socks5 proxy works?

up vote 30 down vote accepted

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.

  • 1
    ssh: Could not resolve hostname somewhere: Name or service not known – tony_sid Jun 28 '11 at 11:06
  • 4
    Of course you have to replace someone@somewhere with your username and your server, e.g. ssh -D8888 YOURUSER@YOURHOST ;-) – binfalse Jun 28 '11 at 11:09

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

See the man page for more info.

  • Thanks, didn't realize why my request was failing until using this. – xamox Jun 10 '17 at 2:41

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.

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.