如何用DOS命令查看占用某端口的程序及PID号

如何用DOS命令查看占用某端口的程序及PID号,第1张

1 查看端口占用

在windows命令行窗口下执行:

netstat -aon|findstr "8080"

TCP 127001:80 0000:0 LISTENING 2448

端口“8080”被PID(进程号)为2448的进程占用。

查看端口“8080”被哪个应用占用,,继续执行下面命令:

tasklist|findstr "2448"

notepadexe 2016 Console 0 16,064 K

2 关闭进程

21 按进程号关闭进程

taskkill /pid 2152

多个时格式为:

taskkill /pid 2152 /pid 1284

22 按进程名关闭进程

如要关闭notepadexe,格式为:

taskkill /im notepadexe

指定多个时格式为:

taskkill /im notepadexe /im iexplorerexe

如果是要关闭所有的,则使用通配符,即:

taskkill /im exe

23 有提示的关闭进程

taskkill /t /im notepadexe

taskkill /t /pid 2152

这个效果是提示后在使用者确定后关闭,有提示框。

24 强行终止进程

taskkill /f /im notepadexe

taskkill /f /pid 2152

如我想查看自己电脑的18084端口是否被占用

图中显示有记录,证明是被占用的,而且占用的程序进程号pid为:19084

在图中可以看到进程号pid为19084的应用程序为javaexe,说明这是个在jvm运行的java程序在占用18084端口

(2)使用任务管理器关闭

因为上面用命令关闭了一次,再启动javaexe程序后,pid进程号变成了:28932

找到这个pid对应的应用,右击点结束任务即可

linux下的比较简单

直接netstat 查看,kill杀掉进程即可

查看端口对应的pid对应的应用程序

ps -ef|grep 11748

linux经常会查询端口是否被占用,被哪些程序占用。

这里使用 netstat 命令查看centos系统的端口占用情况。

(1)查看全部端口占用情况

执行命令:

结果如下:

可以看到:

3306端口 :被 tcp 协议的 PID 为10818的mysqld所占用,State为LISTEN表示正在 被监听 。

1596端口 :被 udp 协议的 PID 为1596的chronyd所占用,State为空(state为当前连接状态,udp协议无连接状态)。

(2)查询指定端口的占用情况

如查询 3306 端口的占用情况,可看到如下记录为

(3)查询占用端口的程序

可通过上述查询结果的PID查询占用程序的详细情况:

如查询占用3306端口的程序PID为 10818 ,查看程序详情如下:

常用参数说明如下:

-t :显示TCP协议端口

-u :显示UDP协议端口

-l :--listening,只显示正在侦听的套接字(这是默认的选项)

-p : --program,显示套接字所属进程的PID和名称。

-n :--numeric,显示数字形式地址而不是去解析主机、端口或用户名。

查看所有命令详细用法:

State:套接字的状态。因为在RAW协议中没有状态,而且UDP也不用状态信息,所以此行留空。通常它为以下几个值之一:

ESTABLISHED:套接字有一个有效连接。

SYN_SENT:套接字尝试建立一个连接。

SYN_RECV:从网络上收到一个连接请求。

FIN_WAIT1:套接字已关闭,连接正在断开。

FIN_WAIT2:连接已关闭,套接字等待远程方中止。

TIME_WAIT:在关闭之后,套接字等待处理仍然在网络中的分组

CLOSED:套接字未用。

CLOSE_WAIT:远程方已关闭,等待套接字关闭。

LAST_ACK:远程方中止,套接字已关闭。等待确认。

LISTEN :套接字监听进来的连接。如果不设置 --listening (-l) 或者 --all (-a) 选项,将不显示出来这些连接。

CLOSING:套接字都已关闭,而还未把所有数据发出。

UNKNOWN:套接字状态未知。

有时启动应用时会发现端口已经被占用,或者是感觉有些端口自己没有使用却发现是打开的。这时我们希望知道是哪个应用/进程在使用该端口。\x0d\CentOS下可以用netstat或者lsof查看,Windows下也可以用netstat查看,不过参数会不同\x0d\Linux:\x0d\netstat-nap#会列出所有正在使用的端口及关联的进程/应用\x0d\lsof-i:portnumber#portnumber要用具体的端口号代替,可以直接列出该端口听使用进程/应用\x0d\一、检查端口被哪个进程占用\x0d\代码如下复制代码\x0d\\x0d\netstat-lnp|grep88#88请换为你的apache需要的端口,如:80\x0d\\x0d\SSH执行以上命令,可以查看到88端口正在被哪个进程使用。如下图,进程号为1777。\x0d\\x0d\二、查看进程的详细信息\x0d\ps1777\x0d\SSH执行以上命令。查看相应进程号的程序详细路径。如下图。\x0d\\x0d\三、杀掉进程,重新启动apache\x0d\代码如下复制代码\x0d\kill-91777#杀掉编号为1777的进程(请根据实际情况输入)\x0d\service>

