Chrome浏览器普通模式访问页面报错 ERR_CONNECTION_REFUSED 问题排查

Chrome浏览器普通模式访问页面报错 ERR_CONNECTION_REFUSED 问题排查

问题现象

访问页面时接口报错,具体表现如下:

  • Chrome 普通模式无法访问,控制台报错:
    net::ERR_CONNECTION_REFUSED
    
  • Chrome 无痕模式正常访问
  • 其他浏览器(如 Firefox、Edge)访问正常

问题原因

经过排查,发现问题是由于 Chrome 普通模式走了 Whistle 代理导致的:

  1. 根因分析:当天使用了 Whistle 进行代理,在某种未知情况下,Chrome 普通模式的请求仍然走了 Whistle 代理
  2. 错误机制:代理/规则/端口在某个时刻把请求转发错误或代理不可用,导致出现"连接被拒绝"错误
  3. 为什么其他方式正常:无痕模式和其他浏览器没有走同一套代理链路,因此不受影响

排查流程

1. 先看报错类型:判断是否为网络层问题

如果是以下错误类型,优先考虑网络相关问题:

  • ERR_CONNECTION_REFUSED(连接被拒绝)
  • ERR_TIMED_OUT(连接超时)
  • ERR_NAME_NOT_RESOLVED(域名解析失败)

结论:这类错误一般不是接口业务问题,而是代理/DNS/网络缓存相关的问题。

2. 做两个对照实验:快速定位问题范围

  • 实验一:Chrome 无痕模式打开同链接

    • 如果无痕正常 ⇒ 普通模式里有东西影响(扩展/代理/缓存)
  • 实验二:换其他浏览器打开同链接

    • 如果其他浏览器正常 ⇒ 系统网络大概率没问题,问题更偏向 Chrome 配置

3. 验证是否为代理导致(本次问题的根因)

  • 检查本机是否使用了本地代理工具(如 Whistle、Fiddler、Charles)
  • Chrome 普通模式可能配置了走代理,而代理出现问题时 ⇒ 报 ERR_CONNECTION_REFUSED

解决办法(最有效的两步)

第一步:停用代理/扩展,先恢复访问

  1. 打开 chrome://extensions/

    • 将代理、抓包、广告拦截等相关扩展全部暂时关闭
  2. 打开 chrome://settings/system

    • 检查是否启用了系统代理或 PAC
    • 如有必要,先关闭代理设置

💡 提示:如果执行这一步后页面恢复正常,基本可以确认是代理链路导致的问题。

第二步:清理 Chrome 的 DNS / 连接缓存

为防止"过一会又坏"的情况,建议清理相关缓存:

  1. 清理 DNS 缓存

    • 打开 chrome://net-internals/#dns
    • 点击 "Clear host cache"
  2. 清理 Socket 连接池

    • 打开 chrome://net-internals/#sockets
    • 点击 "Flush socket pools"
  3. 刷新页面

    • 普通刷新后如果仍有问题,尝试硬刷新
    • 打开 DevTools 后,长按刷新按钮
    • 选择 "Empty Cache and Hard Reload"

最终总结

  1. 问题本质:这次接口异常不是后端服务问题,而是 Chrome + Whistle 代理导致的网络层故障

  2. 错误表现:请求走代理后出现 ERR_CONNECTION_REFUSED(连接被拒绝)

  3. 处理流程

    • 先停用代理/相关扩展进行验证
    • 再清理 Chrome 的 DNS/Socket 缓存
  4. 后续预防

    • 恢复访问后,检查 Whistle 的端口配置、代理规则
    • 确认代理开关状态,避免后续再次出现误转发
posted @ 2026-02-04 20:26  进军的蜗牛  阅读(417)  评论(0)    收藏  举报