可在Telegram上免费试用:法国 、英国 或新加坡 加入Telegram
浏览器网络指南

代理在浏览器中的工作原理

从套接字创建和PAC规则解析,到HTTP CONNECT隧道和TLS握手——现代浏览器是如何处理Web流量的。

PXM2 Proxies September 22, 2026 阅读需9分钟
套接字层 流量路由
PAC / WPAD 规则自动化
零中间人攻击 TLS 保留
7+ 可用国家数
  • 套接字级委托 —— 浏览器会在进行源域名解析之前,将出站 TCP 握手重定向到指定的代理套接字。
  • PAC 与 WPAD 评估 —— JavaScript 路由规则在 Chromium 沙箱内执行,以将内网流量与公共出站流量分离。
  • 透明的 HTTP CONNECT 隧道 —— TLS 数据流可端到端传输,无需检查客户端证书,也不会发生代理中间人攻击。
  • 隔离的套接字池 —— 现代浏览器会根据每个标签页配置文件,将身份验证标头和连接保持活动状态进行隔离。
浏览器代理 4G/5G 专用
协议支持HTTP(S), SOCKS5
浏览器兼容性Chrome、Firefox、Safari、Edge
带宽无限
硬件专属4G/5G调制解调器
实际承运人ASN

浏览器会话伪装成家庭网络和移动蜂窝网络子网。

DNS泄漏防护

远程主机解析可防止本地 ISP 解析器进行监听。

浏览器代理请求的生命周期:从套接字到渲染

当您在配置为使用代理的网页浏览器中输入一个 URL 时,浏览器会在打开任何出站套接字之前,先修改其标准的网络执行循环。 在直接网络配置下,浏览器会发出 getaddrinfo() 系统调用,通过本地操作系统的 DNS 解析器解析主机名,与解析出的源 IP 进行 TCP 三向握手,并直接完成 TLS 握手。而配置了代理时,整个连接将委托给一个中间代理套接字。

浏览器套接字委托与握手架构
比较直接浏览器连接与HTTP CONNECT盲中继及SOCKS5远程解析。
BROWSER ENGINE Chromium / Gecko PAC Evaluation Socket Pool Alloc TLS Stream Render TCP Syn/Ack PROXY RELAY PXM2 4G/5G Gateway 407 / Auth Verify Remote DNS Query Raw Byte Pipeline Cellular Tower TARGET ORIGIN Web Server / CDN TLS Termination Sees Carrier IP
  1. 套接字分配和路由过滤器

    浏览器在向系统解析器发送查询之前,会先检查已配置的代理规则。如果目标域名与排除列表中的条目匹配,则由套接字直接分配连接;否则,浏览器会向代理服务器的 IP 地址建立一个 TCP 连接。

  2. HTTP CONNECT 隧道协商

    对于 HTTPS 目标,浏览器会发送一个未加密的 HTTP CONNECT 请求,其中包含目标主机名和端口(例如:CONNECT example.com:443 HTTP/1.1)。代理服务器在其自身网络上执行 DNS 解析,并连接到目标服务器。

  3. 端到端 TLS 握手

    一旦代理服务器返回 HTTP/1.1 200 Connection Established 响应,它就会转为“盲字节中继”模式。浏览器通过已建立的隧道直接与目标服务器发起 TLS 握手,从而确保有效载荷的完全加密。

自动路由:PAC 文件、WPAD 和环境标志

企业和高吞吐量自动化系统通过部署代理自动配置(PAC)脚本,避免手动切换代理。PAC 文件包含一个名为 FindProxyForURL(url, host) 的 JavaScript 函数,该函数在 Chromium 网络服务进程内的受限沙箱中执行。

PAC脚本示例(内网直连与移动端外网访问)
function FindProxyForURL(url, host) {
    // 1. Bypass proxy for local LAN and internal intranet domains
    if (isPlainHostName(host) ||
        shExpMatch(host, "*.internal.lan") ||
        isInNet(dnsResolve(host), "10.0.0.0", "255.0.0.0") ||
        isInNet(dnsResolve(host), "192.168.0.0", "255.255.0.0")) {
        return "DIRECT";
    }

    // 2. High-security targets route through dedicated cellular SOCKS5 proxy
    if (shExpMatch(host, "*.instagram.com") || shExpMatch(host, "*.tiktok.com")) {
        return "SOCKS5 185.220.101.5:1080; SOCKS 185.220.101.5:1080";
    }

    // 3. Fallback standard web traffic through HTTP proxy gateway
    return "PROXY 185.220.101.5:8080; DIRECT";
}

