原文链接:Nginx – 01 – 网络代理
相关文章:
一、代理 (Proxy)
-
代理,也称为网络代理,是一种特殊的网络服务
-
允许一个网络终端通过这个服务与另一个网络终端进行非直接的连接
二、代理服务器 (Proxy Server)
- 提供代理服务的计算机系统或其他类型的网络终端称为代理服务器
三、代理流程
-
客户端首先与代理服务器创建连接,接着根据代理服务器所使用的代理协议,请求对目标服务器创建连接、或者获得目标服务器的指定资源
-
在获取目标服务器的指定资源时,代理服务器可能会将目标服务器的资源下载到本地缓存,如果客户端所要的资源在代理服务器的缓存之中,则代理服务器就不会向目标服务器发送请求,而是直接返回已缓存的资源
-
一些代理协议允许代理服务器改变客户端的原始请求或目标服务器的原始响应,以满足代理协议的需要;代理服务器的选项和设置配置在计算机程序中,通常包括一个“防火墙”,允许用户输入代理地址,它会遮盖客户端的网络活动,可以允许绕过互联网过滤实现网络访问
-
持有资源实体的服务器称为源服务器,从源服务器返回的响应经过代理服务器后再传给客户端
-
四、主要功能
-
提高访问速度
- 通常代理服务器都设置一个较大的缓冲区,当有外界的信息通过时,同时也将其保存到缓冲区中,当其他用户再访问相同的信息时,则直接由缓冲区中取出信息,传给用户,以提高访问速度
-
控制对内部资源的访问
- 如某大学 FTP(前提是该代理地址在该资源的允许访问范围之内),使用教育网内地址段免费代理服务器,就可以用于对教育网开放的各类 FTP 下载上传,以及各类资料查询共享等服务
-
过滤内容
- 例如限制对特定计算机的访问,将一种语言的数据翻译成另一种语言,或是防御代理服务器两边的攻击性访问
-
隐藏真实 IP
- 上网者也可以通过代理服务器隐藏自己的 IP,免受攻击;但是只一个代理很难保证安全,更安全的方法是利用特定的工具创建代理链
五、代理分类
-
根据协议区分
-
FTP 代理服务器
- 主要用于访问 FTP 服务器,一般有上传、下载以及缓存功能,端口一般为 21、2121等
-
HTTP 代理服务器
- 主要用于访问网页,一般有内容过滤和缓存功能,端口一般为 80、8080、3128等
-
SSL/TLS 代理
- 主要用于访问加密网站,一般有 SSL 或 TLS 加密功能(最高支持 128 位加密强度),端口一般为 443
-
Telnet代理
- 主要用于 telnet 远程控制(黑客入侵计算机时常用于隐藏身份),端口一般为 23
-
POP3/SMTP 代理
- 主要用于 POP3/SMTP 方式收发邮件,一般有缓存功能,端口一般为 110/25
-
SOCKS 代理
- 只是单纯传递数据包,不关心具体协议和用法,所以速度快很多。一般有缓存功能,端口一般为 1080
-
-
根据匿名程度区分
-
高度匿名代理
- 会将数据包原封不动的转发,在服务端看来就好像真的是一个普通客户端在访问,而记录的 IP 是代理服务器的 IP
-
普通匿名代理
- 会在数据包上做一些改动,服务端上有可能发现这是个代理服务器,也有一定几率追查到客户端的真实 IP (代理服务器通常会加入的 HTTP 头有 HTTP_VIA 和 HTTP_X_FORWARDED_FOR)
-
透明代理
- 透明代理不但改动了数据包,还会告诉服务器客户端的真实 IP,这种代理除了能用缓存技术提高浏览速度,能用内容过滤提高安全性之外,并无其他显著作用(最常见的例子是:内网中的硬件防火墙)
-
间谍代理
- 指组织或个人创建的,用于记录用户传输的数据,然后进行研究、监控等目的代理服务器
-