在UNIX上配置SOCKS5代理

在Unix下有各种各样的代理程序可用,像最常用的Squid,但它只能代理HTTP/HTTPS和FTP协议,而目前流行的QQ和《天网网上实时股票行情》却要用SOCKS5代理。
   为了使服务器可以使用QQ和网上股票实时行情系统,笔者在FreeBSD上用SOCKS5完成了这一代理设置,在Linux上的配置方法相同。以下为配置SOCKS5的过程:
   1.下载文件
   从www.socks.nec.com下载最新版的SOCKS5源文件到/tmp目录下。目前最新版本为socks5-v1.0r11.tar.gz。
   2.在服务器上编译并安装(该服务器是安装了两块网卡的双宿主机,应直接连至Internet,假设内部网段为192.168.0.0/24:
   cd /tmp
   解压缩:
   tar -xvfz socks5-v1.0r11.tar.gz
   然后进入相应目录:
   cd /tmp/socks5-v1.0r11
   3.配置
   在安装SOCKS5之前,你可以根据自已的具体需要对软件包进行配置,输入:
   ./configure -help
   将显示出所有参数及简要说明。
   一般以默认方式安装:
   ./configure
   4.生成软件包
   make all
   当需要重新配置安装软件包时,可输入命令:
   make distclean
   5.安装
   make install
   这样缺省的安装目录在/usr/local下,也可以通过配置参数-prefix来改变安装目录。
   6.设置
   SOCKS5服务器通过一个配置文件进行配置,默认的是/etc/socks5.conf
   下面为我的配置文件
   #vi /etc/socks5.conf
   auth - - -
   permit - - - - - - -
   set socks5_V4SUPPORT
   如果要作一些限制如设口令则可如下配置:
   auth 192.168.0. - u
   permit u - 192.168.0. - - - tom
   permit u - 192.168.0. - - - jack
   set socks5_V4SUPPORT
   deny - - - - - - -
   另外配置文件/etc/socks5.passwd
   # /etc/socks5.passwd
   tom password_of_tom_is_here
   jack password_of_jephe_is_here
   注意:由于目前网上股票行情只支持SOCKS4 所以应在配置文档中加上如下一行
   set socks5_V4SUPPORT
   7.开始测试和运行
   /usr/local/bin/socks5 -f -s
   如果出现下面的信息则表示测试成功。
   18210: Socks5 starting at Mon Dec 14 18:23:45 2000 in normal mode
   然后退出SOCKS5,开始正式运行它在相应的模式,SOCKS5可以在多种运行模式下运行,笔者推荐使用Preforking模式:
   /usr/local/bin/socks5 -p
   8.如果想让SOCKS5在系统启动时自动运行,则须相应配置启动脚本以使SOCKS5自动运行:
   在FreeBSD下rc.conf中加上
   /usr/local/bin/socks5 -p
   在linux下则加到/etc/rc.d/rc.local
   echo "/usr/local/bin/socks5 -p -s 2> /var/log/socks5" >> /etc/rc.d/rc.local
   9.总结和注意点
   关于SOCKS5的运行模式说明
   SOCKS5可以运行在以下模式:
   -standalone模式
   -pre-forking模式,通过加-p标志
   -threaded模式,在运行configure时加-with-threads参数并在运行时加-t标志
   -inetd模式,通过加-i标志
   当你在运行SOCKS5中省略参数的话,SOCKS5服务器就以Forking模式运行,并且为每个连接请求产生一个子进程,由于Forking使用系统资源,所以这种模式性能不如Preforking和Threaded模式。
   由于性能原因,NEC公司不推荐使用Inetd模式。
   在NT服务器上则只有Thread模式。
   如果操作系统支持POSIX进程的话,SOCKS5服务器就能以Thread模式运行,在这种模式下,SOCKS5服务器为每个连接产生一个独立的线程,这种模式是最快的,但也对服务器有很大影响。
   运行时用-p选项则SOCKS5运行在Preforking模式,在这种模式下,SOCKS5服务初始化时就产生子进程,当收到连接请求时子进程又存在的话,就会增加系统性能,对于大部分系统,Preforking是首选的方式,你可以在socks5.conf文档中用-nchildren选项设定子进程数目,如果缺省则产生64个子进程。
   如果要停止SOCKS5则运行:
   /usr/local/bin/stopsocks -KILL或用/usr/local/bin/stopsocks -HUP命令重新启动。
   另外要注意你的服务器不能让其它程序使用8001和8002号端口,因为这是网上股票行情系统专用的,其中8001号端口是看行情的服务器端口,8002为委托服务器用的。
   好了,让我们来动手试一试网上炒股吧!