关于代理服务器的原理及用法

℡╲_俬逩灬. 提交于 2020-04-14 15:32:19

【推荐阅读】微服务还能火多久?>>>

一,什么是代理服务器(Proxy)?  

  答:以类似代理人的身份去取的用户需要的数据。由于它的【代理】能力,使得我们可以透过代理服务器来达成防火墙与用户数据的分析。除此之外我们还可以借助代理服务器来达成节省带宽的目的,以及加快内部网络对因特网的万维网的访问速度。 当客户端有因特网的数据要求时,Proxy会帮用户去向目的地取得用户所需要的数据。所以当客户端指定www的代理服务器之后,用户的所有www相关要求就会通过代理服务器去捉取。代理服务器会架设在整个区网的单点对外防火墙上头,而在区网内部的计算机都是通过Proxy来向英特网要求数据的,这就是所谓的【代理服务器】
     关于代理服务器,客户端与因特网的相关性示意图如下:
      


上面的架构仅仅是其中一个案例,架构的采用率比较高,因为这样的Proxy server不仅可以充当代理服务器的角色,还可以当做高阶防火墙。
客户端向外部要求的数据事实上都是Proxy帮用户取得的,因此因特网上面看到要求数据者,将会是Proxy服务器的IP而不是客户端的IP。Proxy Server因为直接对外网,相当于当了个炮灰,外网只能找到这个代理服务器,隐藏内网的机器,从而起到防火墙的作用。

二,代理服务器原理【Proxy Serve】:
  代理服务器就类似代理商,如图,假设你的机器为A机,你想获得的数据由B机提供,代理服务器为C机,那么具体的连接过程是这样的:


      首先,A机需要B机的数据,它与C机建立连接,C机接收到A机的数据请求后,与B机建立连接,下载A机所请求的B机上的数据到本地,再将此数据发送至A机,完成代理访问服务。

       相比着上图的运行流程,代理服务器本身还具备缓存的能力,能够存储从internet网上取回的数据,方便用户再次请求时,能从代理服务器缓存中快速取出返回。代理服务器的运作流程如下:
                                                               

cache的存在,可以做假象的web加速;

当Proxy的快取拥有用户所想要的数据时:

a. Client端向Server端发送一个数据需求封包

b. Server端接收之后,先比对这个封包的【来源】与预计要前往的【目标】网站是否为可接受?如果来源和目标都是合法的,或者说,来源与目标网站我们的Proxy都能帮忙取得资料时,那么      Server端会开始替Client取得资料。取得资料中比较重要的政策就是【比对政策】,有点像认证的感觉。 

c. 对比政策,Server对先检查自己的快取(新的数据可能在内存中,比较旧的数据放在硬盘中)数据,如果有Client所需要的数据,那么将数据准备取出,而不经过向Internet要求数据的程序。

d. 最后当然就是将数据回传给Client
Proxy对于cache的速度是很有要求的,而这个cache就是硬盘了。硬盘的容量必须足够大,而且还要【足够快】才行!cache是一直被重复存取的地方。所以硬盘的好坏就差别大了。

三、代理服务器的优点:

 * 突破自身IP访问限制:访问国外站点或者其他之前不能访问的站点。
 * 提高访问速度:通常代理服务器都设置了一个较大的硬盘缓冲区,当有外界的信息通过的时候,同时也将其保存在缓冲区中,当其他用户在访问相同的信息时,则直接有缓冲区取出信息,传给用户,以提高访问速度
 * 链接内网与Internet,充当防火墙:因为所有的内部网用户通过代理服务器访问外界时,只映射一个IP地址,所以外界不能直接访问到内部网;同时可以设置IP地址过滤,限制内部网对外部的访问权限
 * 隐藏真实IP:上网者可以通过这种方式隐藏自己的IP,以免受到攻击;
 * 设置用户验证和记账功能,没有登记的用户无权通过代理服务器访问Internet网。并对用户的访问时间、访问地点、信息流量进行统计。



四,代理服务器的分类:

