我想从第三台主机查看两台主机之间的流量,我的网络上都有我在第三台主机上执行的操作:
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 将仅显示来自连接的主机的数据包直接地。