先看懂代理链路的报错位置
代理链路上的错误可能来自客户端、代理服务器或目标站点,同样的现象原因完全不同。拿到 407、403、502 这类代码时,先确认是代理直接返回还是透传了上游响应,再按代码对症处理,排错效率会高得多。
407 与 403:认证和权限问题
- 407 认证失败:代理要求鉴权但未通过。核对用户名密码是否转义了特殊字符,IP 白名单里是否包含当前出口地址。
- 403 访问被拒:目标站拒绝请求。多为 IP 信誉差或触发反爬规则,应更换节点并降低请求频率。
- 配额耗尽:部分服务商在流量用完时同样返回 407,需要到控制台核对套餐余量。
502 与 504:链路上的超时家族
- 502 上游异常:代理拿不到有效响应,常见于节点过载或目标站拒绝代理 IP,先重试再切换节点。
- 504 网关超时:代理等到上限仍未收到上游响应,应先降低并发再检查出口带宽。
- 连接超时:连代理端口都无法建立,说明节点已死或被本地防火墙拦截。
curl 排错命令
加 -v 可以看到完整的握手过程与响应头,快速判断卡在哪一跳:
curl -v -x http://user:[email protected]:8080 https://www.example.com/ --max-time 15
若 CONNECT 阶段就报错,问题出在代理本身;若 TLS 握手成功后才失败,问题在上游链路。逐步替换节点或目标站点做二分,即可把故障定位到具体环节。
预防与自动化处理
- 客户端对 407、502 实现自动重试,并轮换到池中的下一个代理。
- 连续超时的节点写入冷却名单,探活通过后再重新启用。
- 把各错误码的比例接入监控面板,成功率跌破阈值立即告警。
- 认证信息统一放配置中心管理,避免多处明文维护造成泄露。
Article ID: 100
(本文仅供技术交流,请遵守法律法规)