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

Linux

使用 netstat 查看

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

1
2
3
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)是一个列出系统上被进程打开的文件的相关信息。

1
2
3
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来安装。

 

杀死进程

1
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 @   程序生(Codey)  阅读(374)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!
点击右上角即可分享
微信分享提示