温馨提示×

centos dropped怎样修复

小樊
41
2026-09-09 05:10:45
栏目: 智能运维

在 CentOS 中看到 “dropped”(丢包)通常出现在网络相关的排查里,比如:

  • ifconfig / ip -s link 显示 RX dropped / TX dropped
  • netstat -sss -s 里有 dropped
  • dmesg / 系统日志提示 dropped
  • 防火墙(iptables/nftables/firewalld)丢包

下面按最常见原因 → 排查 → 修复来说明。


一、先确认是哪种 dropped

1. 查看网卡丢包

ip -s link

ifconfig

重点看:

  • RX dropped
  • TX dropped

二、常见原因及修复方法

1️⃣ 网卡缓冲区(ring buffer)太小(最常见)

现象:高并发时 RX dropped 增加

查看:

ethtool -g eth0

如果 rx 当前值很小(如 256),可增大:

ethtool -G eth0 rx 4096 tx 4096

✅ 永久生效(写入配置文件或 rc.local)


2️⃣ 中断不均衡(多队列网卡)

现象:单核软中断高,丢包

查看:

cat /proc/interrupts | grep eth0

开启 IRQ 均衡:

systemctl start irqbalance
systemctl enable irqbalance

3️⃣ 连接跟踪表(conntrack)满

现象

  • dmesg 有:
    nf_conntrack: table full, dropping packet
    

查看:

sysctl net.netfilter.nf_conntrack_max
cat /proc/sys/net/netfilter/nf_conntrack_count

调大:

sysctl -w net.netfilter.nf_conntrack_max=1048576

永久:

echo "net.netfilter.nf_conntrack_max=1048576" >> /etc/sysctl.conf
sysctl -p

4️⃣ 防火墙主动丢包(firewalld / iptables)

查看被 DROP 的规则:

iptables -L -n -v | grep DROP

或:

nft list ruleset

✅ 按需放行端口或关闭测试:

systemctl stop firewalld

5️⃣ 系统背压(socket / 内存不足)

查看:

netstat -s | grep -i drop

可能问题:

  • TCPBacklogDrop
  • ListenOverflows
  • ListenDrops

修复思路:

sysctl -w net.core.somaxconn=65535
sysctl -w net.core.netdev_max_backlog=65535

6️⃣ 网卡 offload 异常

尝试关闭:

ethtool -K eth0 gro off
ethtool -K eth0 lro off
ethtool -K eth0 tso off

三、快速排查清单(推荐顺序)

ip -s link
dmesg | tail
ethtool -g eth0
systemctl status irqbalance
sysctl net.netfilter.nf_conntrack_count
iptables -L -n -v | grep DROP

四、如果你能补充信息,我可以精准定位

请告诉我:

  1. dropped 出现在哪里(命令输出)
  2. CentOS 版本(cat /etc/centos-release
  3. RX 还是 TX dropped
  4. 是否高并发 / 公网服务

我可以直接给你具体修复命令

0