http://domain.yqjdcyy.com/post/linux.netstat/
1 Netstat
1.1 作用
- 可于内核中访问网络连接状态及其相关信息
- 用于显示网络连接、路由表和每个网络接口设备的状态信息
1.2 格式
netstat [-a][-e][-n][-o][-p Protocol][-r][-s][Interval]
1.3 参数
参数 | 作用 |
---|---|
-a/-all |
显示所有socket,不论是否正在监听 |
-c/-continuous |
持续每秒进行选中信息的输出显示 |
-i/-interfaces=iface |
显示所有的网络接口 |
-n/-numeric |
以数值地址形式进行展示 |
-r/-route |
显示内核路由表,同 route -e |
-t/-tcp |
显示 TCP 协议的连接情况 |
-u/-udp |
显示 UDP 协议的连接情况 |
-v/-verbose |
详细显示正在进行的工作 |
-p/-program |
显示套接字关联的程序名称和 PID |
-e/-extend |
显示额外信息,如 uid 等 若连续两次调用则显示最大程度明细 |
-o/-timers |
显示与网络计时器相关的信息 |
-s/-statistics |
展示每个协议的摘要统计 |
-l/-listening |
仅显示监听中的套接字 |
1.4 序列图
1.5 输出
1.5.1 State
State | Desc |
---|---|
LISTENING | 正在监听端口 |
SYNC_SEND | 已发送 SYN 报文等待连接请求建立 |
SYNC_RECEIVED | 已接收 SYN 报文的连接请求后,发送 SYN 回包后的 |
ESTABLISHED | 连接已建立,开始进行数据传输 |
CLOSE_WAIT | 服务端等待关闭 回应客户端的 FIN 报文以 ACK 报文,无后缀则关闭 Socket 并发送 FIN 报文 |
FIN_WAIT_1 | 客户端请求断开,发送 FIN 报文后的等待状态由于服务端响应及时,观察频率低 |
FIN_WAIT_2 | 客户端等待数据传输完成后,服务端发送FIN 报文确认的过程半连接 |
LAST_ACK | 被动关闭方等待最终 ACK 报文的确认 |
TIME_WAIT | 接收 FIN 并返回 ACK 报文后,等待 2MSL 后返回 CLOSED 状态 |
CLOSING | 等待远程 TCP 对连接的确认 |
CLOSED | 无连接状态链路 |
1.6 示例
1.6.1 过滤 TCP 连接统计
netstat -nat |awk '{print $6}'| sort | uniq -c
1.6.2 查询指定端口的 TCP 连接数
netstat -ant | grep -i "80" | wc -l
1.6.3 已连接链路数
netstat -an | grep ESTABLISHED | wc -l
2 参考
微信公众号: 架构师日常笔记 欢迎关注!