在 CentOS 上排查网络故障,通常不需要也不推荐使用“Sniffer”这类抓包工具作为首选,而是建议分层排查。下面我先给你一个实战排查思路,再重点讲 Sniffer / 抓包(tcpdump) 的正确用法。
ip a
ip route
ping -c 4 8.8.8.8
ping -c 4 www.baidu.com
cat /etc/resolv.conf
nslookup www.baidu.com
dig www.baidu.com
systemctl status firewalld
firewall-cmd --list-all
getenforce
临时关闭测试:
systemctl stop firewalld
setenforce 0
ss -lntp
netstat -lntp # 没装 net-tools 用 ss
✅ 适合场景
❌ 不适合
yum install -y tcpdump
tcpdump -i eth0
tcpdump -i eth0 port 80
tcpdump -i eth0 host 192.168.1.10
tcpdump -i eth0 port 80 -A
tcpdump -i eth0 'tcp[tcpflags] & (tcp-syn) != 0'
tcpdump -i eth0 -w net.pcap
tcpdump -i eth0 port 8080
✅ 看到:
看到大量:
Flags [.], seq xxx:xxx, ack xxx, win xxx, length xxx
➡️ 网络丢包 / MTU 问题
tcpdump -i eth0 port 53
yum install -y wireshark
更推荐:
在 CentOS 抓包 → 拷到 Windows → Wireshark 分析
❌ 把 Sniffer 当第一排查工具
❌ 不看方向(IN/OUT)
❌ 不看 TCP 状态(SYN / ACK / RST)
❌ 抓包不保存 pcap
你可以直接告诉我:
我可以给你 一步步精确命令,甚至帮你 直接分析 tcpdump 输出。