1、HTTP 代理按匿名功能分类(是否具有隐藏 IP 的功能)。
    非匿名代理:不具有匿名功能。
    匿名代理。使用此种代理时,虽然被访问的网站不能知道你的 IP 地址,但仍然可 以知道你在使用代理,有些侦测 IP 的网页也仍然可以查到你的 IP。
    高度匿名代理:使用此种代理时,被访问的网站不知道你的 IP 地址,也不知道你在使用代理进行访问。此种代理的隐藏 IP 地址的功能最强。


2、按请求信息的安全性分类
     全匿名代理:不改变你的 request fields(报文),使服务器端看来就像有个真正的客户浏览器在访问它。当然,你的真实 IP 是隐藏起来的。服务器的网管不会认为
你使用了代理。
     普通匿名代理:能隐藏你的真实 IP,但会更改你的 request fields,有可能会被认为使用了代理,但仅仅是可能,一般说来是没问题的。不过不要受它的名字的误导,
其安全性可能比全匿名代理更高,有的代理会剥离你的部分信息(就好比防火墙的
stealth mode),使服务器端探测不到你的操作系统版本和浏览器版本。
   elite 代理:匿名隐藏性更高,可隐藏系统及浏览器资料信息等。此种代理安全性特强。
   透明代理(简单代理):透明代理的意思是客户端根本不需要知道有代理服务器的存在,它改编你的 request fields(报文),并会传送真实 IP。注意,加密的透明代理则是属于匿名代理,意思是不用设置使用代理了,例如 Garden 2 程序。






3、按代理服务器的用途分类
    1)Http 代理:代理客户机的 http 访问,主要代理浏览器访问网页,它的端口一般为 80、8080、3128 等。
    2)SSL 代理:支持最高 128 位加密强度的 http 代理,可以作为访问加密网站的代理。加密网站是指以 https://开始的网站。ssl 的标准端口为 443。
    3)HTTP CONNECT 代理:允许用户建立 TCP 连接到任何端口的代理服务器,这种代理不仅可用于 HTTP,还包括 FTP、IRC、RM 流服务等。
    4)FTP 代理:代理客户机上的 ftp 软件访问 ftp 服务器,其端口一般为 21、2121。
    5)POP3 代理:代理客户机上的邮件软件用 pop3 方式收邮件,其端口一般为 110。
    6)Telnet 代理:能够代理通信机的 telnet,用于远程控制,入侵时经常使用。其端口一般为 23。
    7)Socks 代理:是全能代理,就像有很多跳线的转接板,它只是简单地将一端的系统连接到另外一端。支持多种协议,包括 http、ftp 请求及其它类型的请求。它分socks 4 和 socks 5 两种类型,socks 4 只支持 TCP 协议而 socks 5 支持 TCP/UDP 协议,还支持各种身份验证机制等协议。其标准端口为 1080。






     socks 代理相应的采用 socks 协议的代理服务器就是 SOCKS 服务器,是一种通用的代理服务器。Socks 是个电路级的底层网关,是 DavidKoblas 在 1990 年开发的,此后就一直作为 Internet RFC 标准的开放标准。Socks 不要求应用程序遵循特定的操作系统平台,Socks 代理与应用层代理、 HTTP 层代理不同,Socks 代理只是简单地传递数据包,而不必关心是何种应用协议(比如 FTP、HTTP 和 NNTP 请求)。所以,Socks 代理比其他应用层代理要快得多。它通常绑定在代理服务器的 1080 端口上。如果您在企业网或校园网上,需要透过防火墙或通过代理服务器访问 Internet 就可能需要使用SOCKS。一般情况下,对于拨号上网用户都不需要使用它。注意,浏览网页时常用的代理服务器通常是专门的 http 代理,它和 SOCKS 是不同的。因此,您能浏览网页不等于您一定可以通过 SOCKS 访问 Internet。 常用的防火墙,或代理软件都支持 SOCKS,但需要其管理员打开这一功能。如果您不确信您是否需要 SOCKS 或是否有 SOCKS 可用,请与您的网络管理员联系。为了使用 socks,您需要了解一下内容:
  ① SOCKS 服务器的 IP 地址
  ② SOCKS 服务所在的端口
  ③ 这个 SOCKS 服务是否需要用户认证?如果需要,您要向您的网络管理员申请一个用户和口令知道了上述信息,您就可以把这些信息填入“网络配置”中,或者在第一次登记时填入,您就可以使用 socks 代理了。
    在实际应用中 SOCKS 代理可以用作为:电子邮件、新闻组软件、网络传呼 ICQ、网络聊天 MIRC 和使用代理服务器上联众打游戏等等各种游戏应用软件当中。

 8)TUNNEL 代理:经 HTTPTunnet 程序转换的数据包封装成 http 请求(Request)来穿透防火墙,允许利用 HTTP 服务器做任何 TCP 可以做的事情,功能相当于 Socks5。
 9)文献代理:可以用来查询数据库的代理,通过这些代理,可以获得互联网的相关科研学术的数据库资源,例如查询 Sciencedirect 网站(简称 SD)、Academic Press、IEEE,SPRINGER 等数据库。
   10)教育网代理:指学术教育机构局域网通过特定的代理服务器可使无出国权限或无访问某 IP 段权限的计算机访问相关资源。
   11)跳板代理:应用于跳板程序,可以看作一种具有动态加密的特殊 socks5 代理,也可直接用于 PSD 软件。其端口一般为 1813。
   12)Ssso 代理:代理客户机上的 ssso 程序访问远程网站,具有 SSL 加密强度的超级代理,支持 socks。
   13)Flat 代理:代理客户机上的 flatsurfer 程序访问远程网站,具有高强度加密数据流的特殊代理,支持 socks,最大可设置三次级联,可以设置穿越代理。其端口一般为 6700。
   14)SoftE 代理:代理客户机上的 SoftEther 程序访问远程网站,应用虚拟集线器HUB 和虚拟网卡技术,具备 VPN 功能及多种认证方式的代理,符合 https 协议。











