在日常上网和互联网架构中,代理就是网络的“中转中间人”,主要分为正向代理和反向代理两种。二者都是帮忙转发网络请求,但服务的对象、工作方式完全不同。简单来说:正向代理帮用户干活,反向代理帮服务器干活。两种代理都依托网络协议完成数据传输,是我们上网、企业项目部署最基础的网络逻辑。

一、正向代理:为用户服务的网络中转

正向代理,核心就是帮客户端(用户设备)代上网。它有一个最明显的特点:必须自己手动配置,才能生效,设备不会自动走代理通道。

举个通俗易懂的例子:把正向代理比作代购。你不方便直接买东西(访问网络资源),就找代购帮忙。你先把需求告诉代购,由代购出面帮你购买,商家只认识代购,不知道你的真实信息。

对应到网络场景:我们的手机、电脑本身无法直接实现特殊网络访问、抓包等需求,手动配置代理后,所有网络请求会先发给代理工具,再由代理工具代为访问目标网站,最后把数据带回给我们。全程目标网站只能检测到代理的地址,看不到我们设备的真实地址。

正向代理经典实操案例

生活和工作中,有两个最经典的正向代理案例,很好理解。

第一个是Charles抓包。我们想查看手机的网络请求数据,必须手动在手机上填写电脑的IP和端口,配置完成后,手机所有上网流量都会经过Charles转发,它才能拦截、查看数据。如果不配置代理,手机直接上网,Charles完全抓不到任何内容。

第二个是公司VPN。公司内网资料、办公系统是私密资源,外网无法直接访问。我们在家办公时,需要手动打开VPN软件、登录账号连接公司网络,相当于打通了一条专属通道,借助VPN这个代理,我们的外网设备就能临时接入公司内网,查看内部资料。

除此之外,游戏加速器、爬虫代理IP也都是正向代理,核心作用都是隐藏用户真实设备、突破网络访问限制。

二、反向代理:为服务器服务的流量门户

反向代理和正向代理刚好相反,它帮服务端(后端服务器)接单干活,最常用的工具就是Nginx。它最大的特点是:用户不需要做任何配置,全程无感知

同样用生活化例子解释:反向代理就像公司前台。客户(普通用户)只需要找到公司前台,不需要知道公司各个办公室、员工的具体位置。前台会根据需求,把客户的需求分发到对应的部门处理,最后统一把结果反馈给客户。

我们日常访问百度、豆包、各类网站,用到的都是反向代理。

这些公开网站的后台,并不是单台服务器,而是一整套服务器集群。Nginx作为反向代理,就是网站的“统一前台”,对外暴露统一的访问地址。我们在浏览器输入域名访问时,请求会自动先到达Nginx,再由Nginx把请求合理分发到空闲的后端服务器处理。

整个过程中,我们完全不知道后端有多少台服务器、服务器地址是什么,既保护了后台服务的安全,避免服务器直接暴露在公网,又能分担访问压力,防止网站卡顿、崩溃。同时,Nginx还能统一处理网站加密、静态资源加载等工作,是所有公开网站的必备组件。

三、正向代理与反向代理核心区别总结

通过场景对比,能清晰分清两者的核心区别。正向代理是用户主动找中介,必须手动配置才能使用,仅限配置过代理的人使用,主打私密访问、隐藏用户信息,用于抓包调试、远程访问内网等场景。反向代理是服务端主动设中介,所有用户无需任何操作,直接就能访问,主打对外开放、保护服务器,用于各类官网、线上业务系统。

最后做一个通俗总结:正向代理是替用户上网,管的是用户的出口流量,核心关键词:手动配置、私密访问;反向代理是替服务器接单,管的是服务的入口流量,核心关键词:无需配置、全网可访。两种代理各司其职,支撑着我们日常所有的网络访问和互联网项目运行。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