React前端项目服务器运行正常但浏览器无法访问问题排查
排查React项目Ubuntu部署后VPN无法访问的问题
结合你的情况,能ping通服务器但站点无法访问,服务商已开放5173端口,问题大概率不在服务商的端口策略,以下是具体排查方向:
1. 开发服务器绑定地址限制
React开发环境(比如Vite、Create React App)默认会将服务绑定到127.0.0.1,仅允许服务器本地访问,外部(包括VPN连接的客户端)无法连接。
- 检查启动命令:如果用Vite,修改
package.json中的dev脚本为:
或者启动时直接追加参数:"scripts": { "dev": "vite --host 0.0.0.0 --port 5173" }npm run dev -- --host 0.0.0.0 - 验证监听状态:在Ubuntu服务器执行
ss -tulpn | grep 5173,确认输出中的LISTEN地址是0.0.0.0:5173而非127.0.0.1:5173。
2. Ubuntu本地防火墙未放行端口
云服务商的安全组开放端口后,Ubuntu系统自带的ufw防火墙可能仍拦截5173端口:
- 查看当前防火墙规则:
sudo ufw status - 如果未看到
5173/tcp的允许规则,执行:sudo ufw allow 5173/tcp sudo ufw reload
3. VPN网络层面的限制
能ping通说明基础连通性正常,但VPN的路由、NAT策略或端口限制可能导致流量无法到达5173端口:
- 追踪端口连通性:在VPN客户端执行(Linux用
traceroute -T -p 5173 <服务器IP>,Windows用tracert -d -p 5173 <服务器IP>),查看流量在哪一段中断。 - 确认VPN策略:有些企业VPN会限制非标准端口(如5173)的流量,需要联系VPN管理员确认是否放行该端口。
4. 运行模式错误(开发vs生产)
如果是生产环境部署,不应使用开发服务器(npm run dev),这类服务器仅用于开发调试,存在访问限制且性能不足:
- 切换到生产部署流程:
- 执行
npm run build生成静态文件目录dist - 使用静态服务器部署,比如:
npm install -g serve serve -s dist -l 5173
dist目录。 - 执行
5. 浏览器端问题(缓存/模式限制)
- 尝试用浏览器隐身模式访问,排除缓存导致的旧地址失效问题。
- 检查浏览器控制台的网络请求,确认是连接超时还是有其他错误提示,辅助定位问题。
内容的提问来源于stack exchange,提问作者Razika Bentmane
相关产品推荐
相关产品推荐

