在 CentOS 上,“sniffer”通常指抓包/网络嗅探工具(如 tcpdump、wireshark、tshark 等)。用 sniffer 排查故障,核心思路是:抓包 → 看流量是否到达 → 看协议交互是否正常 → 定位是哪一层的问题。
下面按实战流程给你讲。
常见场景:
# 最常用
tcpdump
# 文本版 wireshark
tshark
# 图形界面(需桌面)
wireshark
安装:
yum install -y tcpdump
yum install -y wireshark-cli # tshark
ip addr
或
nmcli device status
tcpdump -i eth0 -nn
tcpdump -i eth0 host 192.168.1.100
tcpdump -i eth0 port 80
tcpdump -i eth0 -w debug.pcap
之后用:
tcpdump -r debug.pcap
# 或拷到 Windows 用 Wireshark 分析
tcpdump -i eth0 host 客户端IP and port 服务端口
判断:
检查:
ss -lntp
firewall-cmd --list-all
iptables -L -n
tcpdump -i eth0 host 目标IP
看:
快速看重传:
tcpdump -i eth0 host 1.1.1.1 | grep -i retrans
tcpdump -i eth0 port 53
看:
tcpdump -i eth0 port 80 -A
或:
tshark -i eth0 -Y http
看:
tcpdump -i eth0 icmp
ping 一下
sniffer 只能看到“包”,还要配合:
# 连接状态
ss -antp
# 路由
ip route
# 防火墙
iptables -L -n -v
firewall-cmd --list-all
# SELinux
getenforce
# 网卡丢包
ifconfig eth0
ethtool -S eth0
如果你愿意,可以告诉我:
我可以直接给你针对你场景的 tcpdump 命令和判断方法。