如何修复 ERR_PROXY_CONNECTION_FAILED:完整指南
ERR_PROXY_CONNECTION_FAILED 是 Chrome 在已配置代理服务器却无法与该代理建立连接时显示的错误。当启用代理后,Chrome 会将每个请求转发到代理的主机和端口,而不是直接访问网站。如果代理服务器宕机、地址或端口错误、代理主机名无法解析,或防火墙拦截了连接,Chrome 就连代理都到不了,于是放弃请求并在页面上显示 ERR_PROXY_CONNECTION_FAILED。
该错误发生在代理层,发生在 Chrome 与任何目标网站通信之前。与 ERR_TUNNEL_CONNECTION_FAILED(代理可达但无法为 HTTPS 建立 CONNECT 隧道)不同,ERR_PROXY_CONNECTION_FAILED 表示与代理本身的 TCP 连接就已失败。这让问题更容易定位:如果你禁用代理后浏览恢复正常,那么代理配置或代理服务器就是问题所在。本指南解释了该错误的含义、最常见的根因,以及一套适用于 Windows、macOS 与 Linux 的六步初级修复流程。
什么是 ERR_PROXY_CONNECTION_FAILED?
当 Chrome 被告知使用某个代理(通过系统设置、扩展、PAC 文件或环境变量),却无法与该代理的地址和端口建立 TCP 连接时,就会显示该消息。Chrome 会先解析代理主机名,再向 host:port 发起 TCP 握手;只要其中任一步失败 — DNS 无响应、主机不可达、端口关闭或防火墙丢弃 SYN 包 — 加载就会停止并显示该错误。
常见诱因包括:企业代理因维护而离线、代理地址拼写错误(例如把端口 3128 写成 8123)、PAC 文件指向一台已不存在的服务器、VPN 客户端退出后在系统设置中留下陈旧代理,或本地防火墙规则阻断了发往代理端口的流量。由于每个请求都依赖代理,单个失效的代理端点就会让整个浏览器断网。
常见原因
- 代理服务器宕机 — 代理主机离线或服务已停止。
- 代理地址或端口错误 — 操作系统或 Chrome 代理设置中主机或端口的拼写错误。
- 代理 DNS 解析失败 — 代理主机名无法解析为 IP 地址。
- 代理要求身份验证 — 代理要求凭据而 Chrome 未提供。
- 防火墙拦截代理 — 本地或上游防火墙丢弃发往代理端口的流量。
- VPN 冲突 — VPN 客户端设置了系统代理后崩溃,使 Chrome 指向一个已失效的端点。
- 代理自动配置(PAC)错误 — PAC/WPAD 文件返回了失效的代理或无法加载。
分步修复指南
第 1 步:检查 Chrome 的代理配置
首先确认 Chrome 使用的是哪个代理。打开 chrome://net-internals/#proxy 查看生效的代理。在 Windows 上还应检查 设置 > 网络和 Internet > 代理;在 macOS 上进入 系统设置 > 网络 > 详细信息 > 代理;在 Linux 上查看 http_proxy 与 https_proxy 环境变量。记下 Chrome 转发到的 host 和端口 — 如果字段为空或指向意外地址,问题就已经在这里了。
第 2 步:核对代理地址和端口
确认代理主机和端口正确。一个常见错误是端口写错 — 例如把 8080 写成 808,或把 3128 写成 3123。将配置值与网络管理员或代理提供商提供的值进行比对。如果你最近切换了网络,请记住:在公司网络有效的代理通常在家里无法访问。
第 3 步:测试到代理服务器的连通性
Ping 代理主机并测试到代理端口的原始 TCP 连接。如果 ping 失败或端口拒绝连接,说明代理服务器宕机、端口错误或防火墙在中间阻拦。这一项测试就能把代理端问题与浏览器端问题区分开,并告诉你后续该把重点放在哪里。
第 4 步:解决代理 DNS 解析失败
如果代理用主机名而非 IP 标识,DNS 失败的表现就和代理失效完全一样。Ping 该主机名;若无法解析,请临时改用 IP 地址、刷新 DNS 缓存,或修复机器使用的 DNS 服务器。主机名一旦能解析,Chrome 就能重新找到代理,连接也随之成功。
第 5 步:禁用 VPN 与冲突的代理工具
VPN 客户端和代理工具(Clash、cntlm、Shadowsocks)通常在启动时设置系统代理,并应在退出时移除。如果它们崩溃或被强制结束,代理设置就会保留并指向一个已不存在的进程。请禁用或完全退出每个 VPN 和代理工具,然后检查 Chrome 能否到达代理 — 或者干脆关闭手动代理直接浏览。
第 6 步:重置系统代理设置并刷新 DNS
清除所有残留的代理配置并刷新 DNS 缓存,让 Chrome 从干净状态启动。在 Windows 上用 netsh winhttp reset proxy 重置 WinHTTP,并用 ipconfig /flushdns 刷新 DNS。在 macOS 与 Linux 上取消设置代理环境变量并清除解析器缓存。之后请完整重启 Chrome,因为仅刷新单个标签页无法清除内存中的代理决策。
代理诊断命令
以下命令可帮助你在各操作系统上检查、测试和重置代理配置。
# Windows:查看并重置系统(WinHTTP)代理
netsh winhttp show proxy
netsh winhttp reset proxy
# Windows:刷新 DNS 缓存并查看 IP/DNS 配置
ipconfig /flushdns
ipconfig /all
# Linux/macOS:查看代理环境变量
env | grep -i proxy
# Ping 代理主机以检查可达性
ping proxy.local
# 测试到代理主机和端口的原始 TCP 连接
telnet proxy.local 3128
nc -vz proxy.local 3128
# 测试通过代理的 HTTP 请求
curl -v --proxy http://proxy.local:3128 http://example.com
# 测试需要身份验证的代理
curl -v --proxy http://user:pass@proxy.local:3128 https://example.com
# Chrome:查看 Chrome 实际使用的代理
chrome://net-internals/#proxy
快速参考表
| 症状 | 根本原因 | 修复方法 |
|---|---|---|
| 所有站点均报代理错误 | 代理服务器宕机或已停止 | 重启代理服务或联系管理员 |
| 切换网络后报错 | 公司代理在家里不可达 | 在新网络上禁用手动代理 |
| 代理主机名无法解析 | 代理 DNS 解析失败 | 改用 IP 地址;刷新 DNS 或修复 DNS 服务器 |
| 错误显示 407 代理身份验证失败 | 代理凭据缺失或过期 | 在代理 URL 或客户端中重新输入凭据 |
| VPN 断开后出现错误 | VPN 留下了陈旧的系统代理 | 重置 WinHTTP;退出或重装 VPN 客户端 |
| 仅某个应用无法使用代理 | 按应用代理或 PAC 配置错误 | 检查 PAC 文件;修复该应用的代理设置 |
| 到代理端口的连接超时 | 防火墙拦截代理端口 | 允许发往代理端口的出站流量 |
常见问题
ERR_PROXY_CONNECTION_FAILED 与 ERR_TUNNEL_CONNECTION_FAILED 有何不同?
ERR_PROXY_CONNECTION_FAILED 表示 Chrome 无法与代理服务器本身建立 TCP 连接 — 主机不可达、端口关闭或 DNS 失败。ERR_TUNNEL_CONNECTION_FAILED 表示代理可达,但无法为 HTTPS 建立 CONNECT 隧道。如果禁用代理后一切正常,你遇到的就是前者。
为什么只有连接 VPN 后才出现该错误?
许多 VPN 客户端在启动时设置系统代理,退出时移除。如果 VPN 崩溃、被强制结束或改变了路由表,Chrome 就会继续尝试使用一个已不存在的代理端点。请禁用 VPN,运行 netsh winhttp reset proxy,并确认浏览正常后再重新连接。
PAC 文件会导致此错误吗?
会。代理自动配置(PAC)文件或 WPAD 发现可能返回一个离线的代理、把 Chrome 指向错误的 host:port,或完全无法加载。打开 chrome://net-internals/#proxy 查看解析出的代理,并临时关闭"使用设置脚本"或自动配置以测试直连。
如何临时禁用代理以确认是否为原因?
在 Windows 上进入 设置 > 网络和 Internet > 代理,关闭手动代理和自动代理;在 macOS 上于 系统设置 > 网络 > 详细信息 > 代理 中禁用所有代理;在 Linux 上取消设置 http_proxy 与 https_proxy。重新加载页面 — 如果能加载,说明代理配置或代理服务器就是问题所在。
总结
ERR_PROXY_CONNECTION_FAILED 总是归结为 Chrome 无法到达被告知使用的代理:服务器宕机、地址或端口错误、主机名无法解析、防火墙拦截端口,或 VPN 留下了陈旧代理。按这六个步骤排查 — 检查配置、核对地址和端口、测试连通性、修复 DNS、禁用冲突的 VPN、重置代理设置 — 浏览即可恢复。请收藏这些诊断命令;它们能在几秒内判断故障出在代理端还是客户端。