一、背景
作为一名开发,我们是不是经常遇到端口被占用了,比如80,8080等,但是我们却不知道是那个工程启动,对小白来说,估计会很苦恼,网上搜索也很麻烦处理,网上推荐也是如下步骤:
-
查看端口占用情况:可以使用命令行工具如netstat、lsof等来查看当前系统中所有正在占用的端口情况。
-
终止占用端口的进程:可以使用Task Manager(Windows系统)或者Activity Monitor(Mac系统)来查找占用该端口的进程,并结束该进程。
-
修改端口号:如果无法终止占用端口的进程,可以尝试将该端口号修改为其他未占用的端口号。
-
重启计算机:如果以上方法都无法解决问题,可以尝试重启计算机,这样可以释放所有占用的端口。
大家是不是觉得很麻烦呢?本文最后推荐终极小工具一键直接关闭端口,十分方便,请阅读完哦。
二、解决方案
我们先说一下上述常规的解决方案,是如何通过命令解决端口占用的,已关闭9901端口为例。
打开CMD控制台:
使用命令查看9901端口是被那个进程占用了:
netstat -nao | findstr "9901"
这时候其实我不知道这端口被那个程序占用,我们看到被4676这个进程监听了,可以看一下该线程具体是那个任务:
tasklist | findstr "4676"
我们可以看到是被java程序占用了,如果可以看出是那个程序,可以直接去任务管理器强制关闭,但是我们可以直接在cmd,关闭该进程:
taskkill -pid 4676 -f
所以,其实上面关闭端口实际只要两步操作就可以,查找端口对应的pid(被监听的线程)——> 杀死该pid。
三、终极方案——一键关闭小工具
由于上面传统关闭端口方法,必须得记住相关命令,挺麻烦的,所以直接根据上述命令写了个工具,写成bat脚本,可以双击一键输入端口,然后输入P端口PID关闭进程,不用每次都是打开cmd输入命令,输入命令行,简便了操作。
工具下载地址:https://download.csdn.net/download/qi_ming88/12465022
双击打开bat文件,输入想要关闭的端口,比如关闭9901:
可以看到9901对应的端口的pid是17704,输入对应的pid:
是不是十分方便呢,只要点点,傻瓜式操作即可以完成端口关闭。