Tcpdump

是否可以從同一網路中的第三台主機擷取兩台主機之間的數據包?

  • April 22, 2022

我想從第三台主機查看兩台主機之間的流量,我的網路上都有我在第三台主機上執行此操作:

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

但沒有任何改變。

你說,“……在我的網路上……”

如果您可以訪問物理網路層,那麼是的,這是可能的。

一些管理型交換機能夠將發往埠 X 的流量複製到埠 Y。

tcpdump如果主機有多個 NIC,另一種可能性是將tcpdump主機放在其他兩台主機之間並讓它橋接流量。

可能找到了解決方案。語法是正確的,但現代交換網路(不像舊的共享匯流排,如舊的好 10base2 或 base5)不會將流量發送到未連接到目標 MAC 地址的交換機埠,因此 tcpdump 將僅顯示來自連接主機的數據包直接地。

引用自:https://unix.stackexchange.com/questions/699934