You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native启动报错:端口3000占用/换端口无法连接求助

解决React Native端口冲突&无法连接服务器问题

我之前也碰到过一模一样的坑!给你几个亲测有效的解决办法,按顺序试试:

  • 清理Metro缓存(最优先尝试)
    有时候Metro的缓存会搞出“假端口占用”的乌龙,明明端口没被进程占用却报错。先把缓存清干净再启动:

    npx react-native start --reset-cache
    

    启动时可以直接指定新端口,一步到位:

    npx react-native start --port 3001 --reset-cache
    
  • 用更精准的工具排查端口占用
    系统自带的netstat有时候会漏掉一些隐藏进程,试试这些工具:

    • Windows:打开「任务管理器→性能→打开资源监视器→网络→监听端口」,这里能看到所有正在监听的端口和对应进程,包括一些后台隐藏的。
    • macOS/Linux:用lsof命令,比netstat更靠谱:
      lsof -i :3000
      
      如果查到进程,用kill -9 <PID>杀掉(把<PID>换成查到的进程号)。
  • 修改Metro核心配置(别只改package.json)
    只改package.json里的scripts往往没用,Metro有自己的独立配置文件。在项目根目录找metro.config.js,没有的话就新建一个,添加端口配置:

    module.exports = {
      server: {
        port: 3001, // 换成你想用的端口
      },
    };
    

    保存后重启Metro,它会默认使用你指定的端口。

  • 排查设备/模拟器的网络连接问题
    换端口后连不上localhost,大概率是网络映射的问题:

    • Android模拟器:执行adb reverse tcp:3001 tcp:3001,把电脑的端口映射到模拟器内部。
    • 真机:确保手机和电脑连同一个WiFi,别用localhost,改用电脑的局域网IP(比如http://192.168.1.100:3001),在项目里调整连接地址。
    • iOS模拟器:试试重启模拟器,或者检查模拟器的网络是否和电脑共享。
  • 终极方案:重启系统/调整防火墙
    有时候系统的网络栈会抽风,重启电脑能解决很多莫名其妙的端口问题。另外可以暂时关闭防火墙,看看是不是防火墙阻止了React Native的网络请求。


内容的提问来源于stack exchange,提问作者Saurabh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:55:40