![是否可以从同一网络中的第三台主机捕获两台主机之间的数据包?](https://linux22.com/image/204943/%E6%98%AF%E5%90%A6%E5%8F%AF%E4%BB%A5%E4%BB%8E%E5%90%8C%E4%B8%80%E7%BD%91%E7%BB%9C%E4%B8%AD%E7%9A%84%E7%AC%AC%E4%B8%89%E5%8F%B0%E4%B8%BB%E6%9C%BA%E6%8D%95%E8%8E%B7%E4%B8%A4%E5%8F%B0%E4%B8%BB%E6%9C%BA%E4%B9%8B%E9%97%B4%E7%9A%84%E6%95%B0%E6%8D%AE%E5%8C%85%EF%BC%9F.png)
我想从第三台主机查看两台主机之间的流量,我的网络上都有我在第三台主机上执行的操作:
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 将仅显示来自连接的主机的数据包直接地。