1

开始----》运行----》cmd,调出命令窗口。

2

输入命令:netstat -ano,列出所有端口的情况。在列表中我们观察被占用的端口,比如是49153,首先找到它。

3

查看被占用端口对应的PID,输入命令:netstat -aon|findstr "49153",回车,记下最后一位数字,即PID,这里是1008。

4

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

5

或者是我们打开任务管理器也能根据PID找到进程。打开任务管理器切换到进程选项卡,默认是没有打开PID列的,如果看不到PID这一列,如下图,将PID(进程标示符)前面的勾打上,点击确定。

6

我们看到确定后能看到PID列了,如下图。

7

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

8

如果确定这个进程不用之后,我们右键就可以在进程管理器上关闭掉。由于这个进程是系统进程我们就不能关闭了,如果电脑上打开了应用程序占用了其他端口,确定没用使用的话就可以用上述方法进行查找并关闭。

END

在网络程序的调试过程中,经常发生一些出乎意料的事情,比如创建一个TCP服务失败,这时候往往需要查看系统的网络情况,最常用的网络抓包当然非WireShark模式。但往往很多时候只需要查看某个端口的使用情况,它到底被那个进程(对应PID)占用了,或者你还需要把它Kill掉。如果你在Windows *** 作系统,你可以使用netstat命令来查询PID,然后可以打开任务管理器,查看这个PID对应的进程名;如果PID没有显示,菜单》查看》选择列》选中PID即可;得知进程后,我们可以将进程杀掉。下面我简单描述一下我所了解的在Windows和Linux系统下处理方式。 (假如我们需要确定谁占用了我们的9010端口)1、Windows平台在windows控制台窗口下执行:netstat -nao | findstr 9010TCP 127001:9010 0000:0 LISTENING 3017你看到是PID为3017的进程占用了9010端口,如果进一步你想知道它的进程名称,你可以使用如下命令:tasklist | findstr 3017如果你想杀死这个进程,你当然可以用前面描述的那种方法,在任务管理器里把它KILL了,但如果你喜欢高效一点,那么用taskkill命令就可以了。taskkill /pid 3017那么这个进程就灰灰湮灭了:)2、Linux如果你是个Linux爱好者,那个这个命令你应该很熟了,netstat -pan | grep 9010如果你稍微仔细一点,你会发现,用的都是netsta命令,事实上,netstat是一个比较通用的网络统计命令,几乎适用于所有现在流行的 *** 作系统,无论是Linux,Window,还是其他Unix,或者Unix-like *** 作系统,而且用法基本一致。下面是一个对Windows系统中netstat命令行参数的详细解释。格式:netstat [-a] [-e] [-n] [-o] [-p Protocol] [-b] [-r] [-s] [-v] [Interval]参数说明:-a 显示所有连接和监听端口。-n 以数字形式显示地址和端口号。-o 显示与每个连接相关的所属进程 ID。-p 在Windows系统中,该选项用于指定默认情况的子集。proto 显示 proto 指定的协议的连接;proto 可以是下列协议之一: TCP、UDP、TCPv6 或 UDPv6。如果与 -s 选项一起使用以显示按协议统计信息,proto 可以是下列协议之一:IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 或 UDPv6。-b 显示包含于创建每个连接或监听端口的可执行组件。在某些情况下已知可执行组件拥有多个独立组件,并且在这些情况下; 包含于创建连接或监听端口的组件序列被显示。这种情况下,可执行组件名在底部的 [] 中,顶部是其调用的组件,等等,直到 TCP/IP 部分。注意此选项可能需要很长时间,如果没有足够权限可能失败。-e 显示以太网统计信息。此选项可以与 -s选项组合使用。-s 显示按协议统计信息。默认地,显示 IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 和 UDPv6 的统计信息。-r 显示路由表。-v 与 -b 选项一起使用时将显示包含于为所有可执行组件创建连接或监听端口的组件。interval 重新显示选定统计信息,每次显示之间暂停时间间隔(以秒计)。按 CTRL+C 停止重新显示统计信息。如果省略,netstat 显示当前配置信息(只显示一次)。

以上就是关于如何用DOS命令查看占用某端口的程序及PID号全部的内容,包括:如何用DOS命令查看占用某端口的程序及PID号、查看某个端口是否被占用及其占用应用、centos查看端口占用情况等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9357424.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存