首先安装squid-2.6.STABLE21-6.el5软件包,以rpm方式即可。
作为应用层的代理服务软件,squid主要提供缓存加速,应用层过滤控制的功能。
代理的基本类型
(一)传统代理
必须在客户机端手动设置代理服务器的地址和端口,而且访问网页的域名解析请求也会发给指定的代理服务器。
实际应用中传统代理多见于Internet环境,而透明代理多见于局域网环境。
(二)透明代理
与传统代理服务和功能相同,但是,客户机端不需要指定代理服务器的地址和端口,也可使用代理服务。使用透明代理时,域名解析请求会优先发给DNS服务器。
Squid配置文件常用的配置项
http_port 3128 :默认端口为3128,也可以在端口前面加IP。
cache_mem 64 MB :指定用于缓存的内存空间大小,应为4的倍数,建议设为实际内存的1/4到1/3,具体根据服务器的性能和负载而定。
maximum_object_size 4096 KB :允许保存到缓存空间的最大对象大小,一般以KB为单位,超过大小限制将不会被缓存,而是直接转发给用户。
reply_body_max_size 10240000 allow all :允许用户下载的最大文件大小,以字节(byte)为单位,默认为0,表示不进行限制。其中,all为默认的访问控制列表,针对任意地址的用户。
cache_dir ufs /var/spool/squid 100 16 256 :指定缓存数据所存放的目录,容量,子目录个数等相关参数。
access_log /var/log/squid/access.log squid :指定代理服务的日志文件位置及记录格式(squid)。
visible_hostname localhost.localdomain :指定代理服务器本机的可见主机名。
dns_testnames www.baidu.com www.sina.com www.163.com :用来执行DNS解析测试,以确保squid服务器自身的DNS查询功能正常。
构建传统代理服务器:
1.修改squid.conf配置文件
[root@server ~]#vim /etc/squid/squid.conf
http_port 3128
visible_hostname localhost.localdomain
reply_body_max_size 10240000 allow all
http_access allow all //放在http_access deny all之前
2.初始化并启动squid服务
[root@server ~]#service squid start
[root@server ~]#squid -z //-z选项用来初始化缓存目录
[root@server ~]#squid -D //启动squid服务,-D选项表示不进行DNS测试
[root@server ~]#service squid reload
3.在客户机中指定代理
IE:"Internet选项"--"局域网LAN设置"
Firefox:"首选项"--"高级"--"网络连接"
构建透明代理服务器:
1.配置squid支持透明代理
[root@server ~]#vim /etc/squid/squid.conf
http_port 192.168.1.1:3128 transparent
[root@server ~]#service squid reload
2.设置iptables重定向策略
[root@server ~]#iptables -t nat -A PREROUTING -i 入站网卡 -s 192.168.1.0/24 -p tcp --dport 80 -j REDIRECT --to 3128
3.去除手动代理