你有没有遇到过这种情况:想启动一个本地服务,比如运行一个网站项目,结果提示“端口已被占用”,但又不知道是谁在用?其实用控制台就能快速查到哪个程序占了哪个端口,不用装额外软件,简单又高效。
Windows 上怎么查端口占用
打开命令提示符(按 Win + R,输入 cmd 回车),然后输入下面这条命令:
netstat -ano | findstr :端口号
比如你想查 8080 端口有没有被占用,就这么写:
netstat -ano | findstr :8080
执行后会看到类似这样的输出:
TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 1234
最后那个数字 1234 是进程 PID。接着再打开任务管理器,在“详细信息”标签页里找这个 PID,就能知道是哪个程序在占着端口了。
Linux 和 macOS 上的查看方法
在终端里用 lsof 命令更方便。比如查 3000 端口:
lsof -i :3000
如果提示 command not found,可能是没安装 lsof,可以用包管理器装一下,比如 Ubuntu 上执行:
sudo apt install lsof
还有一种方式是用 netstat(部分系统默认已安装):
netstat -tulnp | grep :端口号
比如查 80 端口:
netstat -tulnp | grep :80
输出里会显示协议、本地地址、PID/程序名,一眼就能看出谁在用。
一个小场景:开发时端口冲突
假设你在写前端项目,运行 npm run dev 时提示“Port 3000 is in use”。这时候别急着重启电脑,先打开终端或命令行,用上面的方法查一下是谁占了 3000 端口。可能是上次关浏览器没关服务,也可能是同事发的测试程序还在跑。找到 PID 后,可以用命令直接杀掉:
kill -9 PID
或者 Windows 上用:
taskkill /PID 1234 /F
立马就能腾出端口,继续干活。
掌握这几个命令,以后遇到端口冲突不再瞎猜,几秒定位问题,效率提升一大截。