代理报错代码怎么查?2026 速查表与分层排查步骤
简答:代理报错代码先按连接、认证、HTTP响应三类区分:检查主机端口与协议,再核对账号认证和目标网站响应,最后用 curl 或客户端日志确认故障层级。
定义:代理报错代码是客户端、代理服务器或目标网站在连接、认证、隧道和 HTTP 请求阶段返回的状态码或错误文本。
三步速查:先判断报错发生在哪一层
更新于 2026 年 10 月 27 日。 看到代理报错时,不要先反复更换节点或重装客户端。先记录完整错误原文、访问的目标地址、使用的协议、代理主机和端口,再按下面顺序判断。
- 连接阶段:如果出现
Connection refused、Connection timed out、ERR_PROXY_CONNECTION_FAILED,优先检查代理主机、端口、DNS、本地防火墙和客户端是否正在运行。Chromium 对ERR_PROXY_CONNECTION_FAILED的定义是无法建立到代理服务器的连接,可能发生在解析代理名称或建立套接字连接时,且不等同于 HTTP CONNECT 阶段失败。可参考 Chromium 网络错误定义。 - 认证或隧道阶段:如果是
407 Proxy Authentication Required、ERR_TUNNEL_CONNECTION_FAILED,核对用户名、密码、认证方式,以及 HTTP/HTTPS 代理和 SOCKS5 是否填反。 - HTTP 响应阶段:如果已经看到
400、403、429、502或504,说明请求通常已经到达某个 HTTP 服务或网关,重点转向请求格式、访问权限、请求频率、上游服务和目标网站,而不是只检查本机端口。HTTP 状态码的标准含义可参阅 MDN HTTP 状态码说明。
普通用户先执行“检查客户端运行状态—核对代理地址和端口—关闭其他系统代理”三步;开发者则继续使用带详细日志的 curl 测试,观察 DNS、TCP、TLS、代理认证和目标响应分别在哪一步失败。
代理报错代码速查表:代码、来源与首要处理方式
| 报错代码或原文 | 通常表示 | 优先检查 | 下一步 |
|---|---|---|---|
400 Bad Request | 请求格式或参数不符合服务端要求 | URL、请求头、方法和编码 | 用直连与代理分别请求,并查看完整响应头 |
401 Unauthorized | 目标服务要求身份认证 | 目标网站账号或令牌 | 不要把 401 与代理账号密码错误混为一谈 |
403 Forbidden | 服务端拒绝当前请求 | 权限、访问策略、请求来源 | 用其他公开页面对比,不要仅凭 403 判断代理失效 |
407 Proxy Authentication Required | 代理要求认证 | 代理用户名、密码、认证方式 | 重新填写认证信息,并确认凭据属于该代理 |
408 Request Timeout | 服务端等待请求超时 | 网络质量、请求发送过程 | 降低请求复杂度,检查客户端超时设置 |
429 Too Many Requests | 请求频率超过服务端限制 | 请求间隔、并发量、Retry-After | 降低频率并按响应头提示等待;该含义见 MDN 429 说明 |
500 Internal Server Error | 服务端遇到未明确处理的错误 | 目标服务日志或接口状态 | 用其他目标地址测试,确认是否仅单站点异常 |
502 Bad Gateway | 网关收到无效的上游响应 | 代理到目标网站的链路 | 更换目标地址或代理线路后复测 |
503 Service Unavailable | 服务暂时无法处理请求 | 目标服务是否维护或过载 | 查看 Retry-After,稍后再做低频复测 |
504 Gateway Timeout | 网关等待上游响应超时 | 代理出口、DNS、目标服务响应时间 | 用 curl 区分连接超时还是上游响应超时;参考 MDN 504 说明 |
Connection refused | 目标地址或代理端口主动拒绝连接 | 主机、端口、服务是否监听 | 确认客户端没有退出,检查本机端口和防火墙 |
Connection timeout | 连接阶段在限定时间内没有完成 | 路由、DNS、丢包、端口可达性 | 分别测试代理地址和目标地址 |
ERR_PROXY_CONNECTION_FAILED | 浏览器无法建立到代理服务器的连接 | 系统代理、代理主机、端口、DNS | 关闭残留系统代理后重新填写客户端配置 |
ERR_TUNNEL_CONNECTION_FAILED | 通过代理建立隧道失败 | HTTPS CONNECT、协议匹配、代理响应 | 确认 HTTP/HTTPS 与 SOCKS5 配置没有混用 |
ERR_NO_SUPPORTED_PROXIES | 当前客户端无法使用配置中的代理类型 | 代理方案、客户端支持范围 | 改用客户端支持的 HTTP、HTTPS 或 SOCKS 类型 |
表中的 HTTP 状态码表示响应阶段的协议状态,不代表所有问题都由代理造成。407 更接近代理认证问题,而 401 通常是目标服务要求认证;502 和 504 则需要结合代理日志和目标网站对照判断。
最短可执行排查流程:配置、协议、日志逐项核验
1. 备份并记录现状
先复制当前订阅或配置文件,记录客户端名称、版本、系统、代理协议、主机、端口、是否启用系统代理,以及完整错误文本。不要在没有备份的情况下同时修改 DNS、规则、TUN 和代理协议,否则复现条件会消失。
2. 核对主机、端口和协议
- 主机字段只能填写代理提供的域名或 IP,端口字段只填写数字端口。
- HTTP、HTTPS 和 SOCKS5 不是可以随意互换的标签。curl 文档说明,代理地址使用
http://、https://、socks4://、socks5://或socks5h://前缀时,会选择不同的代理类型;详见 curl 官方命令手册。 - 如果代理服务要求用户名和密码,确认认证信息没有包含未编码的特殊字符;测试时避免把真实密码直接写进公开日志或截图。
3. 用 curl 区分连接失败和目标响应
以下示例使用占位符,只用于诊断。把 proxy.example、8080 和 https://example.com/ 替换为你自己的测试值:
curl -v --connect-timeout 10 --max-time 20 -x http://proxy.example:8080 https://example.com/
如果使用 SOCKS5,可改为:
curl -v --connect-timeout 10 --max-time 20 -x socks5h://proxy.example:1080 https://example.com/
-v 用于查看详细连接过程,--connect-timeout 只限制 DNS、TCP 和 TLS 等连接阶段,--max-time 限制整个传输过程;参数含义以 curl 官方文档为准。
- 还没出现 HTTP 响应就失败:优先查代理主机、端口、DNS、路由、防火墙或协议。
- 出现
407:优先查代理认证。 - 出现
403、429、502或504:记录响应头,并用另一个目标地址或直连结果对照。
4. Windows 系统代理与客户端代理分层检查
Windows 的系统代理、自动配置脚本和应用内代理不一定由同一处控制。Microsoft 文档说明,Windows 网络代理配置可能包含自动发现、PAC 脚本和手动代理服务器,且部分应用还需要在应用内部单独设置代理;可参考 Microsoft NetworkProxy 文档。
因此,浏览器报错时依次检查:系统代理是否开启、代理地址和端口是否正确、客户端是否正在监听本机端口、浏览器扩展是否覆盖了系统设置。若关闭客户端后网页仍然走代理,通常应先清理残留的系统代理或 PAC 设置,再重新测试。
5. 失败后的分流与撤销
- 只有一个目标网站失败:先用直连和另一个目标地址对照,避免把单站点问题判断为代理整体故障。
- 所有目标都失败:先回滚最近改动,检查代理主机、端口、客户端运行状态和系统代理。
- 浏览器失败、curl 成功:重点检查浏览器代理设置、扩展、缓存或 PAC。
- curl 和浏览器都失败:查看客户端日志,重点寻找 DNS、连接拒绝、连接超时、认证失败和 TLS 错误。
完成测试后,撤销临时修改:恢复原来的系统代理开关、PAC 设置、DNS 和客户端配置,避免把一次性诊断参数留在日常环境中。
不同场景怎么判断:浏览器、客户端与开发工具
| 场景 | 典型现象 | 判断重点 | 建议动作 |
|---|---|---|---|
| 浏览器打不开任何页面 | ERR_PROXY_CONNECTION_FAILED | 代理服务器连接阶段 | 检查系统代理、客户端监听端口和本地防火墙 |
| 只有 HTTPS 页面打不开 | ERR_TUNNEL_CONNECTION_FAILED 或 TLS 错误 | CONNECT 隧道、协议和证书 | 确认代理类型,查看客户端日志中的隧道响应 |
| 接口返回 407 | Proxy Authentication Required | 代理认证 | 核对用户名、密码和认证方式 |
| 接口返回 429 | Too Many Requests | 目标服务限流 | 降低并发和请求频率,检查 Retry-After |
| curl 连接成功但浏览器失败 | 同一代理、不同工具结果不同 | 应用层代理设置 | 检查浏览器扩展、PAC、系统代理和缓存 |
| 所有工具都超时 | Connection timeout 或 504 | 链路、DNS、出口或上游响应 | 分开测试代理地址、目标地址和 DNS 解析 |
不要把一次测试结果当成长期稳定性结论。记录测试时间、系统、客户端版本、目标地址和错误原文,间隔一段时间重复测试,才能判断是持续故障、单次超时还是目标服务临时异常。
常见问题 FAQ
代理报错代码怎么看,先看数字还是英文提示?
先看完整英文提示和发生阶段,再看数字。数字是 HTTP 响应时,重点判断响应来自代理还是目标网站;只有浏览器本地错误文本时,重点检查连接、DNS、隧道和系统代理。
407 和 401 有什么区别?
407 表示代理要求认证,401 通常表示目标服务要求认证。前者应检查代理账号密码和认证方式,后者应检查目标网站或接口的身份凭证。
502 和 504 是代理坏了吗?
不能直接这样判断。502 表示网关收到无效上游响应,504 表示网关等待上游响应超时;网关可能是代理,也可能是目标网站前面的服务。用直连、其他目标地址和 curl 日志进行对照。
ERR_PROXY_CONNECTION_FAILED 怎么解决?
先检查代理主机和端口,再确认客户端正在运行并监听该端口;随后检查 Windows 系统代理、DNS 和防火墙。如果 curl 也无法连接,优先处理代理连接层,而不是修改浏览器缓存。
HTTP 代理可以填成 SOCKS5 吗?
不能默认互换。客户端必须按照服务端实际提供的协议填写;curl 官方文档将 HTTP、HTTPS、SOCKS4、SOCKS5 和 SOCKS5 hostname 作为不同代理方案处理。
为什么更换目标网站后错误代码变了?
不同目标网站可能使用不同网关、认证和限流策略,因此同一个代理在不同目标上可能返回不同响应。应保留目标地址、时间和完整响应,再判断问题是代理链路还是目标站点策略。
常见问题
代理报错代码怎么看,先看数字还是英文提示?
先看完整英文提示和发生阶段,再看数字;HTTP 数字代码要进一步判断响应来自代理还是目标网站。
407 和 401 有什么区别?
407 是代理要求认证,401 通常是目标服务要求认证,排查对象不同。
502 和 504 是代理坏了吗?
不能直接判断。它们可能来自代理网关,也可能来自目标网站或上游服务,应结合直连和 curl 日志对照。
ERR_PROXY_CONNECTION_FAILED 怎么解决?
先检查代理主机、端口、客户端运行状态和系统代理,再检查 DNS、防火墙和本机监听端口。
HTTP 代理可以填成 SOCKS5 吗?
不能默认互换,必须按服务端实际协议填写,否则可能出现连接失败、隧道失败或不支持代理类型。
相关阅读
- 继续看代理连不上、超时和网页打不开的分层排查流程
- 如果报错出现在订阅导入阶段,查看 403、超时和空节点处理方法
- 如果错误指向解析失败,再看 DNS、Fake-IP 与分流排查
- 如果能连接但延迟高,查看延迟、丢包和线路定位方法