代理服务器出现问题或者地址有误?关闭VPN后无法上网的5种原因

约 5 分钟读完 6 次阅读

浏览器提示「代理服务器出现问题,或者地址有误」(英文是 ERR_PROXY_CONNECTION_FAILED),意思是系统或浏览器还在把流量交给一个代理,而这个代理已经不在了。最常见的场景是关掉 VPN 之后:VPN 软件开着时把系统代理指向本机的某个端口,软件没来得及改回去就退出了,代理设置留了下来,指向一个已经没人监听的地址,于是所有网页都打不开。

把那条代理设置关掉,网络马上就恢复。难点在于代理可能留在好几个地方:Windows 系统设置、浏览器插件、macOS 网络设置、安卓的 VPN 选项,还有命令行的环境变量。下面先按现象判断是哪一种,再分别给修法。

先按现象判断是哪一种

现象最可能的原因对应小节
Windows 上所有浏览器都打不开,提示代理服务器出现问题系统代理残留Windows 系统代理残留
只有某一个浏览器打不开,换个浏览器就正常浏览器插件在走代理浏览器插件
Mac 上关掉代理软件后打不开网页macOS 网络设置里的代理没关macOS
安卓手机一关 VPN 就完全断网,显示已连接 WLAN 却上不去开了「始终开启的 VPN」并屏蔽了未使用 VPN 的连接安卓
网页正常,只有命令行、git、pip 连不上环境变量里的代理还在命令行

Windows 系统代理残留(最常见)

这是「代理服务器出现问题,或者地址有误」最常见的来源。VPN 或代理软件被强制结束、崩溃、电脑突然断电时,软件来不及把系统代理改回去。

Windows 10 / 11 的修法:

  1. 打开 设置 → 网络和 Internet → 代理
  2. 在「手动设置代理」里,把「使用代理服务器」关掉(Windows 11 要先点「编辑」再关)
  3. 同一页上面的「使用设置脚本」如果开着、而且地址是 127.0.0.1 开头的,也关掉

如果设置页打不开,也可以走老路径:控制面板 → Internet 选项 → 连接 → 局域网设置,取消勾选「为 LAN 使用代理服务器」。

另外,有些程序读的是另一套 WinHTTP 代理设置。系统代理关掉之后,个别软件(比如某些更新程序)还是连不上的话,用管理员身份打开命令提示符执行:

netsh winhttp show proxy
netsh winhttp reset proxy

第一条看有没有残留,第二条清掉。

浏览器插件在走代理

SwitchyOmega 这类代理插件会接管浏览器自己的代理设置,不受系统设置影响。插件里如果选的是一个固定的代理情景模式,比如 127.0.0.1:7890,VPN 软件一关,这个浏览器就打不开网页,其他浏览器和软件却正常。

修法:点浏览器右上角的插件图标,切到「直接连接」或「系统代理」。

想确认浏览器实际用的是什么代理,在 Chrome 或 Edge 的地址栏输入 chrome://net-internals/#proxy(Edge 也认这个地址),页面上会显示当前生效的代理设置。

macOS 网络设置里的代理没关

Mac 上的代理软件同样会改系统代理,退出不干净也会残留。

  1. 打开 系统设置 → 网络,选当前在用的网络(比如 Wi-Fi),点「详细信息」
  2. 进入「代理」,把「网页代理(HTTP)」「安全网页代理(HTTPS)」「SOCKS 代理」全部关掉,点好

也可以在终端里用命令关。先查网络服务的名字,再关掉对应的代理(下面以 Wi-Fi 为例):

networksetup -listallnetworkservices
networksetup -setwebproxystate Wi-Fi off
networksetup -setsecurewebproxystate Wi-Fi off
networksetup -setsocksfirewallproxystate Wi-Fi off

安卓开了「始终开启的 VPN」

安卓 8.0 以后有两个开关:「始终开启的 VPN」和「屏蔽未使用 VPN 的连接」。两个都打开时,系统只允许流量走这个 VPN;VPN 一断,手机就完全不能上网,即使显示已连上 WLAN。这是系统故意设计的防泄漏保护,并不是故障。

修法:打开 设置 → 网络和互联网 → VPN,点 VPN 应用旁边的齿轮,把「屏蔽未使用 VPN 的连接」关掉(或者连「始终开启的 VPN」一起关)。不同品牌手机的菜单名字和位置略有差别,可以在设置里直接搜「VPN」。

另外检查一下 WLAN 本身有没有设代理:长按当前连接的 WLAN → 修改网络 → 高级选项 → 代理,改成「无」。

命令行的代理环境变量还在

为了让 git、pip、npm 走代理,很多人在终端里设过 http_proxy、https_proxy 环境变量,或者给 git 配过 http.proxy。代理软件一关,这些命令就连不上,网页却是好的。

# 看当前有没有设代理
env | grep -i proxy
git config --global --get http.proxy

# 清掉
unset http_proxy https_proxy all_proxy
git config --global --unset http.proxy

如果是写在 ~/.bashrc、~/.zshrc 里的,要把那几行删掉,否则新开终端又会生效。这几处代理是怎么设上去的,见 SOCKS5代理设置方法。

怎么避免再遇到

  • 关 VPN 时先在软件里点「断开」,再退出程序,别直接在任务管理器里结束进程
  • 很多客户端点窗口右上角的关闭只是缩到托盘,真正退出要在托盘图标上右键选「退出」
  • 准备卸载 VPN 软件时,同样先断开、再退出、最后卸载。卸载后还有虚拟网卡残留等问题,见 VPN软件如何卸载

用我们的客户端时

我们的电脑端连接时把系统代理设成 127.0.0.1:2080,正常断开、或者从托盘图标选「退出」时,会自动把系统代理改回去。安卓端用的是系统的 VPN 接口,App 被关掉时系统会自动撤掉 VPN,不会留下代理设置(除非你自己打开了上面安卓一节说的那两个开关)。

如果电脑端在连接状态下被任务管理器强制结束、程序崩溃或者电脑突然断电,系统代理会残留,浏览器就会提示「代理服务器出现问题」。当前版本下次启动时不会自动清理这条残留,客户端里的「一键网络修复」在没连接时也不会处理它。遇到这种情况,按上面 Windows 一节的方法到设置里关掉「使用代理服务器」最快;或者重新连接一次再正常断开,客户端也会把代理改回去。

常见问题

代理服务器出现问题或者地址有误怎么办?

系统或浏览器还在用一个已经不存在的代理。Windows 上到 设置 → 网络和 Internet → 代理 关掉「使用代理服务器」;只有一个浏览器这样的,检查代理插件是不是选了固定代理。

关闭 VPN 后无法上网怎么办?

多数是 VPN 软件退出时没把系统代理改回去。按上面的表先判断是 Windows、Mac、安卓还是浏览器插件的问题,再关掉对应的代理设置。

为什么不开 VPN 就无法上网?

电脑上通常是系统代理残留。安卓上如果关掉 VPN 就完全断网,基本是开了「屏蔽未使用 VPN 的连接」,这个开关会在 VPN 断开时拦掉所有流量。

Clash 关闭后无法上网怎么办?

和其他代理软件一样,是 Clash 设置的系统代理没还原。先打开 Clash 把「系统代理」开关关掉再退出;已经退出的,按上面 Windows 或 macOS 一节手动关掉。

Mac 关闭代理后无法上网怎么办?

到 系统设置 → 网络 → 详细信息 → 代理,把网页代理、安全网页代理和 SOCKS 代理全部关掉,或者用文中的 networksetup 命令关。

在线客服
正在加载...