代理服务器概述

专题快递

使用互联网中的代理服务器,主要目的是为了访问无法通过本地ISP直接访问的站点。本地ISP出于多种目的要限制用户的访问权限。客户机可以通过代理服务器作为跳板来实现站点的访问。
使用代理服务器的另一个好处是可以获得更快的联网速度。此外代理服务器还可对局域网用户进行管理,可以设置不同用户的访问权限、对Internet地址进行过滤,设置不同的访问权限,并能对用户账号进行验证及对用户的访问时间、访问地点、信息流量进行统计;它还能充当局域网中的防火墙,起到保护内部网络的作用;代理服务器通常还具有缓冲器功能(Cache),可以设置一个较大的硬盘缓冲区(高达几个GB或更大)。当有外界的信息通过时,同时也将它们保存到缓冲区中。当其他用户再访问相同的信息时,直接由缓冲区中取出信息,传给用户,以提高访问速度。

什么是代理服务器

代理服务器(Proxy Server)就是介于网络用户和Internet相关服务器之间的一台服务器。它负责转发网络信息,并对转发进行控制和登记。其功能就是代理网络用户去取得网络信息,形象地说就是它是网络信息的“中转站”(图1)

图1
图1

代理服务器的工作机制类似于日常生活中常常说起的代理商。假设你自己的机器为A机,你想获得的数据由服务器B提供,代理服务器为C,那么具体的连接过程是这样的:
首先,A机需要B机的数据,A直接与C机建立连接,C机接收到A机的数据请求后,与B机建立连接,下载A机所请求的B机上的数据到本地,再将此数据发送至A机,完成代理任务。
我们常说的代理服务器实际存在在两个地方:本地局域网和远程的互联网上,对于我们来说它们的作用是不一样的。
在局域网中架设代理服务器的目的是为了降低联网成本,它能让局域网用户共享一个Internet连接(如(图2)),所有用户对外只占用一个IP地址(也可是以是多个),所以不必租用过多的IP地址,这样就降低了Internet接入的开销,即多机共享上网(关于代理服务器在实现多机共享上网方面的应用请大家关注下期“共享上网”专题)。
图2
图2

代理协议和端口

不同类型的网络应用软件使用的网络应用协议不同,因而代理服务器针对不同的应用提供不同协议的代理,常用的互联网应用协议有HTTP、FTP、SOCKS、TELNET等。
HTTP,FTP和TELNET代理分别代理网页浏览,文件传输和远程登录,而SOCKS是一种全能代理(前面所有的功能它都可以实现,应用面极广),它可以说是个电路级网关,在协议栈的TCP层上运行。SOCKS不要求应用程序遵循特定的操作系统平台,比如像Winsock那样遵循Windows。SOCKS代理与应用层代理、HTTP 层代理不同,SOCKS代理只是简单地传递数据包,而不必关心是何种应用协议(比如FTP、HTTP和NNTP请求)。所以SOCKS代理服务器比应用层代理服务器要快得多。SOCKS代理分为SOCKS4和SOCKS5。SOCKS4代理只支持TCP协议(传输控制协议),SOCKS5代理支持TCP和UDP协议(用户数据报协议),还支持各种身份验证机制,服务器端域名解析等。SOCKS4能干的SOCKS5都可以干,反过来就不行,像QQ一类的即时通信软件通常用SOCKS5代理(现在QQ和MSN Messenger也开始支持HTTP代理)。另外不同类型的代理服务器使用的默认端口不同,常见HTTP代理端口有80、808、8080,3128、1080等;SOCKS代理端口通常是1080;FTP代理主要有21、2121等。

代理服务器软件

要用好代理服务器可不能不了解代理服务器软件,实际我们常说的代理服务器软件包括两大类型:Proxy代理服务器类型和 NAT网络地址转换型,其中NAT(Network Address Translation,网络地址转换)网络地址转换型通常也称为网关型。
Proxy类代理服务器即我们通常意义上所说的代理服务器,NAT类的代理服务器严格说应该是软网关,它是通过将局域网内部的私有IP地址,转换为合法的公用IP地址来实现对Internet的访问。NAT其实可以这样理解:它是一个在数据包底层的Proxy代理,它不再单独为每一种互联网应用协议,例如HTTP、FTP、TELNET来做代理工作,它是为每个TCP/IP数据包进行代理。由于NAT类软件和Proxy类代理服务器软件的功能十分类似,一般情况下也就将它们混称为代理服务器软件。
通常Proxy类代理服务器需要客户机安装客户端程序或对每种网络应用软件进行设置,而NAT类型的代理服务器只要将服务器的地址设为客户机的网关就可以实现对Internet的访问。NAT针对每一个数据包转换,也就不存在在不同网络应用协议中需要分别代理和处理的问题,用户不需要根据每一种网络的应用程序考虑连接代理的配置工作,使用起来更加简单。所以有时叫它“透明代理”。NAT由于是全透明、全底层的工作方式,所以对客户机所使用的网络应用程序在控制管理能力上比Proxy类型就差了一些。不过随着开发商对IP数据包研究的加深,控制管理能力也在逐步增强。现在的NAT共享上网软件控制管理能力比刚出来的时候已经强大了很多。而原来典型的Proxy类代理服务器软件(如WinGate)也增加了NAT功能。所以这两类软件的界限也越来越模糊,似乎有融合的趋势。