正向代理与反向代理的区别解析

EVOproxy Team
正向代理与反向代理的区别解析

尽管内容和登录过程看起来正常,但您的社交媒体账户仍然被标记。同时,您团队中的一位开发人员看到产品网站在访客到达时变得缓慢,而广告验证报告显示的结果与真实用户看到的不同。这些问题都可能涉及代理,但它们涉及的类型并不相同。

正向代理和反向代理之间的区别在于中介代表的是谁的流量。正向代理代表客户端并管理出站请求。反向代理代表服务并管理入站请求。这个区别听起来简单,但它决定了谁选择目的地,谁控制可见的网络身份,以及哪些操作指标重要。

一个有用的规则是:当您控制客户端并需要控制出站时,请使用正向代理。当您控制服务并需要控制入站时,请使用反向代理。下面的部分将该规则应用于社交媒体操作、广告验证、研究、质量保证和网络基础设施。

为什么这两种代理方向让聪明的团队感到困惑

代理方向常常被忽视,直到某些事情表现得异常。社交媒体经理可能需要几个合规的账户工作区,以便从适当的网络环境中出现。广告验证专家可能会看到来自一个地区的活动,但在另一个地区却看不到。开发人员可能会在应用程序前放置一个网关,并称其为“代理”,而没有决定该网关代表访客还是服务器。

最后一点造成了许多混淆。这两种代理类型都位于两个当事方之间,转发请求,并可能影响每一方所看到的内容。图表看起来相似,但信任边界和决策者是相反的。

从目的地决策开始

在正向代理设计中,客户端选择源服务器。您的浏览器、抓取工具、测试脚本或自动化客户端决定联系哪个网站或API,然后通过中介发送请求。在反向代理设计中,代理或服务所有者在收到公共服务请求后选择源服务器,如此正向和反向代理的架构解释所述。

这个区别直接映射到日常工作中:

  • 如果您的团队正在决定访问哪个外部网站,您是在考虑正向代理。
  • 如果您的团队正在决定哪个后端应该处理一个进入的访客,您是在考虑反向代理。

因此,出站研究客户端使用的移动代理是正向代理的用例。一个在应用服务器之间分配访客的网站网关是反向代理的用例。

实用规则:问一下代理代表谁的身份。如果它代表您的应用程序或设备,请考虑正向。如果它代表您的网站或后端服务,请考虑反向。

这篇文章是一个决策工具,而不是一个命名练习。一旦您确定需要政策控制的一方,适当的代理方向通常会变得清晰。

不使用行话定义每个代理方向

一位增长营销人员通过移动连接检查竞争对手的网站。浏览器将请求发送到正向代理,然后该代理联系所选网站。网站通常看到的是代理的地址,而不是团队的办公室连接。客户端决定目的地,而代理处理出站路线。

该模型适用于员工浏览、抓取、广告验证和位置测试。公司可以过滤目的地、执行出站访问规则、记录请求或提供共享的互联网出口。社交媒体经理或研究应用程序可以选择移动4G代理,以便外部网站接收到与运营商相关的地址。代理代表请求的浏览器、设备或应用程序。

反向代理做出相反的操作选择。访客连接到公共网站地址,反向代理决定哪个源服务器应该处理该请求。访客不会选择或看到该后端。代理代表网站及其基础设施。

这种安排使网站能够在应用服务器之间分配访客、终止TLS、缓存响应、应用身份验证或限制源的直接暴露。使用移动正向代理的广告验证者正在选择去哪里以及请求如何退出。位于经过验证的网站前面的反向代理正在接收该访问并选择服务如何响应。该区别在Mozilla的代理服务器和隧道指南中进行了总结。

一个图表,说明正向代理用于出站流量和反向代理用于入站流量之间的功能差异。

协议并不决定方向

HTTP、HTTPS和SOCKS描述的是传输方法,而不是代理的责任。HTTP CONNECT 方法可以请求正向代理为加密流量创建隧道,而不要求代理检查其中的应用数据。

