React应用公网IP访问提示ERR_CONNECTION_REFUSED问题排查与解决
问题原因分析
- React开发服务器默认仅绑定
localhost(127.0.0.1),不会监听公网IP或0.0.0.0,导致本机用公网IP访问时无法建立连接。 - 你的公网IP可能是运营商NAT转换后的网关地址,本机实际并未直接绑定该公网IP,属于内网设备,用公网IP访问会被路由拦截。
- 部分React开发服务器版本的安全策略限制了非localhost的访问请求。
解决方法
修改开发服务器绑定地址
在启动命令中添加--host 0.0.0.0参数,让服务器监听所有网卡:- 临时启动:
HOST=0.0.0.0 npm start - 永久修改(编辑package.json):
"scripts": { "start": "react-scripts start --host 0.0.0.0" }
修改后重启服务,即可用本机内网IP或公网IP(如果本机直接绑定的话)访问。
- 临时启动:
确认公网IP归属
执行ip addr命令查看本机网卡的IP列表,若公网IP不在其中,说明这是运营商的NAT地址,此时同一设备上可以改用本机内网IP(比如192.168.x.x)访问,无需用公网IP。临时关闭开发服务器的主机检查(仅开发环境)
如果绑定0.0.0.0后仍无法访问,可能是安全策略拦截,可临时关闭主机检查:DANGEROUSLY_DISABLE_HOST_CHECK=true npm start注意:此选项仅用于开发测试,生产环境严禁使用,会带来安全风险。
内容的提问来源于stack exchange,提问作者Bear Bile Farming is Torture
相关产品推荐
相关产品推荐

