How to check if a Socks5 proxy works
Become or hire the top 3% of the developers on Toptal https://topt.al/25cXVn
-------------------------------------------------------------------------------
Music by Eric Matyas
https://www.soundimage.org
Track title: Dreamlands
--
Chapters
00:00 Question
00:20 Accepted answer (Score 50)
01:36 Answer 2 (Score 9)
02:00 Answer 3 (Score 9)
02:18 Answer 4 (Score 4)
03:32 Thank you
--
Full question
https://superuser.com/questions/303251/h...
--
Content licensed under CC BY-SA
https://meta.stackexchange.com/help/lice...
--
Tags
#linux #proxy #socks5
#avk47
ACCEPTED ANSWER
Score 50
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.
ANSWER 2
Score 9
To get curl to resolve the DNS on the other side, change --socks5
with --socks5-hostname
.
See the man page for more info.
ANSWER 3
Score 9
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.
ANSWER 4
Score 4
You may connect with netcat and follow the rules of RFC 1928 to talk to the server. You'd have to be able to type and read non-printable characters though, or log them to a file for further examination.
E.g., to test if it's a SOCKS5 server and find out which of no-auth, gssapi, or usr+pwd authentication methods it would support, send 0x05 0x03 0x00 0x01 0x02. A SOCKS5 server prepared to use usr+pwd authentication would reply 0x05 0x02.
Or here's how to check if it's a SOCKS5 server and no-auth (method 0) works:
echo 050100 | xxd -p -r | netcat -o out.txt {server} {port}
After you interrupt that, towards the end of out.txt it should have produced 0x05 0x00 if the server supports that method (0), or 0x05 0xFF if it does not.