- rfc 文档: http://tools.ietf.org/html/rfc1928
- socks4/socks4a 已经过时
- socks5
socks5支持udp,所以如果客户端把dns查询也走socks的话,那么就可以直接解决dns的问题了。
socks proxy 握手的过程
socks5流程
- 客户端查询服务器支持的认证方式
- 服务器回应支持的认证方式
- 客户端发送认证信息,服务器回应
- 如果通过,客户端直接发送TCP/UDP的原始数据,以后proxy只单纯转发数据流,不做任何处理了
- socks proxy 自身没有加密机制,简单的TCP/UDP forward
socks协议其实是相当简单的,用wireshark抓包,结合netty-codec-socks,很容易可以理解其工作过程。
https://github.com/netty/netty/tree/master/codec-socks
https://github.com/netty/netty/tree/master/codec-socks