五、如何设置代理服务器?

  那么究竟怎样才可以用这些 Proxy 呢?其实很简单, 大部分软件都有一些软件属性的选项,比如“Setting”和“Preferences”等等。而在这些选项里面通常会有“Proxy”这个选项,你只需要在“Proxy”选项里面填上你搜索出来的 Proxy 的 IP 的端口, 那么就可以使用这个 Proxy 了。 如果软件是中文的话那么就更加简单, 只要在“设置代理服务器”里面填上就 ok 了。

浏览器以 IE6 为例:
1、 打开“工具”里面的“Internet 选项”。
2、 点选“连接”框。
3、 如果你使用拨号上网的话,那么选择“设置”。如果你是使用局域网的话,那么选择“局域网设置”。
   在里面就有“代理服务器”这个设置。先点击“使用代理服务器”,然后在“地址”上填上 Proxy 的 IP,在“端口”填上端口,好了!大功告成!

 Mac电脑以设置HTTP代理为例:







  1、在桌面底部打开系统偏好设置

 

  2. 如果桌面底部没有该按钮,可以在Launchpad中找到他

        

  3. 打开后的界面如下

 

  4. 此时我们点击上图中红框部分,打开网络设置功能

 

  5. 点击右下角的高级,进入高级设置

  并点击代理 ---- 自动发现代理配置,最后将 代理地址填入箭头所指位置,点击好----应用即可

 macOS 终端设置http和https代理:

  1、运行命令 vim ~/.bashrc , 写入如下内容

export http_proxy="http://localhost:1087" 
export https_proxy="http://localhost:1087"
export all_proxy="http:127.0.0.1:1087" #not used now,set proxy of all protocols

       1087为本地http代理端口,可能会有所偏差,需要查询代理配置
  2、运行命令 vim ~/.bash_profile,写入如下内容

source ~/.bashrc

  3、重启终端,运行命令curl ip.gs显示当前ip和所属地区查看是否代理成功




