跳到主要内容
NextProxyNextProxy文档

错误码对照

HTTP 状态码、SOCKS5 reply 码和 API 错误码的完整含义与排查方向。

HTTP 转发和 HTTPS CONNECT 建立隧道前的错误,都返回明确的状态码、X-NextProxy-Error 响应头和安全的 JSON 正文。先看状态码分类,再用机器码定位;错误信息不包含内部地址或代理密码。

HTTP 状态与机器码

HTTPX-NextProxy-Error / error.code含义与处理
400invalid_request请求、目标地址或协议格式错误;修正客户端请求
400invalid_proxy_parameters用户名参数格式、顺序、范围或依赖错误;核对国家码、sessiontime
407proxy_auth_required缺少或无法解析代理认证;检查客户端是否发送 Basic 凭据
407invalid_credentials用户名或密码不匹配;从控制台复制原文,核对大小写及 Il1
403account_disabled / account_expired账号已禁用或过期;检查账号状态与有效期
403access_denied账号访问权限、来源绑定或端口认证方式不允许
403target_denied目标地址、端口或访问策略不允许
402traffic_exhausted用户共享流量池耗尽;补充流量
402account_quota_exhausted子账号独立流量上限已用完;调整该账号限额
402quota_exhausted当前可用配额或配额租约不足;检查剩余额度
429connection_limit已识别账号的并发或建连频率超限;减少并发并退避
500internal_error平台内部处理错误;保留时间和机器码联系支持
502upstream_connection_failed出口连接、解析或握手失败;有限退避重试
503service_unavailable暂无符合条件的代理 IP 或认证、配额等服务暂不可用;稍后重试,必要时减少定位条件
504upstream_timeout建立代理连接时等待超时;有限退避重试

出口连接过程中收到的 403 / 407 统一返回 502 upstream_connection_failed,不表示客户凭据错误。认证服务调用超时属于 503 service_unavailable

407 同时返回 Proxy-Authenticate: Basic realm="NextProxy"。缺失凭据与错误凭据都使用 407,用机器码区分,不再统一返回 403

http
HTTP/1.1 407 Proxy Authentication Required
Proxy-Authenticate: Basic realm="NextProxy"
X-NextProxy-Error: invalid_credentials
Content-Type: application/json; charset=utf-8
Content-Length: 92
Cache-Control: no-store
Connection: close

{"error":{"code":"invalid_credentials","message":"Proxy username or password is incorrect"}}

正文的 message 是面向客户的说明,不作为程序判断依据;请匹配 code。某些 HTTP 客户端在 CONNECT 失败时不暴露正文,此时读取响应头。网关错误均带 Content-LengthCache-Control: no-store429503 还带 Retry-After: 1,至少等待 1 秒后再有限退避重试。此处是代理响应的等待值,与 REST 提取接口的等待值分别判断。

用 cURL 查看错误

shell
curl -v --connect-timeout 10 --max-time 30 \
  --proxy 'http://GATEWAY_HOST:58971' \
  --proxy-user 'USERNAME-country-US:PASSWORD' \
  'https://api.ipify.org'

普通 HTTP 转发可用 curl -i 查看状态行、响应头和 JSON。curl -v 的调试输出写到标准错误;不要只使用隐藏错误的 -s,需要安静输出时用 -sS。分享日志前删除 Proxy-Authorization 和真实密码。不要把 Markdown 的 [文字](链接) 当成代理 URL,也不要从截图识别凭据。

网关错误与目标网站错误

200 Connection Established 只表示 CONNECT 隧道建立成功。之后目标网站返回的 403429 或其他状态属于目标网站,与代理认证失败不同。HTTPS 隧道建立后网关不会解密目标 HTTP 响应,也不能再插入 JSON 错误;后续中断通过连接关闭和运营记录定位。

重试前先辨别响应来自哪里。网关 400402403407 需要先修正参数、额度或权限;429 要降并发;502503504 可有限指数退避。对非幂等目标请求,先确认是否已执行,不能盲目重放。

没有 HTTP 响应的边界

协议识别前的全局连接保护、来源 IP 并发/速率保护、首字节超时和资源高水位仍可能直接关闭 TCP 连接。成功建立隧道后的断流也不会变成新的 HTTP 状态。此时记录发生时间、入口、账号和客户端错误,交由运营查询,不把所有断连都解释成 403

SOCKS5

SOCKS5 使用协议协商和 REP,不发送 HTTP 状态、JSON 或 X-NextProxy-Error

阶段含义
方法协商0x02用户名密码认证;正常账号端口
方法协商0x00无认证;仅免密端口
方法协商0xff无可接受的认证方法
RFC 1929 认证01 00认证成功
RFC 1929 认证01 01认证失败;凭据、参数、账号或认证依赖均可能导致
CONNECT REP0x00成功
CONNECT REP0x01其他连接或服务错误
CONNECT REP0x02策略、配额或账号并发限制
CONNECT REP0x05连接被拒绝
CONNECT REP0x06连接超时
CONNECT REP0x07不支持的命令;UDP ASSOCIATE / BIND
CONNECT REP0x08不支持的地址类型

认证阶段协议只能报告成功或失败,不能把所有 HTTP 分类一一编码。定位时可临时用同一组凭据发 HTTP CONNECT 请求读取机器码,再回到 SOCKS5;运营端保留更具体的失败原因。

提取接口错误码

响应是结构化的 JSON(type=json 时),有具体的 code

状态码错误码含义
400invalid_proxy_extract_timetime 非整数、不在 1–120;sticky 缺 time;rotating 传了 time
400invalid_proxy_extract_countnum 不在 1–100
400invalid_proxy_extract_typetype 不是 txt / json
400invalid_proxy_extract_formatformat 不是 \n / \r\n / ,
400invalid_proxy_extract_sessionsession 不是 sticky / rotating
401proxy_api_key_invalidKey 无效;账号或用户不可用 / 已过期
403proxy_source_not_whitelisted来源 IP 不在白名单
422proxy_api_invalid地区或会话组合不可用
429proxy_extract_rate_limited超过 120/min,带 Retry-After: 60
502client_ip_unavailable无法确定调用方的公开 IPv4
503proxy_gateway_unavailable无健康网关 / 绑定未确认 / 端口耗尽,带 Retry-After: 2
500internal_error内部错误

完整参数说明见 提取接口

客户 API 错误码

统一结构:

json
{
  "error": {
    "code": "machine_readable_code",
    "message": "给人看的说明",
    "fields": { "FieldName": "validationTag" }
  }
}

常见的:

状态码错误码含义
401access token 缺失或过期(只有 15 分钟)
403origin_rejected写操作缺少可信 Origin
409proxy_account_limit_reached子账号数超限(常规 10 个,注册前 24 小时 2 个)
409proxy_api_limit_reached白名单条数超限(每账号 10 条)
402quota_exhausted流量额度耗尽
429触发风控频率限制

代理端口使用本文的 HTTP/SOCKS5 契约;客户管理 API 与提取 API 的 401403 是各自的 REST 鉴权规则,不能替换成代理 407。系统排查见 排错流程

这篇解决你的问题了吗?