我正在尝试在我的 mac 书中使用以下命令捕获 DHCP 帧进行分析。
sudo tshark -i en0 -f "port 67 or port 68" -a duration:300 -w /tmp/dump.pcap
我使用以下命令获取数据包中所有协议的所有字段,但它没有打印任何值。 DHCP 帧的捕获过滤器选项是否正确?任何帮助表示赞赏?
sudo tshark -T text -r /tmp/dump.pcap -V
是的,你的命令没问题。也许没有 DHCP 数据包到达,因此未被捕获。尝试通过同一设备的第二个终端窗口中的命令强制 DHCP 活动:
sudo dhclient -r
sudo dhclient
警告: 如果您是远程连接,请勿应用这些命令。第一个命令释放 IP 地址,您的连接将被中断,无法输入第二个命令并远程取回地址。
thsark 过滤器与 Wireshark 具有相同的语法。 存在 2(或 3)种过滤器类型:
-f
tshark 选项:它选择将捕获哪些数据包,不捕获哪些数据包。这很有用,例如以获得较小的捕获文件大小。-Y
tshark选项:它选择从所有捕获的数据包中显示哪些数据包。您可以结合使用这两种类型。
示例:
tshark -i eth0 -n -Y "ip.addr==8.8.8.8"
tshark -i eth0 -n -Y "ip.addr==8.8.8.8" -f "udp port 53"
tshark -i eth0 -n -Y "ip.addr==8.8.8.8 and udp.port==53"
也可以应用所有其他选项,如 -a、-b、-w、-s。
tcpdump
应用程序也很有用。它在大多数 Linux 系统中都可用,甚至非常小或特殊。它没有显示过滤器选项。只能应用捕获过滤器。缺少其他选项:-a、-b ...
sudo tcpdump -i eth0 -w /tmp/dhcp.pcap "udp port 67 or udp port 68"