运行时tcpdump
,我发现有时内核丢弃的数据包数量大于零 (0)。我被告知要写入虚拟磁盘上的文件而不是硬盘上的文件。我不是 Linux 内核或网络堆栈方面的专家,我无法得到任何像样的解释为什么。
根据 tcpdump 的手册页,似乎是由于缺少缓冲区空间而发生的,这意味着我需要更改-B
,而不是输出文件的路径,这不是正确的吗?假设我创建了一个 ramdisk;
# SIZE is big enough to capture all output
> mount -t tmpfs tmpfs /var/myramdisk -o <SIZE>
并跑了tcpdump
两条不同的路;
# Option I
> tcpdump -U -C <FILE_SIZE> -w /var/myramdisk/option_one.pcap host 1.2.3.4 and port X
# Option II
> tcpdump -U -C <FILE_SIZE> -w /home/myhome/option_two.pcap host 1.2.3.4 and port X
这两个命令之间真的有什么区别吗?