Netstat命令
目录
警告
本文最后更新于 2022-07-05,文中内容可能已过时。
netstat 命令
netstat列含义:
-
Proto: 协议名(tcp协议或者udp协议) -
recv-Q: 网络接收队列- 表示收到的数据已经在本地接收缓冲,但是还有多少没有被进程取走,recv()
- 如果接收队列Recv-Q一直处于阻塞状态,可能是遭受了拒绝服务
denial-of-service攻击。
-
Send-Q: 网路发送队列- 对方没有收到的数据或者说没有Ack的,还是本地缓冲区.
- 如果发送队列Send-Q不能很快的清零,可能是有应用向外发送数据包过快,或者是对方接收数据包不够快。
Recv-Q和Send-Q通常应该为0,如果不为0可能是有问题的。packets在两个队列里都不应该有堆积状态。可接受短暂的非0情况。
Local Address: 本地监听地址和端口号Foreign Address: 与本机端口通信的外部socket。显示规则与Local Address相同State: 链路状态,共有11种LISTEN: 侦听状态,等待远程机器的连接请求。CLOSED: 初始(无连接)状态。SYN_SEND: 尝试建立一个连接,在TCP三次握手期间,主动连接端发送了SYN包后,进入SYN_SEND状态,等待对方的ACK包。SYN_RECV: 已经接受到了一个连接请求,在TCP三次握手期间,主动连接端收到SYN包后,进入SYN_RECV状态。ESTABLISHED: 已经有一个有效连接,完成TCP三次握手后,主动连接端进入ESTABLISHED状态。此时,TCP连接已经建立,可以进行通信。FIN_WAIT_1: 等待远程TCP的连接中断请求或先前的连接中断请求的确认,在TCP四次挥手时,主动关闭端发送FIN包后,进入FIN_WAIT_1状态。FIN_WAIT_2: 从远程TCP等待连接中断请求 ,在TCP四次挥手时,主动关闭端收到ACK包后,进入FIN_WAIT_2状态。TIME_WAIT: 等待足够的时间以确保远程TCP接收到连接中断请求的确认, 在TCP四次挥手时,主动关闭端发送了ACK包之后,进入TIME_WAIT状态,等待最多MSL时间,让被动关闭端收到ACK包。CLOSING: 等待远程TCP对连接中断的确认, 在TCP四次挥手期间,主动关闭端发送了FIN包后,没有收到对应的ACK包,却收到对方的FIN包,此时,进入CLOSING状态。CLOSE_WAIT: 等待从本地用户发来的连接中断请求,在TCP四次挥手期间,被动关闭端收到FIN包后,进入CLOSE_WAIT状态。LAST_ACK:等待原来发向远程TCP的连接中断请求的确,在TCP四次挥手时,被动关闭端发送FIN包后,进入LAST_ACK状态,等待对方的ACK包。
netstat -i 列说明
Iface: 接口名MTU: 网络最大传输单元(字节),大部分网络设备都是1500。如果本机的MTU比网关的MTU大,大的数据包就会被拆开来传送,这样会产生很多数据包碎片,增加丢包率,降低网络速度。把本机的MTU设成比网关的MTU小或相同,就可以减少丢包 https://www.cnblogs.com/wjoyxt/p/6873714.html。RX-OK/TX-OK: 正确接收了多少数据包,发送了多少数据包RX-ERR/TX-ERR: 接收、发送数据包的时候,丢弃了多少数据包RX-OVR/TX-OVR: 由于错误遗失了多少数据包Flg: 标记L: 代表回环地址R: 这个网络接口正在运行中U: 接口正在处于活动中B: 设置了广播地址M: 接收所有数据包O: 表示在该接口上禁止arpP: 端对端的连接