标题在UNIX上配置SOCKS5代理
栏目网络与通信
作者顾银晓
发布2001年38期
在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为委托服务器用的。
好了,让我们来动手试一试网上炒股吧!