第 1 步:响应来自谁?#
使用 curl -v 运行失败的请求。Connection established 之前出现在 CONNECT 行上的状态来自网关;之后出现的状态则来自目标网站。浏览器会将网关故障显示为 ERR_TUNNEL_CONNECTION_FAILED 或 ERR_PROXY_CONNECTION_FAILED。
第 2 步:网关状态码#
| 代码 | ProxShift 含义 | 解决方法 |
|---|---|---|
| 407 invalid_credentials | 用户名或密码被拒绝 | 重新复制用户名和密码;检查末尾是否有空格;白名单 IP 是否已更改? |
| 400 invalid_parameter | 用户名参数未知或格式错误 | 检查键和值:应使用 -cc-gb 而非 -cc-uk,-city- 不得含空格,-ttl- 应为 1m 至 24h |
| 402 insufficient_balance | 流量或余额已耗尽 | 充值;如果使用子用户,请检查其上限 |
| 403 blocked_destination | 端口或目标不允许访问 | 端口 25、UDP 和仅支持 IPv6 的目标按设计会被拒绝 |
| 502 no_exit_available | 当前没有符合该位置的出口 | 扩大范围:移除 -city- 或 -asn-,保留 -cc-;一分钟后重试 |
| 502 exit_failed | 出口在到达目标前发生故障 | 重试一次;下一个连接会选择其他出口 |
| 504 target_timeout | 目标未及时响应 | 重试;从其他网络检查目标 |
第 3 步:目标网站状态码#
| 代码 | 可能原因 | 解决方法 |
|---|---|---|
| 403(网站页面) | 出口类型或指纹被拒绝 | 使用住宅或移动出口;采用真实的客户端标头;流程使用粘性会话 |
| 429 | 按 IP 限速 | 按连接轮换;降低每个出口的速率;遵循 Retry-After |
| 200 但数据为空 | 软封锁 | 按 403 处理;检查内容而非状态码 |
| 302 重定向到质询页面 | 机器人检查 | 降低速度;对此目标使用真实浏览器;采用更强的出口类型 |
| 5xx | 目标网站故障 | 退避等待;这不是代理问题 |
连接层故障#
- 传输过程中出现
ECONNRESET、Connection reset by peer:家庭住宅出口已断开。重试一次;对于粘性会话,网关会重新绑定到同一位置的新出口。 - 空闲超时:网关会关闭空闲 60 秒的连接。长轮询需要建立新连接。
- 通过代理时出现 TLS 错误:这绝不正常。检查你与网关之间是否存在本地拦截器(企业代理、防病毒软件)。
第 4 步:作出判断#
- 凭据或参数错误 → 修正后重试(不产生费用)。
- 网关找不到出口 → 扩大位置范围。
- 目标封锁该出口类型 → 改用更强的网络:数据中心 → 住宅 → 移动。
- 目标进行限速 → 提高轮换频率并降低速度;绝不要一边高频请求一边轮换。
- 目标发生故障 → 等待。
大家常问的问题#
ProxShift 会返回 429 吗?
不会。网关不限制请求速率;429 始终来自目标网站。
失败的请求会计费吗?
在到达目标前失败的连接不会计费。目标网站返回的 403 或 429 页面按其大小计费,通常只有几 KB。