你是否遇到这样的问题,明明我都关了xx软件了,可是端口号还是被占用,别急,本文就是来帮你解决此问题的。
本文大篇幅花在windows环境的。Linux的只介绍了常见的三句命令。
本文来源于网络资料,亲测可用后总结出来
windows
netstat -ano,列出所有端口的情况
我们在写java程序经常遇到这样的情况,明明我们已经关闭了网络的端口,可是就是报错:大致意思就是该端口已经被占用。下面我们可以按照这样的方法关闭占用该端口的程序。
这里我用nodejs程序作为演示。作用是让它占据3000端口。
nodejs
360的流量防火墙看到的情况
-
netstat -aon|findstr "3000"
查看被占用端口对应的PID,输入命令:
netstat -aon|findstr "你要查找的端口号",
回车,记下最后一位数字,即PID,这里是16644。(我们只需关注listening状态下的那一行。中间那些事系统的进程。感兴趣的可以用第2中要讲的tasklist|findstr "3000"查一下,这里他们的PID是3000如图。)
查看端口好对应的PID
-
tasklist|findstr "16644"
继续输入tasklist|findstr "PID号",回车,
查看是哪个进程或者程序占用了3000端口,
结果是:node.exe
通过PID号找到程序名
-
taskkill /f /t /im node.exe
结束该进程:在任务管理器中选中该进程点击”结束进程“按钮,
或者是在cmd的命令窗口中输入:
taskkill /f /t /im 进程名字
结束node.exe
我们再回到node的启动页面,这里我是在vscode打开终端运行js程序的。
node
可以看到node.js已经被我们结束了。当然,有小伙伴可能会问,我们不是直接在启动页面停止掉就行了吗,干嘛要这麻烦的三部曲呢。原因在于,有些程序,像我们写的java网络程序,有些关了端口还在,那么这个时候该方法就不管用咯。这也是本文产生的原因。**这个操作要注意不要轻易结束你不知道的进程,有可能你随便删除的进程是系统重要的进程就出问题了。
Linux
查看端口使用情况
netstat -tlnp
查看端口占用情况
杀死进程可以
killall 进程名
比如这里结束nginx进程
killall nginx
顺带一提的是,查看某软件的文件安装在那些文件夹可用,比如这里查看nginx
rpm -ql nginx
查看nginx服务情况可用
ps aux | grep nginx
这都是很常用的命令。
本文到此就结束了。谢谢大家阅读。
网友评论