如何查看某个端口被谁占用
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的主进程,与上面命令查看的完全一致。