Squid:实现高速的Web访问

CND架构下,各个地区的IDC机房里最重要的设施就是代理服务器和智能DNS解析,而最常用的代理服务器就是Squid,其最重要的功能就是缓存功能。在Windows上使用较多的代理服务器如:WinGate、SyGate、WinRoute、Proxy(现已发展成为ISA防火墙);Linux上的使用较多的代理服务器就是Squid.

【Squid&NAT】

我们来通过几张图来简单看一下NAT和Squid的工作机制:

【NAT的工作机制】

当内网用户访问Internet时,在网络出口路由器上进行SNAT,在进行SNAT时,因为内网的私有IP在Internet上是不能传输的,所以在发往Internet时,数据包的源地址已经被SNAT成了路由器的外口公网IP发往了ISP;当进行内部服务器发布时,要进行DNAT,为了内部服务器的安全,隐藏IP,要进行DNAT,在DNAT过程中,内网服务器相对于外部网络就是Destination了,所以当外部访问内部服务器时,内网IP是私有地址,在经过内网出口路由器时,要进行DNAT,将来源数据包的目的地址(出口路由器的外口公网地址)转成内网服务器私有地址,然后进行服务。

【Squid的工作机制】

当内部的用户访问Internet时,将数据包发往代理服务器Squid,代理服务查询自身的缓存信息,如果缓存命中(Hit),就将数据直接送往用户,如果缓存未命中(Missing),就向兄弟代理服务器发送请求,如果兄弟代理服务器有请求页面,就将数据返回,如果兄弟也没有,虚拟主机,那么代理服务器就以自己的地址作为源地址,父级服务器地址作为目的地址,将数据包发往父亲服务器,进行请求。可能我们会奇怪的发现Squid和NAT不是一样的吗?其实不然,Squid在进行代理时,香港空间,是不会对原始的数据包进行任何的修改的,整个过程中,数据包的源地址和目的地址都没有发生改变。如果缓存命中,直接返回,未命中,以自己地址去查询了,这样就显得非常的高效。

通过上面的简单了解,是不觉得Squid真的很强大呢?

下面我们结合案例来谈一下Squild的具体应用。

【实验拓扑】

基本环境搭建:

【实验设备】

Linux虚拟机(RedHat)WinXP虚拟机(测试PC)宽带路由器(访问Internet)

【参数设定】

安装需要的软件包,启动服务.

如果启动过程出错时

到现在,我们基本的环境就已经搭建好了,下面我们来做一些案例:

一:代理的基本应用.

测试代理可用性:此时在WinXP虚拟机上访问会出现下面问题:

这是由于Squild的配置中默认是denyall的,所以为了测试,稍作修改。

servicesquidrestart后,再刷新页面试试看。。。(同时观察我们的日志信息)

tail-f/var/log/squid/access.log观察日志信息.

Squid:代理服务器,又称为代理服务器防火墙.因此它是可以做很多访问控制的,下面我们在Squid的配置中加入一些访问控制,来测试一下。。。。。

①基于来源地址的控制.

servicesquidrestart再次刷新页面测试结果.

将WinXP虚拟机的ip地址改一下(192.168.2.101)再刷新测试一下.

Squid还可以对一段来源地址范围进行控制

例如:

aclbadipsrc192.168.2.100-192.168.2.110/255.255.255.255

http_accessdenybadip

重启服务,刷新就会再次被拒绝.

Squid还可以基于目的地址进行控制

(不过用处不是很大,因为Internet上的ip地址一般都是动态或则不止一个)

例如:

①aclinternetipdst192.168.101.254/255.255.255.255

②aclmanageripsrc192.168.2.100/255.255.255.255

③http_accessallowmanageripinternetip

④http_accessdenyallinternetip

//第③④行也可以换成下面的这种写法

//http_accessdeny!manageripinternetip

说明:192.168.101.254是宽带路由器的管理ip(模拟Internetdes主机).

192.168.2.100主机ip

重启服务,就可以登陆宽带路由器管理界面,更换主机地址,会再次被拒绝.

打破原先的记录,生活没有预赛,要想登上它的领奖台,

Squid:实现高速的Web访问

相关文章:

你感兴趣的文章:

标签云: