Por*_*les 5 networking tcpdump
我在同一个子网上有 3 台计算机。计算机 A 和 B 正在相互通信(ping、telnet 等)。我想在计算机 C 上查看 A 和 B 之间的数据包。是否可以使用 tcpdump 执行此操作?我已经阅读了手册并在谷歌上搜索了无止境,但我无法让它工作。在 C 上运行的 tcpdump 看不到 A 和 B 之间的流量。我知道 tcpdump 正在工作,因为如果 A 或 B ping C,tcpdump 会显示网络流量。我还手动将接口置于混杂模式(ifconfig ethx promisc),但仍然没有输出。
Comp-A, IP: 192.168.0.100
ping Comp-B ==> Comp-A 从 Comp-B 得到回复Comp-B,IP:192.168.0.101
tcpdump -Xi eth1 ==> 看到来自 Comp-A 的 ping 数据包Comp-C, IP: 192.168.0.102
tcpdump -Xi eth1 ==> 没有输出,只有通用的 tcpdump 初始消息
您没有看到它们的原因是因为您使用的是交换网络。您的网络交换机只将数据包转发到它们指定的接口。这由数据包中列出的链路层地址决定。您的交换机知道计算机 A、B 和 C 分别位于端口 1、2 和 3。当在端口 1 上从计算机 A 接收到发往计算机 B 的数据包时,该数据包仅传输到端口 2。
如果您有一个可管理的交换机,您可以在端口 3 上配置有时称为“端口镜像”或 SPAN 端口的内容,然后它会接收通过交换机的所有数据包的副本。
如果您没有托管交换机,那么还有其他更少的……我们应该说,传统方法(例如,arp 欺骗和数据包转发)来欺骗网络的其余部分。