同时 Ping 和 tcpdump

同时 Ping 和 tcpdump

情况是这样的 - 服务器上有一个脚本可以 ping 到某个地方,但我不知道到哪里。我想看看这个 ping 是在哪台机器上进行的,以及为什么会返回FAILED

我所做的是在一个终端中打开 tcpdump,同时在第二个终端中打开 ping 的脚本,但我不确定是否捕获了实际的 ping。

这是我使用的命令

tcpdump -w - | tee ping.pcap | tcpdump -r -

这是这样做的正确方法还是还有其他方法?

编辑:

问题是,当我启动 tcpdump 时,有大量流量,而我无法识别哪一个来自此 ping...

答案1

尝试:

tcpdump -i eth0 icmp

这将列出ping接口上的流量eth0

答案2

您可以使用tcpdump -n icmp它来过滤 ping 请求和回复。我添加了-n开关以防止名称查找。您的主机中可能有多个接口,因此可能需要添加开关-i ethX来指定正确的接口。

请注意,过滤器(在本例中为 icmp)应该是命令的最后部分。

答案3

在使用 unix/linux 命令之前,请务必尝试阅读它们的手册页。 tcpdump 命令有不同的选项。探索所有这些都是非常有趣的。

您需要具有 root 访问权限才能使用 tcpdump 命令捕获转储。

例子:

tcpdump -i any -s 0 -v -w ping.pcap

上述命令将捕获所有可用以太网接口上的所有数据包,快照长度不受限制,详细,并将捕获结果写入文件 ping.pcap。

同样,您可以使用内联过滤器来过滤特定主机的数据包。

例子:

tcpdump -i any -s 0 -v -w ping.pcap 135.250.80.55

上述命令将捕获从 135.250.80.55 到 135.250.80.55 的所有数据包。

相关内容