我想使用 Wireshark 捕获网络上设备发送/接收的数据。
我连接了一些设备(全部基于 ESP8266),它们无法退出睡眠模式(我认为是这个原因)。因此,我想定期发送命令,以避免这些设备进入睡眠模式。
为了捕获传入或传出的数据,我尝试使用 Wireshark。我使用过滤器 ip.src_host=xxx.xxx.xxx.xxx(其中 xxx.xxx.xxx.xxx 是我的设备的 IP 地址)或 ip.dst_host=xxx.xxx.xxx.xxx,我用简单的 ping 测试了它,它有效。但是当我要求 Alexa 开机或关机时,我看不到数据,因为我的 Macbook(10.13.6)或 PC(Windows10)不是请求的来源。
我检查了一下,当我选择接口时,“混杂”复选框被启用。
所以我想我忘了一些东西,但是什么?谢谢你的帮助。
答案1
您无法看到网络上其他设备的流量,除非它直接位于您的设备与其他设备之间。您唯一能看到的流量是广播。
所有现代以太网网络都通过网络交换机连接在一起。网络交换机效率更高,因为它们不会将流量发送到网络上的每台计算机。它们“发现”哪台计算机插入哪个端口,并直接在两台设备之间发送流量。通过这种方式,大型网络可以更高效地运行,避免多台计算机同时尝试将数据发送到网络时通常会发生的冲突。一台计算机可以查看另一台计算机的流量也是一个重大的安全隐患。
如果您想查看网络上设备之间的流量,您将需要考虑网络交换机的限制。
- 改用网络集线器。此设备会镜像所有端口上的所有流量。祝你好运。搜索“网络集线器”只会找到制造商决定在其上加上“集线器”一词的网络交换机。请参阅这里wireshark 对此有何看法。
- 在更高端的网络交换机上使用镜像或监视端口。
- ARP 欺骗网络以“诱骗”计算机将所有数据发送给您。
- 接入您想要监控的设备上插入的物理线来创建一个分离器,其中您的网卡以被动模式运行并监听流量。
如今,#2 是实现您想要的目标的最常用方法,但需要比大多数 soho 路由器/交换机更高端的交换机。
对于严格的实验目的,不需要额外的硬件,但是复杂性会大大增加,您可以使用选项#3。
答案2
在 Windows 上:您必须以管理员身份执行 wireshark(然后您将看到设备)
在 Linux 上以 root 身份或“sudo”(如果您的用户帐户在 sudoers 文件中)运行具有 root 权限的 wireshark。