首页 >
操作系统 >
win9x > 用Squid实现代理上网及计费
IP紧缺是高速发展的网络面临的现实问题,我们该如何解决这一问题?将只有内部IP的计算机通过一台具有标准IP作为代理服务器的计算机连接到Internet上是解决此问题的一种绝妙手段。代理服务器是数据的中转站,它可以将经过代理服务器的数据记录下来,为后继的数据分析和计费提供服务与帮助。另外,借助代理服务器软件(比如Squid)可以建立访问站点的缓存,从而让再次访问的用户能够直接从缓存中调用数据,加快访问速度,减少重复的网络数据流量。
由于Squid具有权限管理灵活、性能高和效率快等特点,应用较为广泛,因此,我们将就代理服务器软件Squid在Linux、FreeBSD和Unix应用中的认证问题进行讨论,同时还将介绍关于利用Squid辅助软件实现代理上网与计费的具体方法。
一、获取Squid及相关的软件
从http://squid-cache.org/上获取Squid软件,从http://web.onda.com.br/orso/上获取htpasswd_plus和SQMGRLOG,并将它们保存在/tmp目录下。
二、在Linux下编译并安装Squid
我们假设软件环境为Redhat Linux 7.x,编译和安装Squid的操作步骤如下。
1.下载最新版本的源文件Squid-2.3.STABLE4.src.tar.gz,并将它放置在/tmp目录下。
2.以root身份创建用户squidadmin#adduser squidadmin
在缺省的情况下,同名组squidadmin已经被建立。Squid因为考虑到安全问题,不能以root身份运行,所以从一开始就使用新建的用户进行安装管理。
3.以squidadmin登录,对Squid源文件解包和安装。
$cd /tmp
$tar -zxvf squid*
$cd squid*
$./configure --prefix=/usr/local/squid
进入Squid目录进行编译,考虑的选项是安装路径
--prefix=/usr/local/squid。
$make
$make install
4.进入/usr/local/squid/bin目录,执行$./squid -z,创建cache交换目录。至此,Squid已经安装在用户的系统上了。然而,要让Squid正常运转,用户还需要做一些基本设置。Squid的运转只与/usr/local/squid/etc/squid.conf有关,所有设置均在此文件中完成。
三、Squid基本设置
#Defaults:
acl all src 0.0.0.0/0.0.0.0
设置的规则在此处加入。
http_access deny all
在缺省的情况下,有以上2条规则。当有请求未能匹配任何一条用户定义的规则时,http_access deny all规则将被应用,这样,http请求将被拒绝。 #该log文件是用来描述每次客户请求HTTP内容时高速缓存命中或未命中的项目,同时还描述提出请求的主机身份及它们所需要的内容,它是用SQMGRLOG等软件分析记费的基础。
cache log /var/log/squid/cache.log
#用于描述当Squid守护进程启动时可以看到的内存容量、交换空间的大小、高速缓存目录的位置、所接受的连接类型以及接受连接的端口。
cache_store_log /var/log/squid/store.log
#用于描述页面从高速缓存中被调入调出的情况。
pid filename /var/run/squid.pid
#Squid进程的进程号。
dns nameservers 192.x.x.1
#定义域名解析服务器的地址。
cache_mgr squidadmin@your.domain
#cache管理员的邮件箱地址。
reference age 1 week
#设置缓冲区的更新周期。
maximum object size 4096 KB
#设置允许被缓存的一次性最大请求。
cache_effective_user squidadmin squidadmin
#以用户squidadmin的身份运行。
四、用SQMGRLOG实现计费
$cd /tmp
$tar -zxvf sqmlog*
$cd sqm*
$./configure --enable-config=/usr/local/squid/
的选项主要有以下2项。
1. 语言
该语言不包含中文。事实上,它的语言部分是由English.h控制的,可以汉化后对其进行编译和安装。
--enable-language=English, Bulgarian_windows1251, Czech, Dutch, French, German, Hungarian, Indonesian, talian, apanese, Portuguese, Russian_Koi8, Russian_windows1251, Serbian, Spanish, Turkish default: English