CMD 命令使用之 netstat 命令

804 阅读3分钟

1. 命令介绍

netstat 命令用于显示协议统计信息和当前 TCP/IP 网络连接。语法如下:

netstat [-a] [-b] [-e] [-f] [-n] [-o] [-p <proto>] [-q] [-r] [-s] [-t] [-x] [-y] [interval]

有下列参数:

参数描述
-a显示所有连接和侦听端口。
-b显示在创建每个连接或侦听端口时涉及的可执行文件。在某些情况下,已知可执行文件托管多个独立的组件,此时会显示创建连接或侦听端口时涉及的组件序列。在此情况下,可执行文件的名称位于底部 [] 中,它调用的组件位于顶部,直至达到 TCP/IP。注意,此选项可能很耗时,并且可能因为你没有足够的权限而失败。
-e显示以太网统计信息。此选项可以与 -s 选项结合使用。
-f显示外部地址的完全限定域名(FQDN)。
-n以数字形式显示地址和端口号。
-o显示拥有的与每个连接关联的进程 ID (PID)。
-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 将打印当前的配置信息一次。

2. 使用示例

2.1. 根据端口号找进程号

工作中经常会遇到这种情况,就是在 Windows 系统中安装一个软件,启动失败,很可能是端口号被占用导致的。这时就需要我们去查找该端口号是否被占用了。

比如我们的一个程序启动需要用到3306端口,但是启动报了端口冲突,这时我们可以查找下当前3306端口对应的是哪个进程:

(1)查找3306端口对应的进程号,PID是进程号,可以看出对应的PID号为5320

C:\Users\张三>netstat -ano | findstr 3306
  TCP    0.0.0.0:3306           0.0.0.0:0              LISTENING       5320
  TCP    0.0.0.0:33060          0.0.0.0:0              LISTENING       5320
  TCP    [::]:3306              [::]:0                 LISTENING       5320
  TCP    [::]:33060             [::]:0                 LISTENING       5320

(2)再查找PID5320对应的进程,可以看出对应的进程为mysqld.exe

C:\Users\张三>tasklist|findstr 5320
mysqld.exe                    5320 Services                   0      4,728 K

若想3306端口号不被占用,则需要在任务管理器中结束相应的进程,按快捷键Ctrl+Shift+Esc调出 Windows 任务管理器,找到mysqld.exe,右键结束进程。 在这里插入图片描述

2.2. 根据进程号找端口号

PID是进程号,现在想查看一个PID对应的进程使用的端口号是多少,比如查找PID5320的进程使用的端口号有哪些:

C:\Users\张三>netstat -ano | find "5320"
  TCP    0.0.0.0:3306           0.0.0.0:0              LISTENING       5320
  TCP    0.0.0.0:33060          0.0.0.0:0              LISTENING       5320
  TCP    127.0.0.1:49697        127.0.0.1:49698        ESTABLISHED     5320
  TCP    127.0.0.1:49698        127.0.0.1:49697        ESTABLISHED     5320
  TCP    [::]:3306              [::]:0                 LISTENING       5320
  TCP    [::]:33060             [::]:0                 LISTENING       5320

2.3. 查看所有开放端口号

查看本机都有哪些端口开放:

C:\Users\张三>netstat -anp tcp

活动连接

  协议  本地地址          外部地址        状态
  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING
  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING
  TCP    0.0.0.0:3306           0.0.0.0:0              LISTENING
  TCP    0.0.0.0:4369           0.0.0.0:0              LISTENING
  TCP    0.0.0.0:5040           0.0.0.0:0              LISTENING
  TCP    0.0.0.0:5357           0.0.0.0:0              LISTENING
  TCP    0.0.0.0:5672           0.0.0.0:0              LISTENING
  TCP    0.0.0.0:8680           0.0.0.0:0              LISTENING
  TCP    0.0.0.0:19531          0.0.0.0:0              LISTENING
  TCP    0.0.0.0:25672          0.0.0.0:0              LISTENING
  TCP    0.0.0.0:25819          0.0.0.0:0              LISTENING
  。。。