代理服务器是如何工作的?
无抓取代理提供经过身份验证的网关连接,用于通过管理代理出口路由应用程序流量。
代理服务器通过接受客户端的流量并代表客户端与另一个服务器进行通信来工作。对于正向代理,客户端选择目标并通过代理发送请求。目标的响应然后通过代理返回给客户端。
细节取决于协议。HTTP代理可以转发可读的HTTP消息,为HTTPS目标创建一个隧道,或对流量应用支持的策略。SOCKS代理在不同的层次上协商连接。遵循连接生命周期以理解每个跳点可以看到什么,以及哪些设置控制它。
TL;DR
- 客户端必须选择代理路线。 配置的代理不会自动覆盖每个应用程序或请求。
- HTTPS 通常通过一个 CONNECT 隧道传输。 目的地加密和网关传输是两个独立的问题。
- DNS 解析依赖于客户端和协议。 某些路由在本地解析目的地,而其他路由在代理处解析。
- 代理响应和源响应需要单独诊断。 在网关处的认证失败与源访问决策不同。
步骤 1:客户端选择路线
客户决定请求是直接发往目的地还是通过代理。这个决定可能来源于应用选项、环境设置、操作系统配置或浏览器配置的路由规则。
代理设置通常识别协议、网关主机、端口和任何凭证。目标 URL 保持您想要请求的资源。用代理主机替换目标主机会使路由与资源身份混淆。
排除设置可以直接将某些目的地发送。一项内部服务可能故意避免外部代理,而允许的区域测试必须使用它。当一个请求显示预期的退出而另一个不显示时,请检查这些排除项。
一个应用程序中的代理设置不应被假定为控制整个设备。浏览器、HTTP 客户端和系统更新程序可以各自具有不同的路由行为。请确认将在执行任务的实际程序中的范围。
步骤2:网关接受连接
网关接受客户端连接,并在转发流量之前应用其访问策略。 无刮擦网关身份验证 确定主机和端口与通道凭据及支持的路由选项分开。
客户端必须通过预期的协议和端口访问网关。TCP 连接确认可达性,但网关仍然可以拒绝凭据或不允许目的地。保持可达性和授权作为单独的检查。
HTTP代理认证可以产生特定于代理的挑战。 HTTP 代理认证语义 区分代理身份验证要求与源服务器的身份验证要求。代理的凭据应保持在该边界的代理端。
如果频道有流量允许或余额要求,账户资源也可能影响访问。正确的密码并不能证明每个频道约束都得到了满足。检查频道的状态,而无需在日志或票据中暴露密码。
步骤 3:普通 HTTP 被转发
对于一个普通的HTTP目标,HTTP代理可以将请求作为HTTP消息接收并转发到源服务器。由于该流量不受目标HTTPS的保护,代理可以检查支持的头部和内容。
请求告诉代理需要哪个源资源。代理建立或重用上游连接并将合适的请求发出。响应通过相同的逻辑链返回,尽管入站和出站连接是不同的。
转发代理可以在其配置和HTTP规则允许这些功能的地方实现过滤、日志记录或缓存。这些是特定部署的功能,而不是每个代理服务的自动属性。
翻 转发代理和隧道模型 还区分了代理客户端的正向代理与代表源服务的反向代理。单凭流量方向是不够的;关键在于中介代表的是哪一方。
步骤4:HTTPS建立隧道
对于通过 HTTP 代理访问的 HTTPS 目标,客户端通常请求代理创建一个连接隧道到目标主机和端口。在成功建立隧道后,客户端通过该隧道执行目标的 TLS 交换。
代理方案描述了客户端到代理的传输。目标方案描述了目标应用程序连接。HTTP 代理可以携带 HTTPS 目标,而支持 TLS 的代理也可以保护其自己的入口跳点。这些是不同的安全边界。
在没有拦截的正常隧道中,代理转发加密的目标流量,而不是读取解密的页面。它仍然知道连接元数据,包括请求的隧道目的地和时机。加密并不会使代理运营者无法意识到连接的存在。
抱歉,我需要更多的文本才能进行翻译。请提供要翻译的句子或段落。 TLS协议和认证模型 当证书验证和端点的信任配置正确时,它保护TLS连接。托管检查代理使用不同的信任安排,并且可以终止TLS。在声称代理可以看到的内容之前,请确认已部署的模型。
第5步:目标名称已解析
目标DNS解析可以在客户端或代理处进行,具体取决于协议和客户端配置。网关主机名本身也必须被解析,以便客户端可以到达代理。
对于SOCKS5,请求可以带有域名或IP地址。如果客户端首先解析目标并发送其IP,则本地DNS已参与。如果客户端发送目标主机名以进行代理侧解析,则路径将委托该查找。
这 cURL代理配置 区分 socks5:// 从 socks5h:// 用于目标名称解析。那些方案标签表达客户端行为;在未检查其实现的情况下,不应将其概括为每个程序。
DNS位置可以影响区域结果或仅在代理网络中可用的主机名访问。将名称查找与退出选择分开诊断。目标DNS失败并不表明代理凭证错误。
第6步:响应返回给客户端
客户端收到来自目标的响应或由中介生成的响应。工作流程必须确定哪个阶段产生了结果,然后才决定其含义。
网关可以在任何目标连接存在之前拒绝未经身份验证的请求。目标可以在代理连接成功后返回访问页面。上游连接也可能在网关接收客户端后失败。这些结果属于生命周期的不同部分。
在获取内容时,请检查状态、最终URL、响应类型和所需字段。即使页面正确加载,重定向到登录屏幕的页面也未满足公共产品观察。具有挑战主体的成功状态同样是内容不匹配。
这 HTTP和SOCKS连接示例 显示客户端设置如何映射到这些层。请仔细使用诊断输出:头部、身份验证数据和URL可以揭示敏感上下文,因此常规日志应限制在已消毒的证据内。
代理何时可以缓存内容?
只有在部署支持缓存且响应的缓存规则允许的情况下,代理才能缓存HTTP响应。 HTTP缓存规则 管理重用、新鲜度和请求和响应指令的处理。
缓存响应可以在再次请求相同的可缓存资源时减少上游工作。个性化或明确不可缓存的响应需要不同的处理。不要假设代理可以安全地重复使用任何页面,仅仅因为URL是相同的。
普通的不透明HTTPS隧道不会向转发代理公开解密的HTTP响应头和内容。这限制了代理在隧道内部交通上执行的内容感知缓存的种类。在源方终止TLS的反向代理具有不同的地位。
对于敏感时效的任务,请验证时间戳和预期观察上下文。如果响应的年龄不符合测量要求,快速响应可能是错误的响应。
哪个组件控制每个设置?
一个有效的代理路线需要客户端的设置、网关的策略和目标的响应合同一致。将所有权分配给每个设置,而不是将代理URL视为整个配置。
| 设置 | 所有者 | 目的 |
|---|---|---|
| 目标URL | 应用程序 | 标识请求的资源 |
| 网关和协议 | 客户端和提供者 | 选择入口连接 |
| 代理凭证 | 提供者通道 | 授权网关使用 |
| 退出和会话选项 | 支持的提供者配置 | 选择路由上下文 |
| 所需的响应字段 | 应用程序 | 建立可用内容 |
无障碍代理解决方案 在管理配置后提供几种退出类型。在预算路线时,请咨询 无障碍定价 和所选通道的条款;协议支持和商业分配都应该在您的账户中检查。
结论
代理服务器的请求生命周期从路线选择开始,并以您的应用程序必须解释的响应结束。独立检查网关访问、身份验证、隧道、DNS和目标内容。当连接正常但目标数据未到达时,该序列为您提供特定的诊断。
检查您的请求路径
选择一个代理通道,并在将您允许的网页请求投入生产工作流之前检查每个连接阶段。
今天注册并获得 $5 的免费信用余额 — 无需信用卡.
领取您的 $5 信用 →常见问题
问:HTTP 代理能携带 HTTPS 请求吗?
HTTP 代理可以通过支持该行为的 CONNECT 隧道携带 HTTPS 目标。客户端随后通过隧道建立目标 TLS。到网关的 TLS 是一个独立的传输选择,并取决于代理和客户端配置。
问:代理可以看到 HTTPS 页面内容吗?
一个正常的非拦截隧道在不中断页面内容的情况下中继加密的 HTTPS 流量。代理仍然可以观察连接元数据。一个在受管理信任配置下终止 TLS 的检测代理可以具有不同的可见性,因此识别实际的部署。
问:DNS 解析在哪里发生?
DNS 解析取决于客户端和代理协议。客户端可以在本地解析目标,也可以将主机名发送给代理以进行解析。检查客户端支持的方案或选项,而不是假设每个代理请求都使用远程 DNS。
问:为什么 IP 检查可以通过而目标失败?
IP 检查可以通过,因为代理到达了检查服务,而另一个目标拒绝流量或返回不同的内容。单独验证实际目标,包括其最终 URL、必填字段和预期位置上下文。
问:设置代理会路由计算机上的每个程序吗?
设置代理并不一定会路由计算机上的每个程序。应用程序级别的设置涵盖该应用程序支持的流量,而系统和浏览器行为各不相同。确认工作流中每个程序的有效路由。