如何修复 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 客户端退出后在系统设置中留下陈旧代理,或本地防火墙规则阻断了发往代理端口的流量。由于每个请求都依赖代理,单个失效的代理端点就会让整个浏览器断网。

常见原因

分步修复指南

第 1 步:检查 Chrome 的代理配置

首先确认 Chrome 使用的是哪个代理。打开 chrome://net-internals/#proxy 查看生效的代理。在 Windows 上还应检查 设置 > 网络和 Internet > 代理;在 macOS 上进入 系统设置 > 网络 > 详细信息 > 代理;在 Linux 上查看 http_proxyhttps_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_proxyhttps_proxy。重新加载页面 — 如果能加载,说明代理配置或代理服务器就是问题所在。

总结

ERR_PROXY_CONNECTION_FAILED 总是归结为 Chrome 无法到达被告知使用的代理:服务器宕机、地址或端口错误、主机名无法解析、防火墙拦截端口,或 VPN 留下了陈旧代理。按这六个步骤排查 — 检查配置、核对地址和端口、测试连通性、修复 DNS、禁用冲突的 VPN、重置代理设置 — 浏览即可恢复。请收藏这些诊断命令;它们能在几秒内判断故障出在代理端还是客户端。

相关指南