如何查看某个端口被谁占用

Linux

使用 netstat 查看

netstat 能够显示网络连接、路由表、接口统计信息、伪装连接以及多播成员。目前netstat 已经过时了,都推荐使用ss来代替。

netstat -tnlp | grep :22

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 6806/sshd tcp6 0 0 :::22 :::* LISTEN 6806/sshd

同理,要查看到所有程序需要有root权限。

 

使用 lsof 查看

lsof(list open files)是一个列出系统上被进程打开的文件的相关信息。

lsof -i tcp:22

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEsshd 6806 root 3u IPv4 147399 0t0 TCP *:ssh (LISTEN)sshd 6806 root 4u IPv6 147401 0t0 TCP *:ssh (LISTEN)

同理,要查看到所有程序需要有root权限。

注:如果没有lsof这个命令,CentOS可以用yum install lsof来安装。

 

杀死进程

kill -9 8606

 8606键入对应的PID

 

Window

cmd输入命令:netstat -ano,列出所有端口的情况。

查看被占用端口对应的PID,输入命令:netstat -aon|findstr "9000"

回车,记下最后一位数字,即PID,这里是4812

继续输入tasklist|findstr "4812",回车,查看是哪个进程或者程序占用了4812端口,结果是:ZendStudio.exe

结束该进程:在任务管理器中选中该进程点击”结束进程“按钮,或者是在cmd的命令窗口中输入:taskkill /f /t /im ZendStudio.exe

 

或者是我们打开任务管理器,切换到进程选项卡,在PID一列查看2720对应的进程是谁,如果看不到PID这一列,如下图:

 

则我们点击查看--->选择列,将PID(进程标示符)前面的勾打上,点击确定。

 

这样我们就看到了PID这一列标识,看一下2720对应的进程是谁,如果没有,我们把下面的显示所有用户的进程前面的勾打上,就可以看到了,映像名称是svchost.exe,描述是,Windows的主进程,与上面命令查看的完全一致。

 

 

posted @ 2017-09-13 14:57  程序生(Codey)  阅读(371)  评论(0编辑  收藏  举报