在 Debian 里,“sniffer”通常指的是网络抓包工具,最常用的是:
下面按常见场景说明 如何过滤。
sudo apt update
sudo apt install tcpdump
sudo tcpdump -i eth0
# 来源或目的 IP
sudo tcpdump host 192.168.1.10
# 只抓来源 IP
sudo tcpdump src 192.168.1.10
# 只抓目的 IP
sudo tcpdump dst 192.168.1.10
sudo tcpdump port 80
sudo tcpdump src port 443
sudo tcpdump dst port 22
sudo tcpdump tcp
sudo tcpdump udp
sudo tcpdump icmp
sudo tcpdump tcp port 80 and host 192.168.1.10
sudo tcpdump 'udp port 53 or tcp port 443'
sudo tcpdump 'not arp and not icmp'
⚠️ 注意:复杂条件建议用单引号
' '包住,避免 shell 解析错误。
sudo tcpdump net 192.168.1.0/24
sudo tcpdump -s 96
sudo tcpdump -w capture.pcap
再分析:
tcpdump -r capture.pcap
sudo apt install tshark
sudo tshark -i eth0 -Y "ip.addr == 192.168.1.10"
sudo tshark -i eth0 -Y "tcp.port == 80"
sudo tshark -i eth0 -Y "http"
-Y使用 Wireshark 显示过滤器(比 tcpdump 更强大)
sudo apt install wireshark
sudo wireshark
ip.addr == 192.168.1.1
tcp.port == 443
http.request
dns
udp.srcport == 53
| 需求 | tcpdump | tshark/Wireshark |
|---|---|---|
| IP | host | ip.addr |
| 端口 | port | tcp.port / udp.port |
| 协议 | tcp/udp | tcp / udp |
| 组合 | and/or | and/or |
| 排除 | not | ! |
Debian 默认需要 root:
sudo tcpdump ...
或加入 wireshark 组(推荐):
sudo usermod -aG wireshark $USER
newgrp wireshark
如果你能说明:
我可以给你一条精确命令。