Mac OS本地代理出现connect ECONNREFUSED ::1:3000问题求助
问题解决方案
核心原因分析
报错connect ECONNREFUSED ::1:3000说明代理在尝试通过**IPv6地址(::1)**连接3000端口,但你的React应用可能只监听了IPv4的127.0.0.1,未监听IPv6地址。Mac系统默认优先将localhost解析为IPv6的::1,导致连接失败;而Ubuntu和Windows的localhost解析优先级或应用监听配置与Mac不同,因此能正常运行。
解决方法
修改React应用的监听地址
在create-react-app的启动命令中强制指定IPv4地址:HOST=127.0.0.1 npm start也可在项目根目录的
.env文件中添加配置:HOST=127.0.0.1这样应用会绑定到
127.0.0.1,代理请求时可通过IPv4正常连接。调整代理服务器的目标地址
无需改动React应用配置,直接将代理的目标地址从localhost:3000改为127.0.0.1:3000,强制代理使用IPv4发起请求,绕开Mac的IPv6解析优先级问题。修改Mac的localhost解析优先级
编辑/etc/hosts文件,确保127.0.0.1排在::1之前:127.0.0.1 localhost ::1 localhost保存后刷新DNS缓存:
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder此方法会让系统优先将
localhost解析为IPv4地址,适用于所有依赖localhost解析的场景。
验证步骤
修改完成后,重启React应用和代理服务器,再次请求localhost:4000/,确认是否正常返回index.html文件。
内容的提问来源于stack exchange,提问作者deithy
相关产品推荐
相关产品推荐

