代理服务器
代理(英语:Proxy)也称网络代理,是一种特殊的网络服务,允许一个终端(一般为客户端)通过这个服务与另一个终端(一般为伺服器)进行非直接的连接。一些网关、路由器等网络装置具备网络代理功能。一般认为代理服务有利于保障网络终端的隐私或安全,在一定程度上能够阻止网络攻击。
提供代理服务的电脑系统或其它类型的网络终端称为代理伺服器。一个完整的代理请求过程为:客户端首先根据代理伺服器所使用的代理协议,与代理伺服器建立连接,接着按照协议请求对目标伺服器建立连接、或者获得目标伺服器的指定资源(如:文件)。在后一种情况中,代理伺服器可能对目标伺服器的资源下载至本地缓存,如果客户端所要获取的资源在代理伺服器的缓存之中,则代理伺服器并不会向目标伺服器发送请求,而是直接传回已缓存的资源。一些代理协议允许代理伺服器改变客户端的原始请求、目标伺服器的原始响应,以满足代理协议的需要。
另外在部分实行网络审查的国家(如中华人民共和国),可以通过使用代理伺服器的方式以突破网络审查(俗称“翻墙”)
持有资源实体的伺服器被称为源伺服器,从源伺服器返回的响应经过代理伺服器后再传给客户端。
代理协议
Socks
HTTP
功能
- 提高访问速度
- 通常代理伺服器都设置一个较大的缓冲区,当有外界的资讯通过时,同时也将其保存到缓冲区中,当其他用户再访问相同的资讯时, 则直接由缓冲区中取出资讯,传给用户,以提高访问速度。
- 控制对内部资源的访问
- 如某大学FTP(前提是该代理地址在该资源的允许访问范围之内),使用教育网内地址段免费代理伺服器,就可以用于对教育网开放的各类FTP下载上传,以及各类资料查询共享等服务。
- 过滤内容
- 例如限制对特定电脑的访问,将一种语言的数据翻译成另一种语言[需要解释],或是防御代理伺服器两边的攻击性访问。
- 隐藏真实IP
- 上网者也可以通过代理伺服器隐藏自己的IP,但是只有一个代理很难保证安全,更安全的方法是利用特定的工具建立代理链(如:Tor网络)。
- 突破网站的区域限制
- 通过代理伺服器访问Netflix、Google等对中国地区进行内容限制(如防火长城)的网站;非中国大陆用户也可通过代理伺服器访问爱奇艺等著作权仅授予中国大陆地区的网站。
- 突破网络审查,访问被过滤网站
- 如防火长城对中国境内互联网存取的限制可透过使用代理伺服器绕过。(俗称“翻墙”、“科学上网”等)
种类
根据协议区分
- RTSP代理
- 主要用于Real Player访问Real流媒体伺服器,一般有缓存功能。端口一般为554。
- Telnet代理
- 主要用于Telnet远程控制(骇客入侵电脑时常用于隐藏身份)。端口一般为23。
- SOCKS代理
- 只是单纯传递数据包,不关心具体协议和用法,所以速度快很多。端口一般为1080。
根据匿名程度区分
- 高度匿名代理
- 高度匿名代理会将数据包原封不动的转发,在服务端看来就好像真的是一个普通客户端在访问,而记录的IP是代理伺服器的IP。
- 普通匿名代理
- 普通匿名代理会在数据包上做一些改动,服务端上有可能发现这是个代理伺服器,也有一定几率追查到客户端的真实IP。代理伺服器通常会加入的HTTP头有HTTP_VIA和HTTP_X_FORWARDED_FOR 。
- 透明代理
- 透明代理不但改动了数据包,还会告诉伺服器客户端的真实IP。这种代理除了能用缓存技术提高浏览速度,能用内容过滤提高安全性之外,并无其他显著作用。(最常见的例子是:内网中的硬件防火墙)
- 间谍代理
- 间谍代理指组织或个人建立的,用于记录用户传输的数据,然后进行研究、监控等目的代理伺服器。
反向代理伺服器
反向代理伺服器架设在伺服器端,通过缓冲经常被请求的页面来缓解伺服器(如Web伺服器)的工作量。安装反向代理伺服器有几个原因:
- 负载平衡
- 缓存静态内容
- 压缩数据
- 外网发布