在 CentOS 上做“sniffer 过滤”,通常指使用 tcpdump / libpcap 或 Wireshark(tshark) 来抓包并过滤。下面按最常见场景给你说明。
tcpdump -i eth0 <过滤条件>
示例:
tcpdump -i eth0
tcpdump src host 192.168.1.10
tcpdump dst host 192.168.1.10
tcpdump host 192.168.1.10
tcpdump port 80
tcpdump src port 22
tcpdump dst port 443
tcpdump portrange 8000-9000
tcpdump tcp
tcpdump udp
tcpdump icmp
✅ AND
tcpdump tcp and port 80
✅ OR
tcpdump port 80 or port 443
✅ NOT
tcpdump not arp
✅ 复杂示例
tcpdump -i eth0 tcp and host 192.168.1.10 and port 80
| 参数 | 作用 |
|---|---|
-i eth0 |
指定网卡 |
-n |
不解析主机名 |
-nn |
不解析主机名和端口名 |
-c 100 |
抓 100 个包后停止 |
-w file.pcap |
保存到文件 |
-r file.pcap |
读取文件 |
-v / -vv |
显示详细信息 |
示例:
tcpdump -i eth0 -nn -c 100 port 80
yum install wireshark-cli
tshark -i eth0 -f "port 80"
tshark -i eth0 -Y "ip.addr == 192.168.1.10 && tcp.port == 80"
sudo tcpdump ...
或
yum install libpcap
查看网卡:
ip a
✅ 只抓 HTTP 请求(80 端口)
tcpdump -i eth0 -nn tcp port 80
✅ 抓某台服务器的 SSH 流量
tcpdump -i eth0 tcp port 22 and host 192.168.1.10
✅ 抓 DNS 请求
tcpdump -i eth0 udp port 53
如果你能告诉我:
我可以直接给你一条完全可用的命令。