温馨提示×

Centos sniffer如何设置过滤

小樊
43
2026-08-04 06:40:54
栏目: 智能运维

在 CentOS 上“sniffer”通常指使用抓包工具(最常见的是 tcpdump,有时也可能是 tshark / Wiresharkssnftables 等)。下面按最常用场景给你说明,重点放在 tcpdump 过滤设置,这是 CentOS 上最典型的做法。


一、使用 tcpdump 设置过滤(最常用)

1️⃣ 安装 tcpdump

sudo yum install -y tcpdump

2️⃣ 基本抓包命令

sudo tcpdump -i eth0

二、常见过滤规则(重点)

✅ 1. 按 IP 过滤

# 只抓来自或发往某个 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

✅ 2. 按端口过滤

# 抓指定端口
sudo tcpdump -i eth0 port 80
# 抓源端口
sudo tcpdump -i eth0 src port 443
# 抓目的端口
sudo tcpdump -i eth0 dst port 22

✅ 3. 按协议过滤

# TCP
sudo tcpdump -i eth0 tcp

# UDP
sudo tcpdump -i eth0 udp

# ICMP
sudo tcpdump -i eth0 icmp

✅ 4. 组合条件(非常常用)

# 抓 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

✅ 5. 抓 ARP / DNS

# ARP
sudo tcpdump -i eth0 arp
# DNS(UDP 53)
sudo tcpdump -i eth0 udp port 53

三、保存到文件 + 分析

抓包保存

sudo tcpdump -i eth0 -w capture.pcap

读取 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

五、使用 tshark(Wireshark CLI)

安装

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

常见:

  • eth0
  • ens33
  • bond0

七、如果你指的是“Sniffer 工具”

如果你说的 sniffer 是某个具体软件(如:

  • sniffit
  • ngrep
  • netsniff-ng ),可以告诉我名字,我可以给你针对该工具的过滤配置示例

✅ 总结一句话

CentOS 上最常用的 sniffer 是 tcpdump,过滤规则写在命令最后,支持 IP、端口、协议、逻辑组合。

如果你愿意,可以告诉我:

  • 抓的是 哪台机器
  • 什么协议 / 端口
  • 排查什么问题

我可以直接帮你写一条精准的抓包命令

0