netstat -s 输出内核协议栈累计统计,需通过基线对比定位异常增长项:TCP 关注重传、连接失败及 SYN 队列溢出;UDP 关注接收错误、缓冲区满和端口未监听;IP 层关注分片丢弃、收发错误及意外转发。

netstat -s 输出的是内核协议栈自启动以来的累计统计,不是实时快照,直接看单次结果意义不大。关键在对比——用它定位异常增长项,再结合网络行为做归因。
TCP 统计重点看重传与连接失败
执行 netstat -s -t 后聚焦这几项:
- segments retransmitted:持续上升说明链路丢包或 ACK 延迟/丢失,可配合 mtr 或 ping -f 测路径稳定性
- failed connection attempts:大量失败且报 “no route to host” 或 “connection refused”,优先查目标端口是否监听、防火墙策略、路由可达性
- embryonic connections dropped:SYN 队列溢出,常见于突发连接请求或 net.ipv4.tcp_max_syn_backlog 设置过小
- connection resets received/sent:突增可能源于对端强制断连、进程崩溃、或中间设备(如 WAF、负载均衡)拦截
UDP 统计关注静默丢包信号
运行 netstat -s -u 查看:
- packet receive errors:非零值多指向网卡驱动异常、DMA 故障或内核内存紧张(如 skbuff 分配失败)
- receive buffer errors:UDP 接收缓冲区满导致丢包,可用 ss -uln 查 Recv-Q 是否长期非零,再调大 net.core.rmem_default
- no ports:目的端口无监听进程,典型于服务未启、容器端口映射错误或 systemd socket 激活失败
IP 层统计揭示底层转发与分片问题
执行 netstat -s -i(接口级)或 netstat -s(汇总)观察:
- fragments dropped:IP 分片重组失败,常因内存不足或 net.ipv4.ipfrag_high_thresh 过低
- input/output errors/dropped:和 ethtool -S eth0 中的 rx_crc_errors、tx_aborted_errors 对照,判断是否为物理层或驱动问题
- packets forwarded:非零且持续增长,说明主机开启了 IP 转发;若非预期,检查 net.ipv4.ip_forward 值是否被误设为 1
必须做基线对比和增量分析
netstat -s 是累计值,有效用法是:
- 业务低峰期采集一次基线:netstat -s > baseline.txt
- 异常发生时再采一次:netstat -s > current.txt
- 用 diff baseline.txt current.txt 或简单减法,只关注增长最猛的几行
- 避免只看绝对值——比如 “retransmitted: 12345” 看似高,但若基线就是 12340,实际增量仅 5,未必异常


















