另外,我们访问Internet时,有时候会遇到这样的网站地址:http://www.hello_world.com,在网站的URL地址里面有下划线,这时Red Hat Linux自带的squid软件包可能会报告无法访问该网站。
这些功能需要重新编译squid源代码增加相应的编译选项来实现。下面我们就来看一下如何使用rpm重新编译软件包源代码获得必要的功能。
当文章写到这里的时候,Red Hat Linux网站发布了squid的升级软件包,我们可以从网上获得它的最新源代码rpm包:
ftp://updates.redhat.com/7.2/en/ ... ABLE6-6.7.3.src.rpm
在开始编译前,有一些软件包是需要首先安装,这可能包括rpm-build、sgml-tools,前者在Red Hat Linux的光盘上可以找到,后者可以从这里下载:
ftp://ftp.freesoft.cei.gov.cn/.m ... s-1.0.9-12.i386.rpm
安装squid的源代码包
[root@rh73 ~]# rpm -ivh squid-2.4.STABLE6-6.7.3.src.rpm
安装后的源代码包在/usr/src/redhat/SOURCES目录下,我们关心的是另外一个文件/usr/src/redhat/SPECS/squid.spec,这里面有squid的相关编译选项,修改该文件%configure部分如下:
%configure
--exec_prefix=/usr --bindir=/usr/sbin --libexecdir=/usr/lib/squid
--localstatedir=/var --sysconfdir=/etc/squid
--enable-poll --enable-snmp --enable-removal-policies="heap,lru"
--enable-storeio="aufs,coss,diskd,ufs"
--enable-delay-pools --enable-linux-netfilter
--with-pthreads
--enable-underscores
--enable-arp-acl
--enable-err-language=Simplify_Chinese
--enable-auth-modules="LDAP,NCSA,PAM,SMB,MSNT" # --enable-icmp
--enable-underscores是增加对下划线网址的支持,--enable-arp-acl是增加支持MAC地址方式的鉴权。
开始编译产生新的RPM包:
[root@rh73 ~]# rpm -ba squid.spe
这条命令将根据squid.spec的配置重新编译生成新的rpm包。编译过程视机器性能的好坏而定,大概需要几分钟到几十分钟不等,如果没有什么错误,最后产生的新的rpm包在/usr/src/redhat/RPMS/i386/目录下:squid- 2.4.STABLE6-6.7.3.i386.rpm
安装新的rpm包:
[root@rh73 ~]# rpm -Uvh /usr/src/redhat/RPMS/i386/squid-2.4.STABLE6-6.7.3.i386.rpm
注意,这里使用了-U参数,是因为我们前面已经安装过squid的一个较旧的版本,-U参数指出这个操作是对原有版本软件包的升级。现在你的squid就可以支持MAC地址鉴权和带下划线的URL地址了。 8)
配置squid.conf来支持MAC地址鉴权,在squid.conf里加入这样的内容:
acl allowedmac arp00:10:DC:8F:5B:FF
http_access allow allowedmac
上面只是常用的几种ACL设置的示例,关于ACL可以访问squid主页上FAQ文档的Access Controls部分获得更多的信息:
http://www.squid-cache.org/Doc/FAQ/FAQ-10.html
§§ 配置透明代理
透明代理是NAT和代理的完美结合,之所以称为透明,是因为在这种工作方式下你感觉不到代理的存在,和单纯使用NAT一样,对上网的客户端没有任何特殊的设置。Squid可以通过配置支持透明代理。








