proxy

发布于 2020-11-08  278 次阅读


综述

随着网络技术与计算机的普及与发展,代理服务成为网上应用较多的形式。代理服务是指内部网络对Internet发出连接请求,需要制定代理服务将原本直接传输至Web服务器的HTTP发送至代理服务器中。换句话来说,代理服务就是网络信息的中转站。代理服务器作为浏览器与Web服务器之间的另一类服务器,配备代理服务器,浏览器无需直接至Web服务器获取网页,只需向代理服务器发出所需的请求,由代理服务器传送给访问者所需的浏览器。

代理服务器(Proxy Server)的功能是代理网络用户去取得网络信息。形象地说,它是网络信息的中转站,是个人网络和Internet服务商之间的中间代理机构,负责转发合法的网络信息,对转发进行控制和登记。
代理服务器作为连接Internet与Intranet的桥梁,在实际应用中发挥着极其重要的作用,它可用于多个目的,最基本的功能是连接,此外还包括安全性、缓存、内容过滤、访问控制管理等功能。更重要的是,代理服务器是Internet链路级网关所提供的一种重要的安全功能,它的工作主要在开放系统互联(OSI)模型的对话层。

详细内容

代理服务器

简介

代理服务器是网络信息的中转站。一般情况下,使用网络浏览器直接去链接其它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)对内部网络用户进行权限和信息流量计费管理
通过代理服务器,网管员在提供Internet服务时,可以容易地对内部网络用户进行访问权限和信息流量计费的管理。网管员不但能够做到只允许被授权的局域网用户访问Internet,还能够控制这些用户在哪些时间、使用哪台计算机访问哪些类型的Internet服务。对于已经获准访问的Internet的用户,网管员还能够按照多种方式进行信息流量的计费管理,如:按照个人计费、按照部门所属计算机计费等,为网络管理带来了极大的方便。
(4)对进入内部网络的Internet信息实施监控和过滤
为了避免那些与业务无关的信息进入内部网络浪费通信资费,各个机构对允许访问的内容往往有一些相应的规定。通过代理服务器,网管员不但可以采取过滤的方法简便地控制从Internet流入内部网络的信息内容,还能对用户访问Internet的情况进行实时监控和建立监查日志存档备查。

主要分类

通过代理服务器共享上网从技术实现角度来说可以分为硬件共享上网软件共享上网两种方式,从代理服务器工作的层次的角度来说可以分为应用层代理传输层代理SOCKS代理
应用层代理工作在TCP/IP模型的应用层之上,它只能用于支持代理的应用层协议(如HTTP,FTP)。它提供的控制最多,但是不灵活,必须要有相应的协议支持。如果协议不支持代理服务器实现模型(如SMTP和POP),那就只能在应用层以下代理,也即传输层代理。最后一种代理需要改变客户端的IP栈,即SOCKS代理。它是可用的最强大、最灵活的代理标准协议。以下将从代理服务器工作的层次的分类角度上介绍几种不同层次的代理服务器。
应用层代理
这里主要介绍基于HTTP协议的代理服务器。HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。根据HTTP协议规定,当客户端使用代理模式时,发送的请求命令格式如下:methodhttp://hostname/path/⋯/fiIename。
当客户端同网络代理服务系统建立连接后,代理服务器将收到请求命令,这时代理服务器应该截取主机名部分进行域名解析,并同该主机建立连接,将去掉主机名部分的请求命令转发给它,等待它做出响应,然后将得到的响应转发给客户端,最后断开连接。
传输层代理
传输层代理直接与TCP层交互,更加灵活。要求代理服务器具有部分真正服务器的功能:监听特定TCP或UDP端口,接收客户端的请求同时向客户端发出相应的响应。
socks代理
Socks是一个客户/服务器环境的代理协议。它包括两个主要的组件,Socks服务器和Socks客户库。Socks服务器实现在应用层,Socks客户库实现在客户的应用层与传输层之间。一个代理服务器为客户机与应用服务器建立连接,代理服务器在客户与应用服务器之间中转数据,从应用服务器的角度来看,代理服务器是客户。
当客户想建立到应用服务器的连接时,先连接到代理服务器。应用服务器的地址和端口号通过代理协议被传递到代理服务器,然后,代理服务器再连接到应用服务器。一旦到应用服务器的连接被建立,代理服务器在客户与应用服务器之间中转数据。
目前,有两个版本的Socks协议,版本4和版本5。Socks版本4被简写为“Socks V4”,Socks版本5被简写为“Socks V5”。

前向代理

前向代理 一般提到的是前向代理。表面上客户端 C 可以直接访问服务器 S,但实际上 C 在访问 S 的时候经过了中间的另一个中间的服务器 M,M就是代理服务器。为什么说是前向代理?因为前向代理是面向客户端的,而不是服务器。M 接收了 C 的请求后,(有选择的)对请求进行简化或者其他处理,再向目标服务器请求数据。

那所谓的代理就是客户端与服务端的中间层,就像租房一样,想要租房的人很难直接联系到出租房屋的房东,那就有了中介(代理),租户找中介,中介找房东,中介就是代理。

那前向代理就是指,租户先找到中介,中介再去找房东。这个过程中,租户和中介是先联系好的,租户很容易找到中介,然后中介再去找房东。

反向代理

普通的Web代理服务器仅支持对内部网络的访问请求,反向代理服务与普通的代理方法并不存在明显冲突。如果一个代理服务器可以代理外部网络主机访问内部网络,这类代理服务模式称之为反向代理服务。因此,系统的防火墙中可以同时配备两种方式,反向代理用来服务外部网络访问,从而提供内部网络访问外部网络的能力。将反向代理功能与拒绝外部访问防火墙软件合理结合,从而构建一种既包含内部网络、也能向外部发布Web信息防火墙系统。反向代理功能可以提供全面的连接记录,从而提供预防、捕获信息的能力。
反向代理的工作原理是,代理服务器来接受客户端的网络访问连接请求,然后服务器将请求有策略的转发给网络中实际工作的业务服务器,并将从业务服务器处理的结果,返回给网络上发起连接请求的客户端。

反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。

反向代理是指,中介和房东是先来联系好的(在一个内网中),租户去找中介,中介把之前联系好的房子租出去,给租户的感觉就像是中介就是房东。

反向代理的软件有:ngrok
ngrok 是一个开源程序,官网服务在国外,国内访问国外速度慢.
国内有相应的ngrok服务 natapp,frp,nat123端口映射,内网通 等。
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。


朝闻道,夕死可矣