温馨提示×

什么是centos dropped包

小樊
39
2026-09-03 03:21:29
栏目: 智能运维

CentOS(以及一般 Linux 系统) 中,dropped 包(丢包) 通常指 网络数据包在接收或发送过程中被系统丢弃,无法被上层应用正常处理。

下面从 含义、常见位置、原因、排查方法 几个方面说明。


一、什么是 dropped 包

在 CentOS 中,你常会看到类似:

ip -s link

ifconfig

输出中有:

RX packets 123456  bytes 98765432
RX errors 0  dropped 123  overruns 0  frame 0

这里的 dropped 表示:

网卡已经收到(或尝试发送)的数据包,但内核决定丢弃,没有交给应用程序。

⚠️ dropped ≠ 网络线路丢包
dropped 是 本机内核层丢包


二、dropped 包常见出现的位置

1️⃣ 网卡接收方向(RX dropped)

最常见,表示:

  • 数据包到达网卡
  • 但内核没有处理

2️⃣ 网卡发送方向(TX dropped)

较少见,表示:

  • 应用要发数据
  • 但内核或驱动丢弃

三、CentOS 中 dropped 包的常见原因

✅ 1. 网卡缓冲区(ring buffer)不足

高并发时:

  • 网卡收包太快
  • 内核处理不过来

查看:

ethtool -S eth0 | grep -i drop

✅ 2. 防火墙 / iptables / nftables 丢弃

例如:

  • DROP 规则
  • fail2ban
  • 安全组策略

查看:

iptables -nvL

✅ 3. 内核参数限制(最常见之一)

例如:

  • net.core.rmem_max 太小
  • net.ipv4.tcp_max_syn_backlog 不够

✅ 4. 连接队列满(listen backlog)

Web 服务(Nginx / Tomcat)连接暴增时:

  • accept 队列满
  • 新连接被丢弃

查看:

ss -lnt

✅ 5. 硬件 / 驱动问题

  • 网卡驱动 bug
  • 网卡老化
  • 网线 / 交换机问题

✅ 6. 虚拟机环境(KVM / 云服务器)

常见于:

  • 虚拟化网卡(virtio)
  • 宿主机限速
  • 云厂商“隐形丢包”

四、如何排查 dropped 包(实战步骤)

1️⃣ 看网卡统计

ip -s link
ethtool -S eth0

2️⃣ 看系统丢包

cat /proc/net/dev

3️⃣ 看内核日志

dmesg | grep -i drop
journalctl -k | grep -i drop

4️⃣ 看连接队列

ss -lnt

5️⃣ 看防火墙

iptables -nvL
nft list ruleset

五、简单优化示例(CentOS 7/8)

# 增大接收缓冲区
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216

# 增大连接队列
sysctl -w net.core.somaxconn=1024
sysctl -w net.ipv4.tcp_max_syn_backlog=8192

六、一句话总结

CentOS 中的 dropped 包 = 本机内核主动丢弃的数据包,通常不是网线断了,而是 系统性能、配置或安全策略问题

如果你愿意,可以告诉我:

  • CentOS 版本(7 / 8 / Stream)
  • 是 RX 还是 TX dropped
  • 是否云服务器 / 虚拟机

我可以帮你 精准定位原因并给优化方案

0