tcpdump 没有显示所有数据包?

tcpdump 没有显示所有数据包?

可能重复:
我的 tcpdump 总是过滤数据包?

我已经使用 tcpdump 大约一个月了,最近,它停止捕获任何未发送到或来自运行 tcpdump 的计算机的数据包。我已将命令精简为:

sudo tcpdump -i en2

我已经使用 ifconfig 检查了我的接口,并且 en2 处于“PROMISC”模式。当指定特定主机作为过滤器时,我只看到一些“arp”消息,但与网络中实际发生的情况相比,什么也没有。我在 westell 7500 路由器下工作。以下是上述命令的 tcpdump 输出示例,其中附加了“host 192.168.1.30”(我网络上的另一台主机)以过滤掉我自己的流量。

listening on en2, link-type EN10MB (Ethernet), capture size 65535 bytes
21:16:19.968786 ARP, Request who-has 192.168.1.30 tell dslrouter.westell.com, length 46
21:16:41.471548 ARP, Request who-has 192.168.1.30 tell dslrouter.westell.com, length 46
21:16:42.395101 ARP, Request who-has 192.168.1.30 tell dslrouter.westell.com, length 46

3 packets captured
127 packets received by filter
0 packets dropped by kernel

即使我包括主机过滤器。我知道我的网络可能已经从“集线器”类型路由器变成了“交换机”类型路由器。如果是这种情况,有人能帮助我配置端口镜像吗?或者至少能给我指明正确的方向,这样我就能随时看到 LAN 中发生的一切?

万分感谢。

答案1

路由器或交换机默认不会将所有流量发送到所有端口。您需要一个集线器,或者确保您的网络设备可以将流量镜像到端口。(有时称为镜像,有时称为监视端口,还有其他一些名称)基本上,网络流量(广播除外)不会到达您的计算机。

相关内容