显式代理设置:配置、PAC 文件与自动化
了解显式代理设置:与透明代理的区别、配置浏览器和防火墙、使用 PAC 文件,以及在浏览器自动化中的应用。
显式代理设置:配置、PAC 文件与自动化
显式代理设置让客户端——浏览器、应用程序或自动化脚本——有意将其流量通过代理发送。与透明拦截不同,客户端知道代理的存在,这使得流量更容易控制、记录和排查问题。本文解释了显式代理设置的工作原理、如何在浏览器和防火墙上配置它们、PAC 文件如何融入其中,以及当客户端是无头浏览器而非真人时会发生哪些变化。
什么是显式代理设置?

显式代理设置:配置、PAC 文件与自动化 - 什么是显式代理设置?.
Browser Tasks | AdsCrawl Documentation 的首屏截图。
显式代理是客户端有意应用的代理配置。您在应用程序中输入代理地址和端口,或者将应用程序指向一个代理自动配置(PAC)文件,由该文件决定哪些请求使用代理。然后客户端将 HTTP 和 HTTPS 请求直接发送到代理,代理再将其转发到目的地。
这与透明代理相反,透明代理中网络设备在客户端不知情的情况下拦截流量。由于客户端知道显式代理的存在,因此更容易查看流量是否被代理、测试备用路由以及隔离配置问题。Palo Alto Networks 和 Azure Firewall 的供应商文档都强调这种可见性是一个实际优势。
显式代理与透明代理
| 方面 | 显式代理 | 透明代理 |
|---|---|---|
| 客户端感知 | 客户端配置了代理地址或 PAC 文件 | 客户端不知情;流量被内联拦截 |
| 设置位置 | 客户端或应用程序设置 | 网络路由、防火墙或网关 |
| 故障排除 | 更容易——可以直接检查客户端设置 | 更困难——拦截发生在客户端之外 |
| 典型用途 | 管理出口、浏览器自动化、策略控制 | 内联检查,客户端改动最小 |
显式代理设置出现在哪里

显式代理设置:配置、PAC 文件与自动化 - 显式代理设置出现在哪里.
显式代理设置出现在三个层面,了解您正在更改哪一层会有所帮助。
- 客户端层面。 浏览器和操作系统接受手动代理地址或 PAC 文件 URL。这是“显式代理设置”最常见的含义。
- 网络安全层面。 防火墙如 Palo Alto Networks NGFW、FortiGate 和 Azure Firewall 可以运行显式 Web 代理。客户端指向防火墙的监听接口,防火墙应用策略、身份验证和日志记录。
- 自动化层面。 无头浏览器和抓取框架在代码或启动标志中接受代理配置。这是显式设置对开发者最重要的地方。
在浏览器中配置显式代理设置

显式代理设置:配置、PAC 文件与自动化 - 在浏览器中配置显式代理设置.
显式代理设置:配置、PAC 文件与自动化 - 在浏览器中配置显式代理设置。
大多数桌面浏览器都提供相同的基本字段:
- HTTP 和 HTTPS 流量的代理地址和端口。
- 例外或绕过列表,用于应直接连接的主机。
- PAC 文件 URL 作为固定地址的替代方案。
在 Windows 上,这些设置通常通过系统代理面板或组策略管理。在 macOS 上,它们位于网络代理设置下。在 Linux 上,环境变量如 HTTP_PROXY、HTTPS_PROXY 和 NO_PROXY 很常见,尽管浏览器行为各不相同。
一个简单的手动配置如下所示:
HTTP proxy: proxy.example.net:8080
HTTPS proxy: proxy.example.net:8080
Bypass: localhost, 127.0.0.1, *.internal.example
如果代理需要身份验证,客户端通常会提示输入凭据或从操作系统的凭据存储中读取。避免在脚本或共享配置文件中硬编码凭据。
使用 PAC 文件进行显式代理配置

