This repo is not a well-tested, production-ready one and is only for learning purposes. Use other implementations please.
Implementation of socks5 client and server in Golang.
This project is for learning purposes and not a clean, well-tested or production ready project.
- No Authentication Required
- Username/Password
-
Use
socks5h
to delegate resolving to proxy server. The client will resolve addresses locally when usingsocks5
-
In the username/password method since the request carries the password in cleartext, this subnegotiation is not recommended for environments where "sniffing" is possible and practical.
- SOCKS: A protocol for TCP proxy across firewalls
- RFC 1928 - SOCKS Protocol Version 5
- RFC 1929 - Username/Password Authentication for SOCKS V5
Use DialContext
for CONNECT
and UDP ASSOCIATE
commands.
Use Listen
for BIND
command. (BIND feature is still under development)