浏览器设置可以区分HTTP、基于TLS的HTTPS、SOCKS5和SOCKS4,如Mozilla的代理配置参考所示。SOCKS5在更广泛的连接层上运行,可以满足需要更广泛TCP支持的应用程序。更改协议并不会改变方向。如果客户端仍然选择外部目的地,代理仍然是正向的。

正向代理和反向代理的并排比较

最可靠的比较使用五个问题:代理位于何处,流量以什么方向流动,谁配置它,它执行什么工作,正常部署的样子是什么?

正向代理位于关系的客户端一侧。客户端故意通过它路由请求,无论是通过应用设置、设备策略还是网络强制。目的地看到的是代理的明显来源,这使得出站政策、审计、过滤和出站管理成为可能。

反向代理位于服务一侧。客户端访问公共端点,代理将请求转发到一个或多个源服务器。代理可以做出路由决策、处理TLS、缓冲请求、缓存内容,并限制后端基础设施的直接暴露。

标准 正向代理 反向代理
代表 请求的客户端、用户、应用程序或设备 目标服务及其源服务器
网络位置 位于客户端和外部目的地之间 位于一个或多个源服务器前面
流量方向 来自客户端的出站流量 流向服务的入站流量
谁配置它 客户端、IT团队、应用程序所有者或网络管理员 网站、平台或基础设施所有者
主要工作 出站控制、过滤、审计、源掩蔽和出站政策 负载均衡、TLS终止、缓存、身份验证和源保护
可见身份 目的地通常看到代理而不是客户端来源 客户端将代理视为公共服务入口点
典型示例 通过移动网络访问外部网站的研究客户端 在应用服务器之间分配访客的网络网关

指标也会随着方向而变化。正向代理通过目的地访问、政策覆盖、连接可靠性、源网络质量和客户端行为进行评估。反向代理通过请求吞吐量、延迟、后端利用率、连接限制、缓存行为和故障处理进行评估。

Cloudflare的应用安全讨论 说明了为什么这两种模型不应该被视为同一产品的竞争版本。正向代理主要控制来自客户端的出站流量。反向代理控制服务的入站流量。它们解决不同的操作问题,并在不同的约束条件下进行扩展。

需要每种代理方向的真实工作流程

当你从工作而不是网络图开始时,选择代理方向会变得更容易。问问你的团队是要访问外部服务,还是为其他人发布服务。

五个出站工作流程

多账户社交媒体管理 通常需要正向代理。每个合规的账户工作区或批准的自动化客户端都会与外部平台建立出站连接。位于你自己仪表板前面的反向代理可能会改善你的内部应用,但它不会改变该仪表板的出站请求在目标平台上的表现。

广告验证 也使用正向代理。验证者需要从与测试相关的位置和网络上下文请求一个着陆页、广告结果或活动体验。目标是观察外部服务返回给客户端的内容,而不是将访客分配到你自己的服务器。

价格和SEO监控 遵循相同的模式。研究客户端向外部网站发送请求,然后记录价格、排名、摘要或可用性以进行授权监控。使用速率控制,尊重访问政策,并保持收集范围与业务问题成比例。

品牌保护 在团队检查公共列表、冒充页面或来自不同位置的区域商店时,可以涉及正向代理。代理改变了监控客户端的出站路径。它并不授予访问受限材料或绕过网站规则的权限。

地理依赖的QA测试 是另一个正向代理工作流程。测试者可以从适当的测试环境验证区域重定向、本地化内容、货币展示或位置敏感的结账流程。反向代理将帮助应用所有者路由入站测试者,但它不会使测试者的请求源自所需的外部网络上下文。

正向代理与反向代理网络工作流程的关键用例比较图表。

五个入站基础设施工作流程

反向代理服务于这些工作的相反侧:

  • 负载均衡 将访客发送到合适的应用服务器。
  • TLS终止 在公共边缘集中处理加密连接。
  • 缓存 提供可重用的内容,而无需在每个请求中涉及源。
  • 流量缓冲 有助于保护后端免受不均匀客户端速度和突发需求的影响。
  • 应用前置 暴露一个公共域,同时将请求路由到多个内部服务。

