怎么查看端口被哪个程序占用:通过系统命令精准定位占用进程
前段时间调试本地服务的时候,端口一直提示被占用,死活启动不了项目,情急之下反复摸索实操,终于摸透了怎么查看端口被哪个程序占用的具体操作,全程都是Windows系统自带命令,不用装任何第三方工具,上手特别快。
最开始完全没思路,只知道端口冲突会导致服务启动失败,随手打开了任务管理器,盯着一堆运行程序挨个翻看。这种办法纯靠瞎猜,电脑后台运行的进程几十上百个,根本没法对应到具体端口,折腾了十几分钟,不仅没找到占用程序,还不小心关掉了两个后台必要进程,导致桌面短暂卡顿,纯属白费功夫。
后来偶然试了系统cmd命令查询,才找对了正确的路子。首先需要打开命令提示符窗口,直接在电脑左下角搜索框输入cmd,右键选择以管理员身份运行,避免权限不足导致查询失败。很多人忽略管理员权限,普通窗口查询部分隐藏进程会显示空白,查不到任何有效信息。
在弹出的黑色命令窗口里,输入netstat -ano指令,回车之后屏幕会刷新出所有正在运行的端口、端口状态以及对应的PID进程编号。密密麻麻的数据流看着很乱,但不用全部看懂,只需要找到自己报错的那个端口号就行,每一条端口记录的最后一串数字,就是对应的PID,这是定位程序的关键。
查到对应端口的PID之后,下一步就是锁定具体程序。不用切换窗口,继续在cmd界面操作,输入tasklist | findstr 空格加上刚刚复制的PID数字,回车瞬间就能跳出结果,清晰显示出占用该端口的程序名称、进程详情和内存占用情况。整个过程没有多余步骤,两步命令就能精准定位,比盲找高效太多。
试过一次错误操作,直接复制PID的时候带了空格,导致指令执行失败,页面提示参数错误。一开始以为是命令输错,反复核对大小写和符号,折腾两分钟才发现是多了无效空格,去掉空格重新执行,立马就查到了目标程序。
确认好占用端口的程序之后,就可以自行处理了。如果是无用的后台程序,直接在任务管理器的详细进程页面,根据PID找到对应进程右键结束任务就行;如果是系统必要程序,就手动修改项目的启动端口,避开冲突端口,不用强行关闭系统进程,避免电脑出问题。
全程实操下来发现,整个查询流程没有一点复杂操作,难的是一开始不知道系统自带查询命令,只会用最笨拙的肉眼排查方式浪费时间。所有操作都是原生系统功能,适配所有Windows版本,不存在版本不兼容的问题。
最后一次实操收尾,复制冲突端口对应的PID,精准输入查询指令,成功锁定了是之前未彻底关闭的本地测试服务占用端口,直接结束该进程后,重新启动项目,端口报错问题彻底消失。