扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
三、代理服务是如何工作的
代理的工作的细节对每一种服务都是不同的,一些服务可以容易或者自动地提供代理,对于这些服务你可以通过对正常服务器的配置来设置代理。但对于大多数服务来说,代理服务在服务器上要求有合适的代理服务器软件。在客户端可以有不同的方法。
(1) 定制客户软件。采用这种方法,软件必需知道当用户提出请求时怎样与代替真实服务器的代理服务器进行连接,并且告诉代理服务器如何与真实服务器连接。
(2) 定制客户过程。采用这种方法时,用户使用标准的客户软件与代理服务器连接,并通知代理服务器与真实服务器连接,以此来代替与真实服务器的连接。
1.使用定制客户软件进行代理
第一个方法是使用定制客户软件进行代理,这种方法存在一些问题。定制的客户软件一般只适用于特定的平台。如果它对你的站点中一个平台都不适合的话,那么你的用户就太不幸了。
有时虽然定制客户软件适合你的平台,但它并不是用户所想要的,如在Macintosh上有许多FTP客户程序,其中有的具有很好的用户界面,另外的则有些很有用的功能,如anarchie是一个可以将Archie客户与FTP客户合并成一个程序的界面,这样你就可以在一个用户界面中利用Archie 查找文件,再用FTP进行文件下载。如果你想使用的软件不支持你的代理服务器,那也不行。有时你可以修改客户程序来支持代理服务器,但这需要有客户程序的源程序,并有重新编译能力,一般很少有客户程序支持任何形式的代理系统。
对于这种情况的例外是WWW的客户程序如Mosaic。很多这样的程序支持各种类型的代理(特别是SOCKS和CREN HTTP守护程序),大多数都是在防火墙和代理系统普及之后新出现的,因此知道了运行环境,并且在设计开始时就考虑了代理问题。
把客户程序进行修改后用于代理系统则不能使代理做到对用户透明。许多站点在内部使用原先未修改的客户程序,而在外部连接上使用修改的客户程序,用户必须要记住使用修改的客户程序来进行外部连接。这就往往使得用户按照他们已熟悉的步骤进行连接时,可能会在内部成功而连接外部则失败。
此外还要选择正确的程序,用户可能会发现自己要进行额外的配置,因为客户程序需要了解怎样与代理服务器相连。这虽然不是一个复杂的工作,但却增加了出错的机会。
2.使用定制的用户过程进行代理
使用定制用户过程的方法,代理服务器使用标准的软件来工作,然而,它们要求软件的用户遵守定制的过程。用户通知客户与代理服务器连接并通知代理服务器与哪个主机相连接。因为几乎没有一个协议是设计成传递这种信息的,用户不仅需要记住代理服务器的名字,而且还要记住通过其他主机名字的特殊方式。
它是如何工作的?你需要告诉自己的用户每个协议的具体步骤。如FTP协议,假定用户想从匿名FTP服务器(ftp.getfile.net)上下载一个文件,则应该:
1) 使用一FTP客户与代理服务器进行连接而不是与匿名FTP服务器直接连接。
2) 在输入用户名时,除了指定用户名的同时,还要指定他想要连接的真实的服务器名。例如,要连接匿名FTP服务器(ftp.getfile.net),那么在代理服务器上需输入:anonymous@ftp.getfile.net而不应只输入“anonymous"。
正如使用定制软件一样,要求对用户使用过程进行定制,使用定制过程也会对你可使用的客户程序增加一些限制。有的客户试图自动执行匿名FTP,但他们不知道如何经过代理服务器。一些客户可能被简单的操作方式所困扰,如一个图形界面的程序可能无法显示用户输入的包括主机和用户名的信息。
四、 代理服务器的使用
代理服务器有一些特殊类型,主要表现如下。
1.应用级与回路级代理
应用级代理是已知代理服务为哪个应用提供的代理,它能了解并解释应用协议中的命令,而回路级代理在客户端与服务器之间不解释应用协议中的命令就建立了连接回路。大多数应用级代理的最新版本是一个像sendmail的应用,由它来完成存储转发协议。大部分最新回路级代理是一个新式的代理网关,这个网关对外像一个代理,对内象一个过滤路由器。
应用级代理使用修改的过程,回路级代理使用修改的客户程序。这与代理的实用性有关。为了实现一个代理连接,你必须知道连接的方向。一个混合网关可以很容易地阻止连接,但一个代理主机只能接收连接,并从得到的信息中判断它要往那里继续进行连接。一个回路级代理不能解释应用协议,需要通过其它方式给它提供信息。因为客户程序的能力是很有效的,应用级代理通常是为了利用它们了解应用协议的优点,因此他们能使用修改的过程。而回路级代理,通常无法使用修改的过程,只能使用修改的客户程序。
尽管还没有修改的应用级代理,但确实存在着修改的回路级代理,如pluggw就是一个修改的过程并且是一个回路级代理。它连接的目标地址完全取决于源地址和与之连接的源及目标端口。
一个回路级代理的优点在于它能够为各种不同的协议提供服务。大多数回路级代理服务器也是公共代理服务器,它们几乎对于任何协议都支持,但不是每个协议都能由回路级代理轻易实现的,如FTP协议就是这样。它要求从客户端的数据端口连接到服务器上,并要求作协议级的调整和应用级的知识。回路级代理的缺点在于它对因代理而产生的事件几乎无法控制,像包过滤一样,它为源地址和目的地址提供连接,但是不能判断出经过它的命令是否安全或超出了协议的范围。回路级代理会很容易地被服务器设置的、分给其它服务器的端口号所蒙骗。
2.公共与专用代理服务器
虽然“应用级”和“回路级”是常用的术语,但是我们更加注重“公共”和“专用”代理服务器的区别。一个专用代理服务器只适用于单个协议,而一个公共代理服务器则适用多个协议。实际上专用代理服务器是应用级的,而公共代理服务器是属于回路级的。由于存在一个了解许多协议的公共的应用级代理服务器,或一个专用的回路级代理服务器(只提供一个服务,但了解多个协议),因此采用“专用”和“公共”这两个术语要比“应用级”和“回路级”好理解一些。
3. 智能代理服务器
如果一个代理服务器不光是转发请求,同时还能够做其它许多事情的话,这样的代理服务器就称为智能代理服务器,如CERN HTTP代理服务器还能够将数据保存在缓存中,以便同样的数据可以不必再从因特网上下载了。代理服务器(特别是应用级代理服务器)可以比其它方式提供更好的日志和访问控制功能。代理服务器的功能在不断迅速地发展,现在已有许多代理服务器除了提供基本功能外,还在不断增加新的功能。对于一个专用的应用级代理来说很容易升级到智能代理服务器,但对一个回路级的代理来说则较为困难。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。