tcpdump抓ARP流量需结合接口、数量、格式等参数精准控制:基础命令为sudo tcpdump arp,常用增强包括-i eth0指定网卡、-n禁DNS解析、-e显示MAC地址、-t或-vv调整输出详略、-c 5限包数、-w arp.pcap保存文件,还可叠加host、src host等过滤条件定位特定设备交互。

直接用 tcpdump arp 就能抓到 ARP 流量,但实际使用中常需结合接口、数量、显示格式等控制细节,才能准确定位问题。
基础命令:只抓 ARP 协议包
ARP 是二层协议,不依赖 IP 层,所以过滤时不用写 IP 地址或端口。最简命令如下:
- sudo tcpdump arp —— 抓取默认网卡上所有 ARP 包(请求、应答、重复地址检测等)
- sudo tcpdump -i eth0 arp —— 明确指定网卡,避免抓错接口(尤其多网卡环境)
-
sudo tcpdump -n arp —— 加
-n禁用 DNS 解析,防止延迟或干扰,显示纯 IP 和 MAC
增强可读性:显示链路层和精简时间戳
ARP 包本质是 Ethernet 帧,查看 MAC 地址和帧结构对分析很关键:
-
sudo tcpdump -e -n -t arp ——
-e显示源/目的 MAC;-t去掉时间戳,让输出更紧凑 -
sudo tcpdump -e -n -vv arp ——
-vv输出详细协议字段(如操作码:1=请求,2=应答;IP/MAC 对应关系) - 典型输出中能看到
ff:ff:ff:ff:ff:ff(广播 MAC)和0x0806(以太网类型为 ARP)
精准控制:限制数量与保存文件
避免抓太多包淹没屏幕,也方便后续离线分析:
- sudo tcpdump -c 5 arp —— 只捕获前 5 个 ARP 包,自动退出
- sudo tcpdump -w arp.pcap arp —— 保存原始数据到文件,可用 Wireshark 打开分析
- sudo tcpdump -w arp.pcap -c 20 arp —— 同时限制数量并保存,兼顾效率与完整性
排除干扰:结合主机或方向进一步过滤
如果只想看某台设备参与的 ARP 交互,可叠加条件:
- sudo tcpdump -i eth0 arp and host 192.168.1.100 —— 抓与该 IP 相关的所有 ARP(无论源或目的)
- sudo tcpdump -i eth0 arp and src host 192.168.1.100 —— 只看它发出的 ARP 请求/应答
- sudo tcpdump -i eth0 arp and dst host 192.168.1.100 —— 只看发给它的 ARP 请求(通常是广播,但目标 IP 明确)

