如果你的团队正在构建出站工作流程,API代理服务 应该在正向代理讨论中。如果你的团队拥有目标应用,反向代理架构就是相关模型。

移动住宅和数据中心代理作为正向代理的变种

正向代理是一种方向,而不是产品类别。一旦你决定客户端需要受控的出站流量,你仍然需要选择退出地址背后的网络。移动4G/5G、住宅和数据中心代理都是正向代理的变种,当客户端使用它们访问外部目的地时。

目标可以推断的内容

数据中心代理通常属于托管或云服务提供商的ASN。ASN,或自治系统编号,标识在共同路由策略下运行的网络。该网络所有权信号可以影响欺诈评分、速率控制、广告验证结果和地理依赖的QA。RIPE NCC的数据库文档 解释了IP和ASN信息可以支持IP地理定位,尽管ASN并不是用户物理位置的精确声明。

住宅代理与家庭互联网服务网络的关联更为紧密。移动代理与电信网络和运营商基础设施相关联。这种差异很重要,因为移动地址可以类似于普通订阅者流量,而不是云托管服务器连接,这可能使移动4G IP更难被目标识别和阻止。“更难”并不等同于不可见,网络质量、行为、身份验证和合规性仍然很重要。

运营商级NAT,或CGN,增加了另一个重要细节。IETF对提供商NAT和地址共享的讨论解释了提供商可以在多个订阅者之间共享较小的公共IPv4地址池,同时分配私有订阅者地址。因此,移动网络的公共IP可能代表许多不相关的设备。单靠IP并不是完整的身份信号,归属可能比云托管的数据中心地址更困难。

轮换与连续性

IP轮换 根据计划或按需触发更改退出地址。它可以帮助合法的研究或QA工作流程测试多个网络上下文,但轮换应与应用和网站的访问规则相匹配。在一个经过身份验证的工作流程中不断更改身份可能会产生比解决更多异常。

粘性会话 在定义的会话或任务中保持相同的退出路径。当登录、购物车、浏览器状态或多步骤测试必须保持一致时,这一点很重要。选择轮换用于单独观察,选择粘性会话用于连续性。

对于区域研究,验证明显的地理位置和ASN。相同运营商ASN内的变化地址可能会轮换IP,而不改变可见的网络类别。切换到云ASN会改变更明显的分类信号。Evoproxy在其移动代理指南中描述了移动代理的使用和基于运营商的连接,但任何提供商都应根据你的特定工作流程、授权和日志要求进行评估。

一个图示,说明三种类型的正向代理:移动4G/5G、住宅和数据中心代理网络。

为什么反向代理并不自动安全

将反向代理称为“安全”,将正向代理称为“隐私”过于宽泛,无法指导生产决策。反向代理可以隐藏后端拓扑、终止TLS、应用身份验证、缓存内容和过滤请求。当它重写头部、将身份信息传递给源或将身份验证结果交给后端服务时,它也成为应用的信任边界的一部分。

这创造了责任,而不是自动保护。服务所有者必须验证代理到源的连接,验证转发的头部,限制直接源访问受信任的代理网络,并监控代理和后端的行为。反向代理不应被视为完整的防火墙,这一点通过关于两种方向限制的代理安全指导得到了强调。

正向代理侧也有缺口

正向代理仅管理使用它的客户端。一个未管理的设备可以直接连接。一个应用可以忽略系统代理设置。其他渠道可以绕过预期的路线。代理也不会自动保护客户端免受恶意软件、数据泄露或被破坏的中介的影响。

将代理视为更广泛控制系统中的一层:

  • 验证代理到源的流量,以便后端可以区分受信任的网关请求。
  • 验证转发的身份头,而不是盲目接受客户端提供的值。
  • 限制源暴露,以便公共互联网无法绕过反向代理。
  • 仔细记录两个身份,包括原始客户端上下文和代理生成的连接上下文。
  • 监控延迟和故障,在代理和源处,而不是假设成功的连接意味着健康的服务。

