是否可以从同一网络中的第三台主机捕获两台主机之间的数据包?

是否可以从同一网络中的第三台主机捕获两台主机之间的数据包?

我想从第三台主机查看两台主机之间的流量,我的网络上都有我在第三台主机上执行的操作:

ip link set eth0 promisc on

tcpdump -vv -i eth0 -xX host 192.168.0.2 and host 192.168.0.38 and not stp

我在 192.168.0.2 上进行了 ssh,从 192.168.0.2 我 ping 192.168.0.38,而不是在我的终端上看到 udp 数据报,而是看到了这个

tcpdump -vv -i eth0 -xX host 192.168.0.2 and host 192.168.0.38 and not stp
tcpdump: listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
^C
0 packets captured
8 packets received by filter
0 packets dropped by kernel

为什么?

我尝试指定 src 和 dst..

  tcpdump -vv -i eth0 -xX src host 192.168.0.2 and dst host 192.168.0.38 and not stp

但没有任何改变。

答案1

你说,“......在我的网络上......”

如果您可以访问物理网络层,那么是的,这是可能的。

某些托管交换机能够将发往端口 X 的流量复制到端口 Y。

如果tcpdump主机有多个 NIC,另一种可能性是将tcpdump主机放在其他两台主机之间并让它桥接流量。

答案2

可能找到解决方案。语法是正确的,但现代交换网络(与旧的共享总线不同,如旧的好的 10base2 或 base5)不会将流量发送到未连接到目标 MAC 地址的交换机端口,因此 tcpdump 将仅显示来自连接的主机的数据包直接地。

相关内容