跳到主要内容

查看端口占用及杀死指定进程

通过端口号杀死指定进程的一般步骤如下:

1、使用 netstat 命令查看指定端口进程信息

语法如下:

netstat -ano | findstr "端口号"

以 80 端口为例,其中最后一列即是进程ID(PID):

C:\Windows\system32>netstat -ano | findstr "80" | findstr "LISTEN"
TCP 0.0.0.0:7680 0.0.0.0:0 LISTENING 22412
TCP 0.0.0.0:8086 0.0.0.0:0 LISTENING 13148
TCP 127.0.0.1:28317 0.0.0.0:0 LISTENING 4280
TCP 172.21.11.26:5809 0.0.0.0:0 LISTENING 14324
TCP [::]:7680 [::]:0 LISTENING 22412
TCP [::]:8086 [::]:0 LISTENING 13148

在示例中额外增加了 LISTEN 条件过滤只显示 LISTENING 状态的网络连接信息。

2、使用 tasklist 命令反查进程信息

语法如下:

tasklist /FI "PID eq <PID>"

得到进程ID之后还需要使用 tasklist 命令查看对应的进程信息,防止错误:

C:\Windows\system32>tasklist /FI "PID eq 22412"

映像名称 PID 会话名 会话# 内存使用
========================= ======== ================ =========== ============
svchost.exe 22412 Services 0 17,220 K

3、使用 taskkill 杀死指定进程

语法如下:

taskkill /f /t /pid 进程ID

进程确认无误之后,就可以使用 taskkill 杀死该进程了:

C:\Windows\system32>taskkill /f /t /pid 22412

netstat 命令使用帮助

C:\Users\ituknown>netstat -help

显示协议统计信息和当前 TCP/IP 网络连接。

NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p proto] [-r] [-s] [-t] [-x] [-y] [interval]

-a 显示所有连接和侦听端口。
-b 显示在创建每个连接或侦听端口时涉及的
可执行文件。在某些情况下,已知可执行文件托管
多个独立的组件,此时会
显示创建连接或侦听端口时
涉及的组件序列。在此情况下,可执行文件的
名称位于底部 [] 中,它调用的组件位于顶部,
直至达到 TCP/IP。注意,此选项
可能很耗时,并且可能因为你没有足够的
权限而失败。
-e 显示以太网统计信息。此选项可以与 -s 选项
结合使用。
-f 显示外部地址的完全限定
域名(FQDN)
-n 以数字形式显示地址和端口号。
-o 显示拥有的与每个连接关联的进程 ID。
-p proto 显示 proto 指定的协议的连接;proto
可以是下列任何一个: TCP、UDP、TCPv6 或 UDPv6。如果与 -s
选项一起用来显示每个协议的统计信息,proto 可以是下列任何一个:
IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 或 UDPv6。
-q 显示所有连接、侦听端口和绑定的
非侦听 TCP 端口。绑定的非侦听端口
不一定与活动连接相关联。
-r 显示路由表。
-s 显示每个协议的统计信息。默认情况下,
显示 IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 和 UDPv6 的统计信息;
-p 选项可用于指定默认的子网。
-t 显示当前连接卸载状态。
-x 显示 NetworkDirect 连接、侦听器和共享
终结点。
-y 显示所有连接的 TCP 连接模板。
无法与其他选项结合使用。
interval 重新显示选定的统计信息,各个显示间暂停的
间隔秒数。按 CTRL+C 停止重新显示
统计信息。如果省略,则 netstat 将打印当前的
配置信息一次。

在实际中使用居多的是如下两种形式:

netstat -ano # 查看所有进程信息
netstat -anop [TCP|UDP|TCPv6|UDPv6] # 查看执行协议的进程信息