
代理伺服器
Proxy Server一般指本词条
代理伺服器(Proxy Server)的功能是代理网路用户去取得网路信息。形象地说,它是网路信息的中转站,是个人网路和Internet服务商之间的中间代理机构,负责转发合法的网路信息,对转发进行控制和登记。
代理伺服器作为连线Internet与Intranet的桥樑,在实际套用中发挥着极其重要的作用,它可用于多个目的,最基本的功能是连线,此外还包括安全性、快取、内容过滤、访问控制管理等功能。更重要的是,代理伺服器是Internet链路级网关所提供的一种重要的安全功能,它的工作主要在开放系统互联(OSI)模型的对话层。
基本介绍
- 中文名:代理伺服器
- 外文名:Proxy Server
- 作用:充当防火墙、节省IP开销等
- 功能:代理网路用户去取得网路信息
- 属性:一种计算机套用软体
- 性能指标:吞吐量、最大并发连线数、丢包率等
简介
随着Internet与Intranet的飞速发展,作为连线Internet与Intranet的的桥樑,代理伺服器在实际套用中发挥着极其重要的作用。
代理伺服器是网路信息的中转站。一般情况下,使用网路浏览器直接去连结其它Internet站点并取得网路信息时,须送出请求信号来得到应答,然后对方再把信息传送回来。代理伺服器是介于浏览器和Web伺服器之间的一台伺服器,有了它之后,浏览器不是直接到Web伺服器去取回网页而是向代理伺服器发出请求,请求信号会先送到代理伺服器,由代理伺服器来取回浏览器所需要的信息并传送给你的浏览器。而且,大部分代理伺服器都具有缓冲的功能,就好像一个大的Cache,它不断将新取得数据包存到它本机的存储器上,如果浏览器所请求的数据在它本机的存储器上已经存在而且是最新的,那幺它就不重新从Web伺服器取数据,而直接将存储器上的数据传送给用户的浏览器,这样就能显着提高浏览速度和效率。
代理伺服器不仅可以实现提高浏览速度和效率的功能,它还可以实现网路的安全过滤、流量控制(减少Internet使用费用)、用户管理等功能,因此它既是一种网路防火墙技术,同时也可以解决许多单位连线Internet引起IP位址不足的问题。
工作原理
代理伺服器作为一种既是伺服器又是客户机的中间程式,主要用于转发客户系统的网路访问请求。但是,代理伺服器不只是简单地向真正的网际网路伺服器转发请求,它还可以控制用户的行为,对接收到的客户请求进行决策,并根据过滤规则对用户请求进行过滤。
通过代理伺服器,网路管理员可以实现比用包过滤路由器更严格的安全策略。不同于使用通用的包过滤路由器来管理通过防火墙的网际网路服务流向,代理伺服器通过在网关上为每项需要的套用安装专用的代码(代理服务)来工作。如果网路管理员没有为某一特殊服务安装代理服务代码,该服务就不会被支持,也不会通过防火墙转发相应的客户请求。并且,这种代理伺服器码能被配置成仅支持某项服务的网路管理员认为可以接受的那部分特徵,而不支持其他的特徵。
主要功能
代理伺服器具有许多功能。对于我们个人用户而言,通过代理上网,能让我们访问一些直接访问会比较慢的网站,比如网际网路用户访问教育网的网站。对于单位而言,内部使用代理可以预先过滤一些病毒,保障上网的安全,还能有效地进行访问控制、网速限制,上网监控等等。
以下介绍代理伺服器的基本功能:
(1)一个lP地址或Internet帐户供多个用户同时使用
在目前情况下,IP位址是Internet中有限的宝贵资源,如果将这些IP位址仅仅用于单个的请求Internet访问的用户,不能不说是一种资源浪费。使用代理伺服器可以做到通过一个IP同时向多个用户提供Internet的访问,对于通过电话拨号连通Internet的内部网路,则可以实现利用一条电话线,一个modem和一个Internet帐户,让内部网路上所有用户同时访问Internet,这样就充分利用了IP位址资源。
(2)快取功能,可以降低费用,提高速度
安装时,代理伺服器会在硬碟上开出一块磁碟空间作为快取区,将代理用户从Internet上接收的内容下载一份保存起来,当再有用户访问同样内容时,就直接从快取区传送给用户,而不再从Internet上寻找。代理伺服器的这项功能可以大大地提高访问速度,同时也降低了通信费用,是一项相当重要的功能。
(3)对内部网路用户进行许可权和信息流量计费管理
图1 代理伺服器