正向代理也需要信任。它可以根据其配置和处理的协议查看或影响流量,因此凭据、敏感数据和访问权限需要适当的保护。对于实施加密转发的团队,带有SSL的代理服务器可以是设计的一部分,但并不能消除对端点安全或授权控制的需求。

一个现代安全玻璃门障碍,矗立在一个开放的极简艺术画廊大厅中。

安全原则:根据需要政策控制的一方选择代理方向。使用正向代理进行出口治理,使用反向代理进行入口管理和源保护。

两种方向的最小配置示例

配置应使方向可见。正向客户端向中介发送出站请求。反向网关接收公共请求,然后将其路由到内部应用程序。

对于使用移动4G端点的社交媒体经理或广告验证者,客户端选择目标并提供代理设置:

import requests

proxies = {
    "http": "http://USER:PASSWORD@MOBILE_PROXY_ENDPOINT:PORT",
    "https": "http://USER:PASSWORD@MOBILE_PROXY_ENDPOINT:PORT",
}

response = requests.get(
    "https://example.test/region-check",
    proxies=proxies,
    timeout=30,
)

proxies对象将中介应用于出站HTTP和HTTPS请求。客户端仍然选择目标。将凭据和端点存储在安全的配置中,而不是源控制中,并仅测试授权的目标。

网站运营商在网关处配置反向方向:

upstream application_pool {
    server app_a;
    server app_b;
}

server {
    listen 443 ssl;
    server_name example.test;

    location / {
        proxy_pass http://application_pool;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

在这里,upstream列出了后端选择。proxy_pass路由传入请求,而proxy_set_header Host保留请求的主机以进行应用程序路由。转发的for头携带客户端上下文,因此应用程序应仅通过批准的代理路径信任它。

协议和方向是独立的决策。浏览器或请求库可以使用HTTP、通过TLS的HTTPS、SOCKS5或SOCKS4。没有任何块中的名称指定协议方向。位置决定方向,因此相同的请求库或nginx二进制文件可以服务于任一侧。

为您的工作选择正确的代理方向

在选择产品、协议或IP池之前,使用一个问题:

我控制发出请求的客户端,还是控制接收请求的服务?

如果您控制客户端,当您需要管理出站连接时,请选择正向代理。这涵盖了协调批准的账户工作区的社交媒体经理、检查区域交付的广告验证专家、观察本地化价格的研究团队以及测试地理依赖行为的QA工程师。

如果您控制服务,当您需要管理入站连接时,请选择反向代理。这涵盖了在应用程序服务器之间路由访问者、集中TLS处理、缓存可重复的响应、在应用程序之前应用身份验证以及将源基础设施保留在公共网关后面。

将网络与工作流程匹配

对于出站工作,网络类型会影响可以推断的目标:

  • 移动4G/5G适合需要运营商网络上下文的测试和研究。
  • 住宅适合需要家庭网络分类和广泛区域覆盖的工作流程。
  • 数据中心适合控制环境,其中速度和可预测的基础设施比类似订阅者的网络信号更重要。

然后决定任务是否需要轮换或连续性。对于跨网络上下文的单独观察使用轮换。当浏览器、登录、购物车或多步骤QA流程必须保持一致路径时,使用粘性会话。检查明显的位置和ASN,而不是仅仅信任国家标签。

反向代理不会使访问网站的访客匿名。它代表网站向访客展示,并隐藏网站的源基础设施,而不是隐藏访客在该网站上的身份。同样,移动正向代理并不能替代授权、速率控制、端点安全或合法使用保护。

对于社交媒体管理、市场研究、广告验证和地理敏感的QA,当客户端需要与运营商相关的出站路径时,移动4G正向代理是相关的方向。保持工作流程合规,记录每个网络上下文的必要原因,并测量成功完成任务,而不是追求抽象的匿名标签。

Evoproxy提供移动4G连接,具有个人和共享端口、可配置的轮换以及用于出站工作流程的移动IP地址。如果您的团队需要测试社交、研究、广告或QA工作的运营商网络路径,请访问Evoproxy,并选择与您的用例的会话和合规要求相匹配的设置。