智汇百科
霓虹主题四 · 更硬核的阅读氛围

终端窗口查端口占用:几行命令快速定位谁在抢你的 3000 端口

发布时间:2026-04-30 09:31:36 阅读:3 次

开发时本地起个 npm start,浏览器一刷——报错:ERR_ADDRESS_IN_USE。刷新几次还是一样,八成是端口被占了。这时候别急着重启电脑,打开终端,三步搞定。

先看哪个端口被占了

常见场景比如:Vue 项目默认用 8080,React 用 3000,后端服务常用 8081、9000。先确认你想要的端口是不是真被占了:

lsof -i :3000

Mac/Linux 用户直接运行这句,如果返回一行进程信息,说明 3000 端口正被某个程序占着;没输出就代表空闲。Windows 用户请用:

netstat -ano | findstr :3000

注意末尾的冒号和端口号之间不能有空格,findstr 后面是英文冒号加数字。

找到进程,直接干掉

Mac/Linux 下,lsof 输出里有一列叫 PID(进程 ID),记下来,然后执行:

kill -9 12345

12345 换成你看到的实际 PID。Windows 下从 netstat 结果里找到最后一列的 PID,再运行:

taskkill /PID 12345 /F

/F 是强制结束,基本一杀一个准。

懒得记 PID?一键查杀组合技

Mac/Linux 用户可以写成一行(适合复制粘贴):

lsof -t -i :3000 | xargs kill -9

这句意思是:查出 3000 端口的 PID,直接传给 kill 杀掉。如果提示 lsof: command not found,先装一下:brew install lsof(Mac)或 sudo apt install psmisc(Ubuntu)。

小提醒:别乱杀系统进程

查到 PID 后,建议先用 ps -p 12345 -o comm=(Mac/Linux)或 tasklist /FI "PID eq 12345"(Win)看看进程名。如果是 Google ChromeCode Helper 占着,可能只是某个网页或插件在调试,关掉对应标签页或扩展更稳妥;但如果是 nodejavapython 这类明显是你自己起的服务,放心杀。

下次再遇到「端口已被占用」,不用翻文档、不用重装软件,开终端,敲两行,秒恢复。