tcpdump 冻结并且在没有互联网连接的情况下无法正确捕获

Mic*_*han 3 ubuntu tcpdump packet-capture ubuntu-14.04

当我没有任何互联网连接并且我想捕获本地计算机之间的网络时,tcpdump 的行为如下:

1.我使用以下命令启动tcpdump:

tcpdump -ixenbr0
Run Code Online (Sandbox Code Playgroud)

2.在我运行它之后,tcpdump 进入冻结模式大约 1-2 分钟,之后它捕获一些数据包并再次冻结,再次捕获一些并且一遍又一遍地发生相同的事情。

我什至无法使用 ctrl+c 退出 tcpdump,甚至无法使用killall tcpdump命令终止 tcpdump 进程。

我在网络中的所有计算机上都有这个问题,不仅仅是一台。

但是当我将网络连接到互联网时,tcpdump 工作得很好。互联网连接一切正常。对我来说似乎很奇怪。

我也试过 -l ,但没有运气。

我正在使用 Ubuntu 14.04。Tcpdump 版本是 4.5.1。

任何人都知道出了什么问题?

小智 7

当我没有任何网络连接时

...

tcpdump 进入冻结模式大约 1-2 分钟,之后它捕获一些数据包并再次冻结,并再次捕获一些数据包,并且一遍又一遍地发生相同的情况。

您运行它时没有-w,因此,它不仅仅是将原始数据包数据写入文件,而是剖析数据包并打印它们的摘要。

这意味着,对于 IP 数据包,它会尝试报告数据包的源 IP 地址和目标 IP 地址。

如果没有-n,它会尝试查找与地址对应的主机名,这意味着,除非地址在主机文件中,否则它会尝试使用 DNS 来查找名称。如果您没有任何 Internet 连接,但本地 DNS 解析器认为它应该搜索 Internet DNS 服务器,它会尝试联系这些服务器并等待应答或超时。它不会得到答案,所以它必须等待超时。

一旦超时发生,它会被告知“我没有该地址的主机名”,并且只打印数据包信息,以数字形式显示地址。然后,当下一个数据包到达时,如果有一个 IP 地址,同样的事情就会发生。

-n 禁用查找 IP 地址的名称,因此没有任何超时。