我有 2 个无线接口,一个是 AP 类型,另一个是监视器类型。
AP 连接到网桥 br-lan。
例如当我跑步时:
tcpdump port 5201 -s 0 -ni wlan0
TCPdump 无法捕获任何流量,但如果我在没有“端口 5201”过滤器的情况下运行它,它会捕获所有内容。如果我只过滤“udp”,情况也是如此,它无法捕获任何单个数据包。
当我使用精确的过滤器在 br-lan 接口上运行它时:
tcpdump port 5201 -s 0 -ni br-lan
它按照我想要的方式完美地运行,但问题是在这种情况下我无法获取 radiotap 标头,因为它将网桥视为以太网接口。
在这种情况下,解决方案是什么?是否有任何格式可以指定用于过滤链接类型:IEEE802_11_Radio?是否有任何特定工具可以对无线适配器执行此操作?
提前致谢。
更新
导致此问题的原因是工作站设备上启用了 WDS(无线分布式系统)(我的场景是:两个设备,OpenWRT 处于基础架构模式)。当我重新配置工作站设备以不使用 WDS 时,tcpdump 便按我的要求正常工作。但发生这种情况的真正原因仍不得而知。
如果有人知道原因或知道如何在 WDS 模式下过滤流量,请在答案中提及,因为我因禁用 WDS 而失去了一个功能。
答案1
我认为您的流量没有端口 5201 或 UDP 流量。至于标头,tcpdump 确实有一个“--monitor-mode”开关。试试看。它应该将无线接口驱动到监控模式,这就是您想要“看到”的无线信息。
--monitor-mode 是否起作用取决于许多因素:你的无线网卡需要支持监控模式,tcpdump 需要是较新的版本,并且你的内核驱动程序需要正确支持网卡(即,有时你需要构建一个不属于标准安装的特定驱动程序)。
此外,根据 tcpdump 的版本,您可能能够删除命令中的“-s 0”部分。如果您将其删除,tcpdump 默认快照长度为 262144 字节(好吧,我不得不查一下)。将快照长度设置为“0”可实现相同的效果。