Proxy是什么？

前言今天主要简单的讲一下proxy是什么？一、Proxy是什么 Proxy指的是代理软件或代理服务器，也可以认为是一种网络访问方式。这个是百度百科的解释，我认为这个解释非常到位。在软件上来讲squid、TinyProxy、socks5、MTProto等在服务器上可搭建proxy供用户使用的代理软件；在服务器上部署刚刚提到的proxy软件提供proxy服务，将其看作整体可称之为代理服务器；用户通过proxy访问目标更像是一种不同于平常的网络访问方式。具体的访问方式可以参考如下：正向代理： 原本A访问B，B知道是A访问的，但是在中间加一个代理服务器C后，A 通过代理服务器C去访问B，则B看到的是C访问的，而非A去访问的B，这样就增加了A匿名。反向代理：A向代理服务器C发起请求，代理服务器C将请求转发给B，B将消息回复给C后，C转发给A，A看到的是C接收和响应请求，却不知道B的存在，C相对与B来说就是反向代理，B增加了匿名。在访问过程中，通过判断客户端与服务端谁具有匿名效果来判断属于正/反向代理。 Proxy作为代理软件或代理服务器，这一块能讲的东西特别多，也是今后讲述的素材。二、Proxy的特性 1.匿名性上面已经提到过可以隐匿访问过程中的源地址或者提供服务的真实地址，起到安全上网的作用，不至于一下就暴露真实地址，导致别人顺着网线来打你或者直接爆破服务器。但是这个匿名也仅仅保护合法公民，如果通过匿名性违法乱纪，也是有技术手段找到你的。 2.高可用这一项是反向代理的优点，涉及的实际应用：HAProxy、Nginx等，通过部署相关应用进行配置，负载多台服务器，将流量具体规则进行分配，达到高可用的目的。 3.缓存 Proxy可以缓存静态文件，节省访问请求或资源加载时间。正向代理：使用Squid搭建的正向代理服务，可以开启相应的资源缓存功能，会在本地缓存网站允许缓存的资源，在缓存有效期内，代理服务器直接提供给用户，不在向目标服务器请求。反向代理：可以将某些静态资源存放在反向代理本身，在访问过程中直接调用代理服务器本地资源，不用向负载的服务器进行请求，节省资源请求时间。 4.中转当A访问B时是固定的线路，A与B之间的线路存在问题时，无法正常访问。而C可以访问B，且A可以访问C，这时C部署代理应用给A提供代理服务器，A通过C成功访问Ｂ。游戏加速、github加速、科学上网都可能用到。 5.管控代理服务器能提供了中转服务，而这个服务如果是对外开放的，即所有人都能使用，向利用ACl管控但是使用者却是浮动IP，所以这时候就需要用到认证，在安全上网这一块认证相当重要，要清楚是谁使用。同时一个合格的代理服务器出了认证还有能记录访问日志，以及提供一些管控服务。认证：代理服务器提供basic、ntlm、kerberos、token等认证方式，例如squid应用提供认证basic方式。控制：作为中间人，可以对流量解密进行内容管控，以及设置一些控制能力，例如squid应用提供部分管控功能、Burp Suite代理模式中间人控制。日志：用户使用过程中记录相关日志，用于回溯访问记录，方便定位问题。（针对大量的日志，除非你需要特别关注，所以一般人不会捣腾你的访问记录）总结新人第一次写文章，可谓是绞尽脑汁呀，彷佛回答高考前的每次测试写作文，思维很发散，因此语文特别差，虽然自己有很多想法，但是什么也写不出来。Proxy这一块儿有很多想写的东西，慢慢锻炼总结功底吧，加油。