Windows netstat命令详解,Windows查看网络连接

发布于:2024-07-11 ⋅ 阅读:(28) ⋅ 点赞:(0)

「作者简介」:冬奥会网络安全中国代表队,CSDN Top100,就职奇安信多年,以实战工作为基础著作 《网络安全自学教程》,适合基础薄弱的同学系统化的学习网络安全,用最短的时间掌握最核心的技术。

在这里插入图片描述

netstat 常用来查看监听端口和网络连接的情况。

参数

  • -a:显示所有连接
  • -b:显示可执行程序
  • -n:显示IP地址和端口号(默认显示主机名和协议名)
  • -o:显示进程PID
  • -p:指定协议(TCP、UDP、IP、IPv6、ICMP、ICMPv6、TCPv6 或 UDPv6)
  • -t:显示连接的卸载状态
  • -q:显示所有连接,监听端口不一定与连接相关
  • -r:显示核心路由表
  • -f:显示外部地址的完整域名
  • -e:以太网统计,配合-s
  • -s:每个协议的统计
  • -x:活动 NetworkDirect 连接、侦听器和共享端点
  • -y:显示所有连接的 TCP 连接模板

1、字段含义

netstat -bo 显示完整的字段,

在这里插入图片描述

字段解释:

  • 协议(Proto):TCP或UDP协议。
  • 本地地址(local Address):本机使用的IP地址和端口号
  • 外部地址(foreign Address):连接到远程IP地址和端口
  • 状态(State):TCP连接状态
  • PID(-o参数):进程ID
  • 可执行程序(-b参数):发起TCP连接的进程。一个进程可以打开多个端口,一个端口只能对应一个程序。

2、状态类型

状态一栏对应着TCP连接状态。因为UDP是无状态协议,不建立连接,所以状态这一栏总是空的。

2.1、TCP建立连接的5种状态

  1. CLOSED:关闭状态,TCP连接的初始状态。
  2. LISTEN:监听状态,服务端监听客户端的TCP连接请求。
  3. SYN-SENT:主动建立连接状态,「第一次握手」客户端发送建立连接请求后,等待服务端的响应。
  4. SYN-RCVD:等待连接状态,「第二次握手」服务端接受连接请求后,等待客户端确认。
  5. ESTABLISHED:数据传输状态,「第三次握手」TCP连接建立成功。

TCP三次握手与连接状态的对应关系。

在这里插入图片描述

2.2、TCP关闭连接的6种状态

  1. ESTABLISHED:数据传输状态。
  2. FIN-WAIT-1:主动关闭状态,「第一次挥手」客户端主动发送关闭连接的请求,等待服务器确认。
  3. CLOSE-WAIT:等待关闭状态,「第二次挥手」服务端收到关闭连接请求后,等待本地用户关闭连接。
  4. FIN-WAIT-2:等待关闭状态,等待服务端发送关闭连接的请求。
  5. LAST-ACK:等待关闭状态,「第三次挥手」服务端发送关闭连接的请求后,等待客户端确认。
  6. TIME-WAIT:确认关闭状态,「第四次挥手」客户端确认关闭连接后,等待一段时间后自动关闭连接,目的是保证所有数据包都被对方接收。
  7. CLOSED:关闭状态,TCP连接断开,回到初始状态。

TCP四次挥手与连接状态的对应关系。

在这里插入图片描述

2.3、故障排查3种状态

LISTEN是监听状态,当遇到故障时,可以观察服务对应的端口有没有被监听,定位到具体的服务进程,缩小排查范围。

SYN-RCVD是中间状态,正常情况下很少见到,如果发现大量SYN-RCVD,则很有可能是遇到了SYN Flood攻击。

ESTABLISHED是数据传输状态,排查外联情况时,可以把ESTABLISHED状态的外部地址,放到威胁情报平台,如果IP报了恶意,就根据PID找到进程,做进一步排查。

3、常用参数和过滤

平时用的最多的参数是 netstat -ano,以数字形式显示所有连接。

在这里插入图片描述

netstat -ano | findstr ESTABLISHED 根据状态过滤

netstat -ano | findstr 20.198.162.76 或者根据IP地址过滤

4、定时刷新

参数后面加上数字,可以间隔刷新。

比如 5秒刷新一次,就会每5秒重新打印一次最新的网络情况,Ctrl + c 停止命令

在这里插入图片描述

常配合其他参数使用,比如 netstat -ano 5

5、查看丢包

netstat -e 查看接口收发包情况,检查是否丢包。

在这里插入图片描述