命令netstat监控TCP/IP网络的非常有用的工具

  • 中文名:网络信息统计
  • netstat命令的功能是显示网络连接、路由表和网络接口信息,可以让用户得知有哪些网络连接正在运作。 使用时如果不带参数,netstat显示活动的 TCP 连接。
  • netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。

该命令的一般格式为 :

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

选项:
命令中各选项的含义如下:

  • -a 显示所有socket,包括正在监听的。
  • -n 以数字形式显示地址和端口号。
  • -r 显示核心路由表,格式同“route -e”。
  • -t 显示当前连接卸载状态。
  • -v 显示正在进行的工作。
  • -p proto 显示proto指定的协议的连接。
  • -b 显示在创建每个连接或侦听端口时涉及的可执行程序。
  • -e 显示以太网统计。此选项可以与 -s 选项结合使用。
  • -f 显示外部地址的完全限定域名(FQDN)。
  • -o 显示拥有的与每个连接关联的进程PID。
  • -q 显示所有连接、侦听端口和绑定的非侦听 TCP 端口。
  • -s 显示每个协议的统计。
  • -x 显示 NetworkDirect 连接、侦听器和共享端点。
  • -y 显示所有连接的 TCP 连接模板。无法与其他选项结合使用。

常见状态:

  • LISTEN 侦听来自远方的TCP端口的连接请求
  • SYN-SENT 在发送连接请求后等待匹配的连接请求
  • SYN-RECEIVED 在收到和发送一个连接请求后等待对方对连接请求的确认
  • ESTABLISHED 代表一个打开的连接
  • FIN-WAIT-1 等待远程TCP连接中断请求,或先前的连接中断请求的确认
  • FIN-WAIT-2 从远程TCP等待连接中断请求
  • CLOSE-WAIT 等待从本地用户发来的连接中断请求
  • CLOSING 等待远程TCP对连接中断的确认
  • LAST-ACK 等待原来的发向远程TCP的连接中断请求的确认
  • TIME-WAIT 等待足够的时间以确保远程TCP接收到连接中断请求的确认
  • CLOSED 没有任何连接状态

日常使用:

查询每个端口占用情况netstat -ano

PS C:\> netstat -ano

活动连接

  协议    本地地址                外部地址                状态           PID
  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING       8
  TCP    0.0.0.0:443            0.0.0.0:0              LISTENING       6100
  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING       4
  TCP    0.0.0.0:902            0.0.0.0:0              LISTENING       5064
  TCP    0.0.0.0:912            0.0.0.0:0              LISTENING       5064
  TCP    0.0.0.0:1536           0.0.0.0:0              LISTENING       812
  TCP    0.0.0.0:1537           0.0.0.0:0              LISTENING       712
  TCP    0.0.0.0:1538           0.0.0.0:0              LISTENING       1704
  TCP    0.0.0.0:1539           0.0.0.0:0              LISTENING       1584
  TCP    0.0.0.0:1540           0.0.0.0:0              LISTENING       4132
  TCP    0.0.0.0:1542           0.0.0.0:0              LISTENING       784
  TCP    0.0.0.0:1543           0.0.0.0:0              LISTENING       3352
  TCP    0.0.0.0:3306           0.0.0.0:0              LISTENING       24280
  TCP    0.0.0.0:5040           0.0.0.0:0              LISTENING       7352
  TCP    0.0.0.0:5236           0.0.0.0:0              LISTENING       4584
  TCP    0.0.0.0:5237           0.0.0.0:0              LISTENING       4616
  TCP    0.0.0.0:54321          0.0.0.0:0              LISTENING       4412
  TCP    10.50.22.167:139       0.0.0.0:0              LISTENING       4
   ...
   ...

查看指定端口占用情况,比如查看3306端口

使用命令
netstat -aon|findstr "3306"
findstr相当于linux系统中的grep
输出:

  C:\> netstat -aon|findstr "3306"
  TCP    0.0.0.0:3306           0.0.0.0:0              LISTENING       24280
  TCP    10.50.22.167:13306     220.181.38.149:443     TIME_WAIT       0
  TCP    [::]:3306              [::]:0                 LISTENING       24280

可以看到3306端口已经被占用,正在被进程号为24280的进程监听。

查看PID对应的进程

tasklist命令的作用是:显示应用程序和本地或远程系统上运行的相关任务/进程的列表。
更多的帮助信息,可以在cmd中输入tasklist /?来获得

例如,查看上面3306端口对应进程:
上面3306端口进程PID=24280
使用命令:

tasklist|findstr "24280"

task为前缀的命令都和任务管理器(进程管理器)有关,比如命令窗口输入taskmgr会打开任务管理器窗口。
输出:

PS C:\Users\Administrator> tasklist|findstr "24280"
mysqld.exe                   24280 Services                   0      6,884 K

可以看到是mysql.exe程序使用24280进程,占用3306端口。
注意:
此处也可以打开任务管理器界面,查看。

终止进程

taskkill是用来终止进程的。
具体的命令规则如下:
TASKKILL [/S system [/U username [/P [password]]]]
描述:一个或多个任务或进程结束。 可以按进程 ID 或映像名(Image)结束进程。
参数列表:

  • /S system 指定要连接到的远程系统。
  • /U [domain]user 指定应该在哪个用户上下文执行这个命令。
  • /P [password] 为提供的用户上下文指定密码。如果忽略,提示输入。
  • /F 指定要强行终止的进程。
  • /FI filter 指定筛选进或筛选出查询的的任务。
  • /PID process id 指定要终止的进程的PID。
  • /IM image name 指定要终止的进程的映像名称。通配符 '*'可用来指定所有映像名。
  • /T Tree kill: 终止指定的进程和任何由此启动的子进程。
  • /? 显示帮助/用法。
    例如:
TASKKILL /S system /F /IM notepad.exe /T
TASKKILL /PID 1230 /PID 1241 /PID 1253 /T
TASKKILL /F /IM QQ.exe

实际应用:
tomcat启动报错

处理方法

posted on 2021-04-13 17:11  哑吧  阅读(582)  评论(0编辑  收藏  举报