欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

怎么查看端口占用情况? 博客分类: windowAix WindowsCC++C#

程序员文章站 2024-03-23 18:50:46
...
       开始--运行--cmd 进入命令提示符 输入netstat -ano 即可看到所有连接的PID 之后在任务管理器中找到这个PID所对应的程序如果任务管理器中没有PID这一项,可以在任务管理器中选"查看"-"选择列"

        经常,我们在启动应用的时候发现系统需要的端口被别的程序占用,如何知道谁占有了我们需要的端口,很多人都比较头疼,下面就介绍一种非常简单的方法,希望对大家有用

假如我们需要确定谁占用了我们的9050端口

1、Windows平台
在windows命令行窗口下执行:

C:\>netstat -aon|findstr 9050

TCP    127.0.0.1:9050         0.0.0.0:0              LISTENING       2016


看到了吗,端口被进程号为2016的进程占用,继续执行下面命令:

C:\>tasklist|findstr 2016

tor.exe                     2016 Console                 0     16,064 K

很清楚吧,tor占用了你的端口。

2、Aix平台
A. netstat -Aan|grep <portnumber>
找到该端口连接对应的 PCB/ADDR 和连接的协议类型。

注:PCB ----Protocol Control Block

B. 如果是 tcp 连接,则 rmsock <PCB/ADDR> tcpcb
如果是 udp 连接,则 rmsock <PCB/ADDR> inpcb

下面我们以 telnet 服务所使用的 23 号端口为例,说明该方法:
#netstat -Aan|grep 23
f1000200019ce398 tcp 0 0 *.23 *.* LISTEN
可以看到 PCB/ADDR 为 f1000200019ce398 ,且协议类型为 tcp 。

#rmsock f1000200019ce398 tcpcb
The socket 0x19ce008 is being held by proccess 185006 (inetd).
命令报告该端口正在被 inetd 进程使用, PID 为 185006 。

注意: rmsock 命令需要 root 权限执行。

C.Aix上查看进程
ps -ef
ps -ef|grep PID(上面显示的进程号)

D.关闭进程
kill -9 PID(上面显示的进程号)