在 CentOS 上“sniffer”通常指使用抓包工具(最常见的是 tcpdump,有时也可能是 tshark / Wireshark 或 ss、nftables 等)。下面按最常用场景给你说明,重点放在 tcpdump 过滤设置,这是 CentOS 上最典型的做法。
sudo yum install -y tcpdump
sudo tcpdump -i eth0
# 只抓来自或发往某个 IP
sudo tcpdump -i eth0 host 192.168.1.10
# 只抓来自该 IP
sudo tcpdump -i eth0 src host 192.168.1.10
# 只抓发往该 IP
sudo tcpdump -i eth0 dst host 192.168.1.10
# 抓指定端口
sudo tcpdump -i eth0 port 80
# 抓源端口
sudo tcpdump -i eth0 src port 443
# 抓目的端口
sudo tcpdump -i eth0 dst port 22
# TCP
sudo tcpdump -i eth0 tcp
# UDP
sudo tcpdump -i eth0 udp
# ICMP
sudo tcpdump -i eth0 icmp
# 抓 192.168.1.10 的 80 端口 TCP 流量
sudo tcpdump -i eth0 tcp and host 192.168.1.10 and port 80
# 排除 SSH
sudo tcpdump -i eth0 not port 22
# 多个端口
sudo tcpdump -i eth0 port 80 or port 443
# ARP
sudo tcpdump -i eth0 arp
# DNS(UDP 53)
sudo tcpdump -i eth0 udp port 53
sudo tcpdump -i eth0 -w capture.pcap
sudo tcpdump -r capture.pcap
| 参数 | 作用 |
|---|---|
-i eth0 |
指定网卡 |
-n |
不解析主机名 |
-nn |
不解析主机名和端口名 |
-v / -vv |
显示详细信息 |
-c 100 |
抓 100 个包后停止 |
-s 0 |
抓完整数据包 |
-w file.pcap |
保存到文件 |
✅ 推荐常用组合
sudo tcpdump -i eth0 -nn -v -s 0
sudo yum install -y wireshark-cli
tshark -i eth0 -Y "ip.addr == 192.168.1.10 && tcp.port == 80"
⚠️ 抓包需要 root 权限
sudo tcpdump ...
⚠️ 生产环境慎用
-c⚠️ 确认网卡名
ip addr
常见:
eth0ens33bond0如果你说的 sniffer 是某个具体软件(如:
sniffitngrepnetsniff-ng
),可以告诉我名字,我可以给你针对该工具的过滤配置示例。CentOS 上最常用的 sniffer 是 tcpdump,过滤规则写在命令最后,支持 IP、端口、协议、逻辑组合。
如果你愿意,可以告诉我:
我可以直接帮你写一条精准的抓包命令。