通过代理伺服器,网管员在提供Internet服务时,可以容易地对内部网路用户进行访问许可权和信息流量计费的管理。网管员不但能够做到只允许被授权的区域网路用户访问Internet,还能够控制这些用户在哪些时间、使用哪台计算机访问哪些类型的Internet服务。对于已经获準访问的Internet的用户,网管员还能够按照多种方式进行信息流量的计费管理,如:按照个人计费、按照部门所属计算机计费等,为网路管理带来了极大的方便。
(4)对进入内部网路的Internet信息实施监控和过滤
为了避免那些与业务无关的信息进入内部网路浪费通信资费,各个机构对允许访问的内容往往有一些相应的规定。通过代理伺服器,网管员不但可以採取过滤的方法简便地控制从Internet流入内部网路的信息内容,还能对用户访问Internet的情况进行实时监控和建立监查日誌存档备查。
主要分类
通过代理伺服器共享上网从技术实现角度来说可以分为硬体共享上网和软体共享上网两种方式,从代理伺服器工作的层次的角度来说可以分为套用层代理、传输层代理和SOCKS代理。
图2 代理伺服器实现模型

套用层代理工作在TCP/IP模型的套用层之上,它只能用于支持代理的套用层协定(如HTTP,FTP)。它提供的控制最多,但是不灵活,必须要有相应的协定支持。如果协定不支持图2所示的代理伺服器实现模型(如SMTP和POP),那就只能在套用层以下代理,也即传输层代理。最后一种代理需要改变客户端的IP栈,即SOCKS代理。它是可用的最强大、最灵活的代理标準协定。以下将从代理伺服器工作的层次的分类角度上介绍几种不同层次的代理伺服器。
套用层代理
这里主要介绍基于HTTP协定的代理伺服器。HTTP是一个属于套用层的面向对象的协定,由于其简捷、快速的方式,适用于分散式超媒体信息系统。根据HTTP协定规定,当客户端使用代理模式时,传送的请求命令格式如下:methodhttp://hostname/path/⋯/fiIename。
图3 带有Cache资料库的HTTP协定代理模型

当客户端同网路代理服务系统建立连线后,代理伺服器将收到请求命令,这时代理伺服器应该截取主机名部分进行域名解析,并同该主机建立连线,将去掉主机名部分的请求命令转发给它,等待它做出回响,然后将得到的回响转发给客户端,最后下线。其模型如图3所示。
传输层代理
传输层代理直接与TCP层互动,更加灵活。要求代理伺服器具有部分真正伺服器的功能:监听特定TCP或UDP连线埠,接收客户端的请求同时向客户端发出相应的回响。
socks代理
Socks是一个客户/伺服器环境的代理协定。它包括两个主要的组件,Socks伺服器和Socks客户库。Socks伺服器实现在套用层,Socks客户库实现在客户的套用层与传输层之间。一个代理伺服器为客户机与套用伺服器建立连线,代理伺服器在客户与套用伺服器之间中转数据,从套用伺服器的角度来看,代理伺服器是客户。
当客户想建立到套用伺服器的连线时,先连线到代理伺服器。套用伺服器的地址和连线埠号通过代理协定被传递到代理伺服器,然后,代理伺服器再连线到套用伺服器。一旦到套用伺服器的连线被建立,代理伺服器在客户与套用伺服器之间中转数据。
目前,有两个版本的Socks协定,版本4和版本5。Socks版本4被简写为“Socks V4”,Socks版本5被简写为“Socks V5”。
网路影响
随着Internet的套用越来越广,Internet各项服务的安全问题也越来越突出,提供一个安全的网路环境也就变得日益重要。一般可以从两个方面实现Internet安全服务:
(1)访问控制,访问控制是保护网路的第一道防线,一般由防火墙实现。
(2)通信安全,此种服务提供对数据加密、在通信对方认证、双方无法抵赖、数据在传输过程中的完整性等服务,可以在套用层、传输层、网路层实现。
Internet上的代理服务是防火墙的一种形式,属于套用级网关,内部网路与外部网路之间没有直接的连线,外部计算机的网路链路只能到达代理伺服器,明显地增加了网路的安全性,另外,代理伺服器相对于包过滤来讲,能进行用户级的认证,即可以限制某些用户访问某些Internet站点或使用某种Internet服务等,从而大大提高了网路的安全性。
代理伺服器架构

然而代理伺服器的广泛套用,也使它成为网路攻击的重点目标。目前的代理伺服器并不能为用户提供可靠的安全性,甚至无法保障其自身的安全,所以研究并提高代理伺服器的安全备受关注。