六,关于二级级联
 

  对于在教育网和科技网内的朋友,直接从国外下载需要支付高额流量费,或机器不能直接连出国,所以要使用国外的代理,还得先学会用二级代理。有一点需要注意的是:并不是所有的代理都能用作一级代理,只有支持 SSL 的 HTTP 代理才行。
  二次代理就是两个代理的级联,有很多 Proxy Server 本来就支持级联,如Winproxy、 Wingate, 这里只讨论如何使用代理。 要用到的一些软件: Sockscap、 Httport、MProxy,这几个软件在网上都能很方便的找到。代理级联一般有 http 代理和 socks 代理为基础来进行,常用代理级联大概有以下

几种方式:
(一)、http 代理之间的级联
  http 代理级联可以有多种方式来实现,我说说简单的两种吧。最简单的方法就是使用 Mproxy,它支持三级 http 代理级联,支持输入前两级代理的地址和端口即可,然后就可以使用本地 127.0.0.1:888 作为代理来访问,不过这个方法的缺陷就是不支持http 代理的认证,不能使用需要认证 http 代理。

 

  另外一种方法使用 Httport,其实这个代理功能很强大,现在只是用来 http 代理间的级联,打开 Httport,在 proxy 页输入第一级 http 代理的地址和端口,如果需要认证就选择上认证,输入用户名和密码,然后到 port mapping 页,点击 Add 按钮,在列表中出现 New mapping,然后在 RemoteHost 里输入第二级 http 代理的地址,Remoteport 里输入第二级 http 代理的端口,local port 里输入本地监听的端口,如 3128、8080 等端口,在 Proxy 页点 start 按钮后就可以使用本地 127.0.0.1:3128 作为代理来访问了,需要注意的是第一级 http 代理必须支持 ssl 连接,否则不能级联第二级 http
代理。
  所谓 SSL,是指 Secure Sockets Layer,是由 Netscape 公司开发的一套 Internet数据安全协议,当前版本为 3.0。它已被广泛地用于 Web 浏览器与服务器之间的身份认证和加密数据传输。需要说明的是,虽然你浏览的内容是加密的,不过连接站点在代理服务器上边的是可见的。另外,站点的 URL 和 IP 在代理服务器上仍然是可见的。找 SSL的代理很简单,可以使用 AATools 之类的软件,也可以直接用 FLASHGAT 来验证。需要补充一点的就是,上面的二次代理可以供别人使用,因为是在本地所有 ip 上进行监听的,如在你的机器 ip 是 10.9.1.11,本地端口是 888,别人能访问10.9.0.11:888 作为二次代理使用,这样你就可以与别人共享你的二次代理了,这里介绍的 Mproxy 不是 Multiproxy,Multiproxy 是做代理验证和调度用的。

 

(二)、socks 代理之间的级联
  socks 代理级联也有几种方式,常用的方法是使用 sockscap 来实现,在 sockscap的 Setting 对话框中输入 socks 代理地址、端口,如是 socks5 还有用户和密码,然后加入可使用 socks 代理的软件(FREE 的 SOCKS 更好了!!),如 IE,在 Internet 选项里 socks 里设置二级 socks 代理的地址和端口,在 sockscap 里运行 IE 就可以使用上二次 socks 代理了,像其他的 Flashfxp、Sterm 和 Leapftp 里也一样,在这些软件上设置二级 socks 代理,然后在 sockscap 里运行就可以使用二次 socks 代理了;另外也可以使用 SkSockServer 来实现,这个软件支持 256 级 socks 代理的级联,本身也可以作为socks proxy server 来使用,跟 mproxy 差不多,只要加入各级 socks 代理地址和端口即可,另外 sockschain 也是做 socks 级联的工具。

 

