关于socks5代理和dante的介绍,网上资料很多:
描述socks5协议的RFC http://tools.ietf.org/html/rfc1928
socks wiki http://en.wikipedia.org/wiki/SOCKS
socks5代理服务器开源软件dante官网 http://www.inet.no/dante
dante安装http://blog.chinaunix.net/space.php?uid=71828&do=blog&id=2678124
dante配置http://bbs.chinaunix.net/thread-621609-1-1.html
1.多进程架构
2.进程按功能分成管理、协商、请求和IO四类
3.使用select异步io
dante在启动之后会fork出一个或多个(参数-N)管理进程,管理进程一开始会fork一定比例数量的协商(negociate)、请求(request)和IO子进程;管理进程一般称为mother,分别与各个子进程保持双向通信;协商子进程negchild负责处理代理客户端的socks连接建立,run_negotiate就是这类进程要干的活,其中最主要的是recv_clientrequest,它解析了来自客户端的协议包并进行相应的应答处理;请求子进程reqchild负责连接远端目标地址,run_request和dorequest是核心处理函数;IO子进程iochild负责代理转发,以CONNECT方式为例io_rw函数实现了代理客户端和目标远端之间的对称转发;各类child的数量