Web 代理自动发现(WPAD)通过 DHCP 选项 252 或对 wpad.yourdomain.local 的 DNS 查询来发现 PAC URL,从而扩展了 PAC 的功能。虽然这对企业设备群来说很方便,但如果本地网络中的攻击者伪造 DNS 响应,WPAD 就会带来安全漏洞。

针对特定浏览器的设置:Chrome、Firefox 和 Chromium 实验性功能

不同的浏览器引擎通过各自独特的内部架构来处理代理设置:

浏览器引擎 配置范围 CLI 自动化标志 DNS 处理
Google Chrome / Brave / Edge 系统默认(操作系统网络协议栈) --proxy-server="http://ip:port" 本地用于 socks5://,远程用于 socks5h://
Mozilla Firefox 针对每个个人资料的专用偏好设置 about:config network.proxy.* network.proxy.socks_remote_dns=true
Apple Safari macOS 网络系统偏好设置 networksetup -setwebproxy 系统解析器集成

诊断浏览器信息泄露、身份验证提示和 407 错误

在实现浏览器自动化或配置高隐私浏览会话时,有三种主要错误经常会导致操作中断:

1. HTTP 407 需要代理身份验证

Browsers cannot pre-authenticate HTTP CONNECT requests before knowing what authentication scheme the proxy demands. The proxy responds with a 407 status code containing a Proxy-Authenticate header (e.g. Basic realm="Proxy"). In headless Puppeteer or Playwright instances, failure to register page.authenticate({username, password}) causes immediate request termination.

2. WebRTC 本地 IP 和公共 IP 泄露

即使所有 HTTP 和 HTTPS 流量都通过专用的移动代理进行转发,浏览器的 WebRTC 实现仍可绕过代理套接字池,建立点对点的媒体流。 WebRTC STUN 请求会通过原始 UDP 协议向远程 STUN 服务器发送查询,从而暴露您主机设备的真实公共 IP 地址。请禁用 WebRTC,或通过配置标志强制实施仅通过代理的路由。

在浏览器中部署专用移动代理

在实时位置使用信誉良好的移动设备硬件——规避浏览器指纹屏蔽:

🇫🇷

法国

3 名操作员 20-100 Mbps
从……开始
$4.34 1小时时长
4G
可用运算符:
Orange Bouygues SFR
🇸🇬

新加坡

2 名操作员 30-70 Mbps
从……开始
$2.99 1小时时长
4G
可用运算符:
Vivifi Singtel
🇮🇳

印度

2 名操作员 20-30 Mbps
从……开始
$2.74 1小时时长
4G
可用运算符:
Airtel Vodafone Idea (Vi)
查看所有地点 →

常见问题解答

为什么 Chrome 会忽略在浏览器首选项中配置的代理设置?

在 Windows 和 macOS 系统上,Google Chrome 会将全系统的代理配置委托给主机操作系统的网络协议栈。若要强制 Chrome 独立通过专用凭据进行路由,您必须使用 --proxy-server 等命令行参数启动 Chrome,或者安装一个使用 chrome.proxy 运行时 API 的扩展程序。

在操作系统中设置代理与在 Firefox 内部设置代理有什么区别?

Firefox 维护着一个带有内部套接字池的独立网络堆栈。在 Firefox 首选项中配置代理设置,可将浏览器流量与后台操作系统服务隔离,从而防止系统更新或后台守护进程干扰代理连接。

PAC 文件在代理外部 Web 流量的同时,如何直接路由内部局域网流量?

代理自动配置文件会在每次请求时调用 FindProxyForURL() JavaScript 函数。符合 isInNet() 或 dnsDomainIs() 条件的内网主机将返回 DIRECT,而公共外部目标则返回代理地址和端口。

为什么浏览器会反复提示“407 需要代理身份验证”错误?

407 状态码表示代理服务器拒绝了未经身份验证的初始请求。如果浏览器未保存凭据,或者在保持活动连接的套接字续期过程中凭据验证失败,浏览器将强制弹出模态身份验证对话框。

浏览器代理会加密我的计算机与网站之间的所有流量吗?

代理会将您的 HTTPS 流量进行隧道传输,因此有效载荷数据仍会通过源服务器的 TLS 证书保持加密状态。然而,未启用 TLS 的明文 HTTP 代理中继不会对您的设备与代理服务器之间的连接进行加密,除非强制启用了 SOCKS5 或上游 TLS。

通过我们的技术指南系列,深入了解代理架构、协议和网络自动化:

核心基础知识

实时库存与工装

在浏览器中部署专用蜂窝网络代理

借助专用 4G/5G 硬件上的真实运营商 IP 地址,规避浏览器指纹屏蔽、验证码和子网封禁。

订购专用移动代理