![如何使 tshark 输出用于其他 max GUI pcap 查看器的有效 pcap 文件](https://linux22.com/image/795987/%E5%A6%82%E4%BD%95%E4%BD%BF%20tshark%20%E8%BE%93%E5%87%BA%E7%94%A8%E4%BA%8E%E5%85%B6%E4%BB%96%20max%20GUI%20pcap%20%E6%9F%A5%E7%9C%8B%E5%99%A8%E7%9A%84%E6%9C%89%E6%95%88%20pcap%20%E6%96%87%E4%BB%B6.png)
sudo tshark -i en0 -x -w icmp_sample.pcap
此命令输出一个 pcap 文件,但它似乎无效,因为 CocoaPacket Analyzer 无法打开它
任何想法?
答案1
如果是 TShark 1.8 或更高版本,默认情况下会不是输出 pcap 文件,它输出pcap-ng文件。
Libpcap 1.1.0 及更高版本可以读取 pcap-ng 文件,OS X 自 Snow Leopard 以来就拥有 libpcap 1.1.x。CocoaPacketAnalyzer 链接静态地使用其自己的 libpcap 版本 - 但快速浏览程序中的字符串表明它是使用 libpcap 1.1.0 或更高版本构建的。
但是,它可能像 Wireshark 一样,仅使用 libpcap 来捕获网络流量,并有自己的代码来读取捕获文件。这意味着,与使用 libpcap 读取捕获文件的程序不同,如果与较新版本的 libpcap 链接,它不会神奇地获得读取 pcap-NG 文件的能力。
因此,如果你想使用 CocoaPacketAnalyzer(而不是 Wireshark,它能读取 pcap-ng 文件以及 pcap 文件和一大堆其他类型的文件),您必须通过传递标志让 TShark 写出 pcap 文件-F pcap
,并且您必须将任何您希望 CocoaPacketAnalyzer 读取的现有 pcap-ng 文件转换为 pcap 文件,editcap -F pcap {input file} {output file}
或者在 Snow Leopard 及更高版本中,使用tcpdump -r {input file} -w {output file}
。