在两个不同但相似(发行版、版本)的服务器上运行时/usr/sbin/tcpdump -n dst ${some_ip} and dst port 80
,我会得到不同的捕获大小(一个为 65535 字节,另一个为 262144 字节)。
什么可能导致 tcpdump 捕获大小出现这种差异?它可能导致最终数据输出出现哪些差异?
编辑:ldd $(which tcpdump)
两个服务器上都有相同的输出:
linux-vdso.so.1 => (0xdeadbeef)
libcrypto.so.1.0.0 => /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0xdeadbeef)
libpcap.so.0.8 => /usr/lib/x86_64-linux-gnu/libpcap.so.0.8 (0xdeadbeef)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0xdeadbeef)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0xdeadbeef)
/lib64/ld-linux-x86-64.so.2 (0xdeadbeef)
啊,但是内核版本不同,一定与此有关......
capture size 65535:
Ubuntu 14.04.4, Linux 3.13.0-85-generic
capture size 262144:
Ubuntu 14.04.5, Linux 3.13.0-116-generic
答案1
快照长度
看着tcpdump.org并搜索快照长度。默认值基于您的 libpcap 版本或您正在使用的任何自定义捕获驱动程序。