显式代理设置:配置、PAC 文件与自动化 - 使用 PAC 文件进行显式代理配置.
显式代理设置:配置、PAC 文件与自动化 - 使用 PAC 文件进行显式代理配置。
PAC 文件是一个 JavaScript 函数,它告诉客户端对于给定的 URL 使用哪个代理。当不同目的地需要不同路由,或者代理设置需要集中分发时,它很有用。
一个最小的 PAC 文件如下所示:
function FindProxyForURL(url, host) {
if (isPlainHostName(host) || shExpMatch(host, "*.internal.example")) {
return "DIRECT";
}
return "PROXY proxy.example.net:8080; DIRECT";
}
例如,FortiGate 文档介绍了托管 PAC 文件并将客户端浏览器指向它,包括通过强制门户通过 HTTPS 下载 PAC 文件。Azure Firewall 同样支持托管 PAC 文件并在防火墙策略中启用代理自动配置。当您大规模使用 PAC 文件时,请将其托管在受信任的 HTTPS 端点上,并保持逻辑简单——复杂的 PAC 脚本难以调试,并且在不同客户端上可能表现不同。
在防火墙上配置显式代理
防火墙侧的工作流程在各供应商之间大致相似:
- 启用显式代理功能并选择监听接口和端口。
- 创建代理策略,允许客户端流量到达代理,并允许出站流量到达互联网。
- 配置身份验证(如果需要),例如 SAML 或 Kerberos 单点登录。
- 将客户端指向代理,使用手动地址或 PAC 文件。
- 添加日志记录和安全配置文件,以便对代理流量进行检查和审计。
供应商的具体细节有所不同。Palo Alto Networks 在支持的平台上需要 Web 代理许可证,并为客户端流量、出站流量和环回接口使用单独的接口。FortiGate 在网络设置下公开显式 Web 代理,并使用代理策略对象。Azure Firewall 在防火墙策略中配置显式代理,而不是在防火墙资源上,并且它要求 HTTP 和 HTTPS 流量使用单一的 HTTP 端口。
浏览器自动化的显式代理设置
Cloud Browsers | AdsCrawl Documentation 的首屏截图。
当客户端是无头浏览器时,显式代理设置通常在代码中传递。Playwright 和 Puppeteer 都在启动时接受代理服务器和可选的凭据:
// Puppeteer 示例
const browser = await puppeteer.launch({
args: ['--proxy-server=http://proxy.example.net:8080']
});
// Playwright 示例
const browser = await chromium.launch({
proxy: {
server: 'http://proxy.example.net:8080',
username: 'user',
password: 'pass'
}
});
在生产抓取中,显式代理设置与几个问题相互作用:
- IP 信誉。 数据中心代理可能比住宅代理更频繁地被封锁。
- 地理定位。 代理的位置决定了请求的明显区域。
- 会话一致性。 某些工作流程需要在多次页面加载中使用相同的 IP。
- 身份验证。 轮换代理通常需要每个会话的凭据。
- 故障处理。 超时的代理应触发重试或备用路由,而不是静默失败。
如果您大规模运行这些工作负载,托管云浏览器可以消除大量代理管道工作。例如,AdsCrawl 允许团队将 Playwright、Puppeteer 或任何 CDP 客户端连接到具有住宅代理路由或自定义代理的云 Chromium 浏览器,因此代理配置与浏览器会话一起存在,而不是在每个脚本中。当您需要在许多任务中保持一致的浏览器身份和区域路由时,这很有用。有关基础设施选项的更广泛比较,请参阅用于抓取的远程浏览器基础设施:开发者指南。
常见陷阱及如何避免
- 忘记绕过列表。 本地和内部主机在被强制通过代理时可能会中断。始终排除
localhost和内部域。 - 混合 HTTP 和 HTTPS 端口。 某些防火墙要求两者使用单一端口;其他防火墙则期望单独设置。部署前请检查供应商文档。
- 硬编码凭据。 使用环境变量或秘密管理器,并定期轮换代理凭据。
- 忽略 CONNECT 行为。 HTTPS 流量使用 CONNECT 方法。某些代理默认阻止它,这会破坏 TLS 站点。
- 假设 PAC 文件可移植。 PAC 脚本在不同客户端的不同引擎中运行。在您使用的实际浏览器和自动化堆栈上进行测试。
- 跳过日志记录。 没有代理日志,您无法判断失败是来自目标站点、代理还是客户端。
相关阅读
- 2026 年十大 AI 浏览器自动化软件产品 - 根据自主性、CAPTCHA 处理、可扩展性、定价和最佳适用场景,比较 2026 年十大 AI 浏览器自动化软件产品。
- 如何将 AdsCrawl 与实时公共数据 API 堆栈结合使用 - 将 AdsCrawl 的云浏览器自动化与 OpenWeb Ninja 的实时公共数据 API 堆栈相结合,以渲染动态页面并用实时 SERP 和 Web 数据丰富它们。
- AdsCrawl vs Browser Use vs ApiFlash:哪个 API 适合? - 在渲染、代理、提取和定价方面比较 AdsCrawl、Browser Use 和 ApiFlash,以选择合适的浏览器或截图 API。
来源与进一步阅读
常见问题
显式代理设置和透明代理设置有什么区别?
显式代理设置在客户端上配置,因此客户端知道它正在使用代理。透明代理在客户端没有配置的情况下拦截流量,通常通过网络路由或内联检查。
显式代理设置需要 PAC 文件吗?
不需要。PAC 文件是可选的。您可以手动配置固定的代理地址和端口。当不同目的地需要不同的代理路由,或者您希望集中控制客户端行为时,PAC 文件很有用。
我可以在 Playwright 或 Puppeteer 中使用显式代理设置吗?
可以。两个框架都在浏览器启动时接受代理服务器和可选的凭据。对于大规模自动化,云浏览器平台可以为您管理代理路由和浏览器身份。
为什么启用显式代理后某些 HTTPS 站点会失败?
HTTPS 流量使用 CONNECT 方法,某些代理会阻止它或需要额外的策略规则。检查代理是否允许 CONNECT 到目标端口,以及 TLS 检查设置是否正确。
如何测试显式代理设置是否有效?
通过配置的客户端请求一个 IP 检查端点,并将返回的 IP 与您自己的 IP 进行比较。然后检查代理日志以确认请求按预期路由。
结论
显式代理设置概念简单,但在实践中容易配置错误。关键是知道您正在更改哪一层——客户端、防火墙还是自动化代码——并在所有三层中保持绕过规则、身份验证和日志记录的一致性。对于浏览器自动化团队来说,最可靠的方法是将代理配置视为浏览器会话的一部分,而不是每个脚本中的事后考虑。无论您手动配置、通过 PAC 文件配置还是通过托管云浏览器配置,显式设置都能提供透明拦截无法提供的可见性和控制。
