一、 代理服务器简介
(1)什么是代理服务器
代理服务器英文全称为ProxyServer,其主要功能代理网络用户获取网络信息,起到内网和Internet的桥梁作用。
在TCP/IP网络中,传统的通信过程是这样的:客户端向服务器请求数据,服务器响应该请求,将数据传送给客户端。在引入了代理服务器以后,这一过程变成了这样:客户端向服务器发起请求,该请求被送到代理服务器;代理服务器分析该请求,先查看自己缓存中是否有请求数据,如果有就直接传送给客户端,如果没有就代替客户端向该服务器发出请求。服务器响应以后,代理服务器将响应的数据传送给客户端,同时在自己的缓存中保留一份该数据的拷贝。这样,再有客户端请求相同的数据时,代理服务器就可以直接将数据传送给客户端,而不需要再向该服务器发起请求。
(2)代理服务器的作用
目前,代理服务器得到广泛的应用,它的作用主要表现在:
1、共享网络
代理服务器最主要的功能之一就是代理上网。随着互联网的发展,上网的人数呈现几何级增长,特别是局域网内几百台的计算机同时上网,网速成为瓶颈;另外,由于公网IP地址的稀缺,每台计算机拥有各自公网IP是不现实的事情,基于以上原因,代理服务器出现缓解了上述压力,它充分利用局域网出口的有限带宽,加快内网用户的访问速度,可以解决仅仅有一条线路一个IP,IP资源不足的现状,让局域网很多用户同时上网。
2、提高访问速度
客户端本身带宽较小,通过带宽较大的代理服务器与Internet的连接,提高了网络带宽。另外,通常代理服务器都设置一个较大的硬盘缓冲区,当有外界的信息通过时,同时也将其保存到缓冲区中,当其他用户再访问相同的信息时,则直接由缓冲区中取出信息,传给用户,从而达到提高访问速度的目的。
3、防止攻击
局域网内的计算机通常都是私有IP地址,通过一个代理服务器上网,隐藏了自身地址信息,外网的计算机无法确定内网的计算机IP地址,有效防止黑客利用扫描、刺探等方式的攻击,从而保护了主机的安全。
4、起到防火墙的作用
所有内部网的用户通过代理服务器访问外界时,只映射为一个IP地址,所以外界不能直接访问到内部网;同时可以设置IP地址过滤,限制内部网对外部的访问权限;另外,两个没有互联的内部网,也可以通过第三方的代理服务器进行互联来交换信息,因此,代理服务器连接Internet与Intranet ,充当了防火墙。
二、 代理服务器工作原理
客户端通过代理服务器访问Internet的工作原理如图所示。
从图可以看出,通过代理服务器访问Internet的过程如下:
(1)客户端A通过代理服务器访问Internet上的web服务器。
(2)代理服务器收到客户端A的访问请求,首先到本机的代理缓存中查找是否有客户端A需求的信息。
(3)如果有则直接将代理缓存中的信息传回客户端A;如果不存在需求的信息,则代理服务器通过Internet代替客户端A访问目标web服务器。
(4)web服务器将客户端A的需求信息传回到代理服务器。
(5)代理服务器将收到的信息存到缓存中,以备其他客户端的访问。
(6)同时,代理服务器将缓存中的信息最终传回给客户端A。
(7)客户端B向代理服务器提出相同的web请求。
(8)代理服务器同样首先查询代理缓存中是否有客户端B的需求信息。
(9)代理缓存中存在客户端B的需求信息,直接将信息传送给客户端B,客户端B无需再访问web服务器,节省了时间,提高了网络访问效率。
三、代理服务器软件Squid简介
Squid是一个在Linux环境下流行的自由软件(GNU通用公共许可证)的代理服务器和Web缓存服务器软件。该软件由国家网络应用实验室的Duanne Wessels主持,NFS出资支持,以及互联网上众多的开发人员共同研发完成的。Squid的官方网站是http://www.squid-cache.org/,如图所示。
Squid有广泛的用途,从作为网页服务器的前置缓存(cache)服务器缓存相关请求来提高Web服务器的速度,到为多人共享网络资源而缓存万维网、域名系统和其他网络搜索,到通过过滤流量帮助网络安全,到局域网通过代理上网。Squid主要设计用于在Unix一类系统运行。
Squid优势主要表现在:
(1)功能齐全强大。Squid是一个高性能的代理缓存服务器,Squid支持FTP、gopher和HTTP多种协议。
(2)支持多级缓存。Squid将数据缓存在内存中,同时也缓存DNS查询的结果,除此之外,它还支持非模块化的DNS查询,对失败的请求进行消极缓存。
(3)Squid支持SSL,支持访问控制。由于使用了ICP(轻量Internet缓存协议),Squid能够实现层叠的代理阵列,从而最大限度地节约带宽。
(4)Squid支持透明代理。
(5)Squid使用访问控制清单(ACL)和访问权限清单(ARL)。
(6)提供HTTP服务器加速。