如何在 curl 中使用代理:-x 参数、http_proxy 与 https_proxy 变量、通过 socks5h 使用 SOCKS5、代理认证,以及如何解读 CONNECT 与 407 错误。
集成
接入你的技术栈。
显式配置、可控的请求,以及清晰的连接验证方法。
在 Python Requests 中配置代理:proxies 字典、Session 默认值、凭据、通过 requests[socks] 使用 SOCKS5、环境变量与 ProxyError。
让 Node.js 原生 fetch 经由 Undici ProxyAgent 走代理,并配置显式的代理认证、中止期限和响应体清理。
为 Playwright 浏览器上下文设置带认证的 HTTP 代理,保持测试状态隔离,并将页面导航与子资源请求的故障分开诊断。
学习如何配置 HTTPX 异步代理客户端、正确关闭流式响应,并在改动代理设置之前先在本地复现 PoolTimeout 异常。
用经过测试的 SQLite 收件箱处理 Amazon SP-API 商品信息通知:对投递去重、重启后恢复,并拒绝已被取代的读取结果。
在 Playwright 中运行 12 项澳大利亚浏览器时钟检查,包括豪勋爵岛的 30 分钟夏令时调整。把固定的 UTC 输入、浏览器时区和 Node 运行器的时区分开验证。
用一份配置快照和成对访问来测试 Shopify 加拿大本地化,把 IP、入口 URL、语言、已保存的选择和收货地址各自的影响区分开来。
curl、Wget 1.x、urllib、node:http、PHP curl、Guzzle、Java HttpClient 默认不发送 Accept-Encoding 或只发 identity。附实测修复与字节检查。
在 Node.js 中为 Axios 配置代理,把显式设置与环境变量路由、agent 路由区分开来,并用可下载的本地实验复现身份认证与 TLS 检查。
在 aiohttp 3.14 中配置代理:替换已弃用的 BasicAuth 和 proxy_auth,启用 trust_env,并看懂 407 与 Bad status line 报错。基于 3.14.4 实测。
Scrapy 2.19 代理配置:把凭据写进 meta["proxy"]、按请求轮换、HTTP_PROXY 环境变量,以及 TunnelError 407、被忽略的 407 响应和 socks5 报错的处理方法。
curl_cffi 0.16.3 代理配置:凭据与 impersonate,CONNECT 遇 407 抛出 ConnectionError 而非 ProxyError,HTTP_PROXY 规则与 socks5h。
在 Python 和 Node.js 中用 Playwright 的 route() 屏蔽图片、字体和媒体请求,可作用于整个浏览器上下文或按主机屏蔽,并说明 HTTP 缓存与 Service Worker 的注意事项。
核心概念
理解取舍。
带着正确的问题选择协议、会话模型或网络类型。
对比 HTTP CONNECT 与 SOCKS5,理解 DNS 解析位置和 TLS 边界,并选择你的客户端和服务商实际支持的协议。
围绕最小的完整工作流来选择轮换策略,区分出口 IP 绑定与 Cookie 状态,并测试粘性会话提前结束时你的应用应当如何处理。
对比蜂窝运营商网络与家庭宽带两类出口在 QA 测试中的表现,把浏览器设备仿真与代理路由分开处理,并只测量你的工作流真正需要的能力。
故障排查
定位故障。
在修改配置之前,先区分认证、连接和目标站点三类错误。
按可重复的顺序诊断 Proxy Authentication Required:网关、认证方式、凭据编码、账户范围和客户端配置。
通过一个隔离的本地检查,诊断 HTTP_PROXY、HTTPS_PROXY、ALL_PROXY 和 NO_PROXY 在 curl、Python Requests 和 Node.js 中的路由差异。
用 curl 计时把代理 DNS、TCP、CONNECT、TLS 和响应延迟分开,然后设置请求截止时间,并判断重试是否安全。
解释 ERR_TUNNEL_CONNECTION_FAILED 与 ERR_PROXY_CONNECTION_FAILED,附经验证的失败对照表,并说明如何找回 Chromium 隐藏的 CONNECT 状态码。
解读代理后的 Node.js TypeError: fetch failed:打印 err.cause 链,修复被忽略的 HTTPS_PROXY 或 undici 版本错配,并读懂代理的 403、407 或 502。
Node 内置 fetch 会悄悄跳过 HTTP_PROXY 和 HTTPS_PROXY,导致请求以 UND_ERR_CONNECT_TIMEOUT 超时,而 curl 正常。本文说明原因及各 Node 版本的修复方法。
使用代理时,同一个 SSL wrong version number 错误可能出在两跳:代理端口或目标端口。教你在 curl、Requests 和 HTTPX 中判断是哪一跳并修复。
Python Requests、pip 或 HTTPX 报 Missing dependencies for SOCKS support?安装 requests[socks],或清除 ALL_PROXY 环境变量。
Scrapy 2.16 移除了 start_requests():爬虫输出 Crawled 0 pages 后以 finished 关闭且无警告。改用 async def start(),已在 2.19 实测。
国家/地区
核实位置。
了解本地网络,验证出口位置,在选择服务商之前问对问题。
结合荷兰网络背景评估荷兰代理:出口 IP 与城市核查、ASN 证据,以及在选择供应商之前收集可比较证据的实用试用清单,逐项对照后再做决定。
按国家、州和城市评估美国代理。在选择供应商之前,比较网络证据、规划地区核查,并测量会话行为,把位置需求变成可复现的测试。
结合最新的运营商背景、UK 与 GB 的地理范围、邮编定位的局限,以及针对国家或网络需求的实用测试计划,全面评估英国代理。
结合最新的运营商与漫游背景、城市定位的局限、浏览器语言控制,以及一份实用的验收清单,评估德国代理并设计一次可复现的试用。
从运营商与品牌的区分、本土与海外领地的范围、出口 IP 证据,以及一份实用的本地化测试矩阵出发,评估法国代理并设计试用。
评估巴西代理IP(移动或住宅):弄清巴西标签能证明什么,了解 Vivo、Claro 和 TIM 的运营商背景、各州与时区、CEP 和 CPF 输入,并制定一份试用计划。
明确并验证葡萄牙代理IP:本土与岛屿的范围、ANACOM 公布的运营商名称、pt-PT 设置、葡萄牙结账字段,以及一份由四行组成的试用计划。
确定澳大利亚代理测试需要哪些证据:国家或城市、Telstra/Optus/TPG 网络标签、nbn 的服务商层级,以及会话要求。
用国家、运营商和会话验收矩阵评估加拿大代理。把 Rogers、Bell、TELUS 和 Quebecor 的品牌与你的测试所需的证据区分开来。
评估日本代理IP时,把 IP 位置、出口和移动接入证据分开核查;在接受样本之前,先理清 au/UQ 的品牌关系和 Rakuten 的漫游情况。