在 Debian 上,“sniffer”通常指 网络抓包/分析工具(如 tcpdump、tshark、wireshark 等)。过滤数据包主要通过 捕获过滤器(Capture Filter) 和 显示过滤器(Display Filter) 实现。下面按常用工具说明。
sudo apt install tcpdump
sudo tcpdump -i eth0
sudo tcpdump -i eth0 host 192.168.1.10
sudo tcpdump -i eth0 net 192.168.1.0/24
sudo tcpdump -i eth0 port 80
sudo tcpdump -i eth0 portrange 80-90
sudo tcpdump -i eth0 tcp
sudo tcpdump -i eth0 udp
sudo tcpdump -i eth0 icmp
sudo tcpdump -i eth0 tcp port 443 and host 10.0.0.5
sudo tcpdump -i eth0 not arp and not icmp
sudo tcpdump -i eth0 -w capture.pcap
sudo apt install wireshark
sudo usermod -aG wireshark $USER
# 重新登录
在 开始抓包前 输入,语法类似 tcpdump:
tcp port 80
host 192.168.1.10
⚠️ 捕获过滤器不能做复杂协议分析。
抓包后使用,功能更强:
ip.addr == 192.168.1.10
tcp.port == 443
http
dns
tls
http and ip.src == 192.168.1.10
tcp.flags.syn == 1 and tcp.flags.ack == 0
sudo apt install tshark
sudo tshark -i eth0 -f "tcp port 80"
sudo tshark -i eth0 -Y "http.request"
sudo tshark -i eth0 -w out.pcap
| 需求 | tcpdump / tshark -f | Wireshark 显示过滤器 |
|---|---|---|
| 指定 IP | host 1.1.1.1 |
ip.addr == 1.1.1.1 |
| TCP 80 | tcp port 80 |
tcp.port == 80 |
| DNS | udp port 53 |
dns |
| SYN 包 | tcp[tcpflags] & tcp-syn != 0 |
tcp.flags.syn == 1 |
✅ 需要 root 权限
✅ 云服务器/虚拟化环境可能需要开启 混杂模式
✅ 生产环境抓包注意:
如果你愿意,可以告诉我:
我可以给你更精确的过滤命令。