ERR_CONNECTION_REFUSED表示服务器主动拒绝连接,需先判断是全局还是单点故障;再检查代理设置、清除浏览器缓存与Cookies、刷新并更换DNS;若为本地开发,需确认服务绑定0.0.0.0、端口监听正常且防火墙放行。

当你在谷歌浏览器中输入网址后,页面突然弹出“ERR_CONNECTION_REFUSED”红色报错,说明浏览器已发出连接请求,但目标服务器明确拒绝了该请求——不是打不开、不是超时,而是被直接拒之门外。这通常不是你网络断了,而是连接路径上的某个环节主动拦下了请求。
先确认是全局问题还是单点故障
打开新标签页,访问百度、GitHub 或任意其他网站。如果全都打不开,问题出在你的本地网络或系统层面;如果只有特定网址报错,重点排查该服务本身或你本机对它的访问限制。
用手机连同一Wi-Fi访问同一个网址,能打开就排除服务器宕机,问题锁定在你电脑的配置或软件干扰上。
检查并关闭系统代理设置
错误的代理配置会让所有流量被强行转发到一个根本不存在或已关闭的中间服务器,结果就是连接被拒。
在Chrome右上角点击三个点 → 设置 → 系统 → 打开计算机的代理设置。
进入macOS网络设置(或Windows设置→网络和Internet→代理)后,确保【网页代理(HTTP)、安全网页代理(HTTPS)、FTP代理】全部未勾选,同时关闭“自动发现设置”和“使用自动配置脚本”。
改完立刻点“好”保存,不要跳过这步——很多用户改完没点确认,以为生效了。
清除浏览器缓存与Cookies
损坏的Cookie可能携带过期会话令牌,触发服务器端的主动拒绝;陈旧的缓存文件也可能让Chrome尝试复用一条已被服务器废弃的连接通道。
地址栏输入 chrome://settings/clearBrowserData → 回车 → 时间范围选“全部时间” → 勾选“Cookie及其他网站数据”和“缓存的图片和文件” → 点击“清除数据”。
注意:不要勾选“密码”,否则会永久丢失已保存的账号密码。
刷新本地DNS缓存并更换DNS服务器
第一步:刷新DNS缓存
macOS终端执行:
sudo dscacheutil -flushcache && sudo killall -HUP mDNSResponder
Windows命令提示符(管理员)执行:
ipconfig /flushdns
第二步:更换DNS
进入系统网络设置 → 当前Wi-Fi/以太网连接 → 详细信息 → DNS → 删除所有现有条目 → 添加两行:
8.8.8.8
8.8.4.4
保存后重启Chrome,再试一次。
排查服务器端是否监听正确地址与端口
如果你正在本地开发(比如启动了localhost:3000的React项目),ERR_CONNECTION_REFUSED大概率是因为服务只绑定了127.0.0.1,无法响应外部请求。
方法一:检查服务监听地址
Node.js项目中确认启动代码为 app.listen(3000, '0.0.0.0'),而非 app.listen(3000)(后者默认绑定127.0.0.1)。
方法二:验证端口是否真在监听
macOS/Linux终端运行:
lsof -i :3000
Windows命令提示符运行:
netstat -ano | findstr :3000
若无输出,说明服务根本没起来,或端口被占用了。
方法三:检查防火墙是否放行
macOS:系统设置→隐私与安全性→防火墙→防火墙选项→确保对应服务或端口已勾选允许。
Windows:控制面板→系统和安全→Windows Defender防火墙→高级设置→入站规则→新建规则→端口→TCP→特定本地端口(如3000)→允许连接。











