【问题标题】:Could I get other host's TCP packets on my computer?我可以在我的计算机上获取其他主机的 TCP 数据包吗?
【发布时间】:2015-03-12 10:18:21
【问题描述】:

我使用wireshark 来捕获我计算机的数据包。我想获取 219.231.143.116(source ip) 的数据包,我的 ip 是 219.231.143.220(destination ip)。

事实上,我得到了我想要的,但令我惊讶的是,我得到了一些其他的数据包。这些数据包的源 IP 和目标 IP 不是 219.231.143.116 或 219.231.143.220。

据我所知,tcp 是 TCP/IP 协议的第三层,交换机不会发送那些不属于我的数据包。那么,问题是为什么我可以在我的计算机上捕获它们?这是wireshark的问题还是switch的问题?

(由于我的等级太低,所以图在这里,对不起!) http://mysource.lofter.com/post/1cfd51e8_55d5972

【问题讨论】:

  • 您的网卡可能位于promiscuous mode
  • 但是处于混杂模式的网络适配器仍然无法捕获最初未发送给它的数据包,并且,如果运行 Wireshark 的计算机上的网络接口被插入交换机,并且交换机端口未设置为“镜像端口”,因此交换机将其他流量转发给它,不进出该网络接口 MAC 地址的单播流量甚至不会发送到该接口。
  • 所以运行 Wireshark 的计算机被插入网络交换机(而不是集线器)?您是否看到了大量的流量,或者只是进出其他主机的几个数据包?插入交换机的接口的 MAC 地址是什么?
  • 如果以太网交换机不知道 MAC 地址属于哪个端口,它会将数据包泛洪到所有端口。一旦拥有未知 MAC 地址的接收主机回复这些数据包,它可能会学习 MAC 地址到端口的映射。
  • 是的,我确定我的电脑已经插入了一个开关(你可以看到我上传的图像。这个开关被称为“HangZhou_90:c7:00”。它是H3C之一的产品。)@GuyHarris

标签: sockets networking tcp wireshark capture


【解决方案1】:

交换机决定向您发送哪些数据包。你无法改变这一点。您只能过滤掉(在 Wireshark 中)您不想使用的数据包。

Wireshark 会显示你实际收到的所有数据包(在混杂模式下)。

您在图像中突出显示的所有其他数据包都是 TCP 重传数据包。交换机可能会将数据包投射得更宽,因为正在发生重新传输,所以有些事情正在超时。或者,数据包中可能设置了广播或多播标志,因为源试图让其重传被听到。

您不会收到很多发往其他计算机的数据包,也不会收到属于另一台设备的发送和接收数据包的完整序列(除非您将交换机配置为使用端口镜像)

如果您真的不想看到这些数据包或将这些数据包泄漏到特定设备,您可以使用物理防火墙(如 pfsense)或您与交换机之间的路由器,以绝对过滤源自您网络的多播流量。这将是一个常见的用例。

【讨论】:

  • 1.数据包不是广播或多播的。你可以看到它的目标IP是permissible.2。如果某些数据包超时,它不应该发送给我,我想是的。
  • 我不知道该怎么做。@David McNeill
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-22
  • 2012-01-27
  • 1970-01-01
  • 2020-11-26
  • 2013-01-21
  • 1970-01-01
相关资源
最近更新 更多