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
socks5hto 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)