(三)、http 代理和其他代理的级联
  http 代理跟别的代理级联,这里用的是上面提到的 httport,注意第一级 http 代理一定要求 ssl 连接(一定是 SSL 的代理呀,否则不行的!!),在 proxy 页输入 http代理的地址和端口,然后在 port mapping 页加入其他要级联的代理,如 telnet 代理,在 remote host 和 remoteport 里输入分别 telnet 代理的地址和端口,在 local port输入本地监听端口,如 23,在 proxy 页点击 start,这样 telnet 127.0.0.1 23 就是连接到二次代理上,接着输入要远程登录地址和端口即可,级联 socks 代理也一样,在port mapping 页输入二次代理的地址、端口和本地监听端口(如 1080),这样你就可以在其他软件上使用 127.0.0.1:1080 作为二次代理使用了,其他的如 ftp、pop3 代理也一样这样作为二级代理与 http 代理级联。

 

(四)、socks 代理和其他代理的级联
  socks 代理与其他代理级联,这里介绍的是 sockscap,跟上面介绍的一样,在setting 对话框里输入 socks 代理的地址和端口, 然后 add 其他需要用二次代理的软件,如 IE,OE 和 flashfxp 等软件,只要在 internet 选项里输入第二级 http 和 ftp 代理的地址和端口,在 sockscap 里运行 IE 就能使用二级的 http 和 ftp 代理,其他的软件也一样,设置上二级代理在 sockscap 里运行即可使用二级代理。

 

(五)、tlenet 代理之间的级联
  其实 telnet 代理之间的级联很简单,以常用的 wingate 代理为例,当我们 telnet到代理时出现 Wingate> 的提示,直接输入另外一个 telnet 代理的地址和端口即可,一般是"ip port",有些代理是"ip:port"(如 CSM Proxy Server),输入即可连到二次代理上,在二次代理输入要 telnet 登录的地址就可以了。上面介绍了几种常用代理的级联方法,其实就是灵活使用上面的 httport、sockscap 等几个软件,只要熟练掌握软件的使用,能够玩出很多的花样来,比如跟其它的软件配合使用, 至于国外的二次代理, http 代理可以到 multiproxy 的主页上去找,他代理可以在 google 上输入 free proxy http socks 来搜索,最新软件可以到软件的主页获得,最后说一句,学好 httport 软件的使用大有前途, 对那些只开了 http代理,其他端口被封的人大有用处。
注:sockscap 的主页 http://www.socks.nec.com/
  httport 的主页 http://www.htthost.com/
  multiproxy 的主页 http://www.multiproxy.org/



 

1、先找一个国内的 SOCKS4 或者 SOCKS5 代理,之所以是国内的,主要是避免国际流量。同时,教育网内的用户还要注意的,不同学校定义的免费流量 IP 段是不同的,为了保护你免遭巨额流量费,一定要确认该 FREE 的 SOCKS 代理是免费的!!!
2、运行 SOCKSCAP——文件——设置——填入代理(区分 SOCKS4 和 SOCKS5)
3、添加:新建——浏览——你要运行的软件(如 IE)——确定。
  记住,每次要运行软件,只有从 SCOKSCAP 里面运行才生效!


 
七、代理服务器具体日常应用
 

(一)、怎样使用代理访问被屏蔽掉的网站
  由于某些原因,中国电信把一些国外网站屏蔽掉了,所有国内用户不能访问,还有一些国外的网站禁止中国的 IP 访问,解决方法就是使用国外的代理服务器。但是教育网用户不能访问国外网站,所有国外的代理也不能为之使用,是否我们便无能为力了
呢?不,我们可以参照下面二次代理的使用方法解决。

 

1.去 Download 一个 Sockscap32,在设置中填好 Socks 代理服务器地址。

 

2.将浏览器的快捷方式拖到 SocksCap32 的空白框中。联网后,先启动 Sockscap32。再在浏览器中填上国外代理服务器的地址,在SocksCap32 中运行浏览器即可。

 

(二)、如何通过代理使用 FoxMail 收信
  可以使用 sockscap32 解决。前提:有一个好用的 Socks 代理,通过一个可以访问的 Socks 代理(Socks5 或者 Sock4 代理),将 FoxMail 的快捷方式拖到 SocksCap32 的空白框中, 你的 Foxmail 即可以畅通无阻了。 同样的 方法也适用于 Cterm、 Sterm 等 Telnet
