温馨提示×

centos dropped如何抓包看

小樊
39
2026-10-14 23:19:46
栏目: 智能运维

在 CentOS 上如果遇到 网络丢包(packet drop),可以从 抓包(tcpdump) 和 系统/内核丢包统计 两个层面来排查。下面给你一套常用做法。


一、使用 tcpdump 抓包看“有没有包”

1. 基本抓包

tcpdump -i eth0 -nn
  • eth0:网卡名(用 ip addr 查看)
  • -nn:不解析主机名和端口名

2. 抓特定 IP / 端口

tcpdump -i eth0 host 10.0.0.1
tcpdump -i eth0 port 80
tcpdump -i eth0 host 10.0.0.1 and port 80

3. 保存 pcap 文件(用 Wireshark 分析)

tcpdump -i eth0 -w drop.pcap

然后:

scp drop.pcap user@yourpc:/tmp/

用 Wireshark 打开看 重传、乱序、RST、丢包


二、判断是否“真的丢包”

1. 看接口丢包

ip -s link

或

ifconfig eth0

关注:

  • RX dropped
  • TX dropped
  • errors

2. 看内核丢包(非常关键)

netstat -s | grep -i drop

或

nstat -az | grep -i drop

常见丢包点:

  • TCPBacklogDrop
  • TCPReqQFullDrop
  • ListenOverflows
  • PacketReceiveErrors

三、网络层 / 防火墙丢包

1. 防火墙(iptables / nftables)

iptables -nvL

看有没有 DROP

2. conntrack 满(常见)

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

如果接近 max,会丢包。


四、TCP 层丢包(重传)

ss -tanp | grep -i retrans

或

netstat -ant | grep -E 'RETRANS|SYN_RECV'

五、结合 ping / mtr 看路径丢包

ping -c 100 ip
mtr -n ip

六、典型场景总结

现象 可能原因
RX dropped 网卡 / 驱动 / 缓冲区
TCP retrans 网络拥塞
ListenOverflows 连接数过高
conntrack drop 防火墙表满
iptables DROP 规则问题

如果你能补充:

  • CentOS 版本
  • 丢包发生在 哪一侧(客户端/服务端)
  • 是 TCP / UDP / ICMP
  • 是否有高并发

我可以给你更精确的抓包命令和调优建议。

0 踩