用 lsof -i :端口号 可查占用进程,如 lsof -i :3000;需权限时加 sudo;查多端口用多个 -i 参数;加 -t 参数仅输出 pid,便于 kill 释放端口。
直接用 lsof -i :端口号 就能查到。这是 macos 终端里最常用、最可靠的方式。
快速定位占用进程(推荐单条命令)
在终端中输入:
lsof -i :3000(把 3000 换成你要查的实际端口)
如果端口被占用,会列出类似这样的信息:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
node 12345 yourname 21u IPv6 0x... 0t0 TCP *:http-alt (LISTEN)
重点关注 PID(进程 ID)和 COMMAND(进程名),它们告诉你谁在用这个端口。
需要更高权限时加 sudo
有些系统进程或守护程序可能普通用户看不到,这时加上 sudo:
sudo lsof -i :8080
系统会提示输入密码,输完回车即可。注意:不是所有端口都需要 sudo,开发常用端口(如 3000、5000、8080)多数情况下不加也能看到。
一次查多个端口
想同时检查几个端口是否空闲,可以连写多个 -i 参数:
lsof -i :3000 -i :5001 -i :8000
有输出的说明被占用了,没输出就代表该端口当前空闲。
只想拿到 PID(方便后续 kill)
如果只关心进程号,不想看一堆列,用 -t 参数精简输出:
- lsof -t -i :3000 → 直接返回数字,比如 12345
- 再执行 kill -9 12345 就能立刻释放端口