软件访问教育网内的各大 BBS 站点,加快速度,而又能隐藏真实 IP 地址等等。有时会出现不能解析服务器地址的现象,可以先使用 ping pop.mail.yahoo.com 命令,然后把解析到的 IP 地址填入 Foxmal 的 POP3 服务器选项。
      另一法:假设你有 POP3 代理服务器,例如:203.95.7.196,你的账号为Algam@21cn.com;则在 OutlookExpress 或 FOXMAIL30 中应按如下设置:POP3 服务器地址中填写:代理服务器地址,203.95.7.19 6(端口无须设定);SMTP 服务器地址为:原来的 SMTP 服务器地址,smtp.21cn.com(实际上因为不需要用他发信,所以 SMTP 服务器地址可以随便填写);帐号为:原来账号 Algam#21cn.com(既用'#'取代原来的'@'符号); 口令为:原来的账号口令。


 

(三)、QQ 中使用代理
  QQ 使用代理可以隐藏真实 IP,这样可以避免一些不必要的骚扰。QQ 的会员可以能够使用 HTTP 代理的功能,而非会员就只能使用 Socks 代理了。有些公司网络只能上网浏览不能使用 QQ,主要是封了 Socks 端口,避免员工上班的时候用 QQ 聊天。其实这种情况也有办法解决。首先下载一个 SocksOnline 软件,是将普通 HTTP 代理转换为“万能”的 Socks5 代理的工具,SocksOnline 代理是利用了 CommOnline 的在线通讯能力,进行 Socks 代理转接。SocksOnline 代理使用非常简单,只要将客户端应用的 Socks5代理设置到 SocksOnlin e 的地址,客户端即能正常使用。

八、谁在架设代理服务器?

  架设代理服务器的主要是 ISP 和一些有内部网的公司、企业和单位。ISP 架设代理服务器一般是为了减小数据流量、提高用户的浏览速度,它让其用户都通过代理服务器
来访问 WWW 网,这样,对于相当一部分经常性重复访问的数据,代理服务器就可以直接传送给用户而不用重复下载;有内部网的单位,它们可能租用了一条专线或拨号上网,
但却只有这一台机器可以上网,那么就在它上面安装一个代理服务器软件吧,于是内部网的其它机器也就可以通过这个代理服务器上网了。

 
九、哪些人在使用代理服务器?

  最直接的用户当然是教育网和科技网内的 IP 受限制而不能访问国外资源的贫苦大众,他们可以通过可以搜索到 ChinaNet 上那些没有设置权限限制的代理服务器,从而
能够通过代理服务器访问国外资源。代理服务器的第二大用户群则是 169 用户,他们一般只能在 169 网内部转悠,必须通过那些横跨 169 网和 ChinaNet 的代理服务器才能访问 Internet 网。
另外,有些 163 用户或教育科技网中可以直接访问国外的用户出于某种需要(如隐藏身份)也搜索和使用代理服务器。

十、http,socks4,socks5代理的区别

* HTTP代理

  能够代理客户机的HTTP访问,主要是代理浏览器访问网页,它的端口一般为80、8080、3128等;

* SOCKS代理

   SOCKS代理与其他类型的代理不同,它只是简单地传递数据包,而并不关心是何种应用协议,既可以是HTTP请求,所以SOCKS代理服务器比其他类型的代理服务器速度要快得多。

   SOCKS代理又分为SOCKS4和SOCKS5 二者不同的是SOCKS4代理只支持TCP协议(即传输控制协议),而SOCKS5代理则既支持TCP协议又支持UDP协议(即用户数据包协议),还支持各种身份验证机制、服务器端域名解析等。

   SOCK4能做到的SOCKS5都可得到,但SOCKS5能够做到的SOCK4则不一定能做到,比如我们常用的聊天工具QQ在使用代理时就要求用SOCKS5代理,因为它需要使用UDP协议来传输数据

参考文章:https://blog.csdn.net/Yoshinomm/article/details/79046385
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!