React Native中如何释放已被占用的8081端口?
解决8081端口被占用(EADDRINUSE)的终极方案
一、精准定位并杀死占用端口的进程
之前的killall node可能没覆盖到非node进程,直接精准定位:
- Linux/macOS:执行
lsof -i :8081,输出里会显示占用端口的进程PID和名称,找到后用kill -9 <PID>强制杀死(把<PID>换成实际数字) - Windows:执行
netstat -ano | findstr ":8081"拿到PID,再用taskkill /F /PID <PID>强制终止进程
二、临时换端口启动项目
如果不想折腾杀进程,直接指定其他端口启动:
- 执行
npm start -- --port 8082(React Native、Vue等多数前端项目支持该参数) - 也可以修改项目配置文件:比如React Native在
app.json里添加"port": 8082;Vue在vue.config.js中配置devServer: { port: 8082 }
三、排查移动端相关端口冲突(针对跨端项目)
如果是React Native这类依赖adb的项目:
- 清除所有adb反向代理:
adb reverse --remove-all - 重启adb服务:
adb kill-server && adb start-server - 关闭模拟器、第三方手机管理工具等可能占用adb端口的程序
四、排查系统级进程占用
如果以上方法都无效,可能是系统服务占用端口:
- Linux/macOS用
sudo lsof -i :8081查看系统级进程(需要sudo权限),找到后终止对应的服务 - Windows打开任务管理器,切换到「详细信息」,根据之前拿到的PID找到进程并结束
内容的提问来源于stack exchange,提问作者user20712518
相关产品推荐
相关产品推荐

