抓包硬件选型:Ubertooth One、nRF52840 Dongle、TI CC2531、ESP32 Monitor模式、HackRF、USRP B210性能对比与选型指南
做物联网抓包分析,第一道坎就是选硬件。
市面上能用的设备不少,从几十块钱的USB dongle到几万块的软件无线电平台,跨度非常大。我见过不少新手上来就买HackRF,结果发现抓不了BLE——白白浪费钱。也见过团队花大价钱买了USRP,结果只是用来抓ZigBee,性能严重过剩。
这一章,我把六款主流设备拉出来逐一分析。我会从频段覆盖、协议支持、采样带宽、价格、易用性五个维度做对比,最后给出选型建议。
六款设备速览
先看一张总览表,心里有个底:
| 设备 | 频段范围 | 支持协议 | 采样带宽 | 参考价格 | 上手难度 |
|---|---|---|---|---|---|
| Ubertooth One | 2.4 GHz | BLE、Basic Rate | 500 kHz | ~$120 | 中等 |
| nRF52840 Dongle | 2.4 GHz | BLE、Thread、ZigBee | 2 MHz | ~$10 | 低 |
| TI CC2531 | 2.4 GHz | ZigBee、Z-Wave | 2 MHz | ~$20 | 低 |
| ESP32 Monitor | 2.4 GHz | Wi-Fi、BLE | 20 MHz | ~$5 | 中等 |
| HackRF One | 1 MHz – 6 GHz | 全协议(需软件支持) | 20 MHz | ~$300 | 高 |
| USRP B210 | 70 MHz – 6 GHz | 全协议(需软件支持) | 56 MHz | ~$1,200 | 高 |
核心结论:没有万能设备。选型的关键是先搞清楚你要抓什么协议、在什么频段、需要多宽的带宽。
逐款深度分析
Ubertooth One:BLE抓包的专业选手
这款设备是Michael Ossmann设计的,专门为蓝牙抓包而生。它使用CC2400射频前端,配合FPGA做基带处理。
我个人习惯用Ubertooth One做BLE的深度分析。为什么?因为它能抓到BLE的Advertising和Data信道,而且支持蓝牙5的LE Coded PHY。我在项目中遇到过一个问题:用nRF52840抓包时,某些长距离BLE包总是丢,换成Ubertooth One就全抓到了。
小技巧:Ubertooth One配合Wireshark使用效果最好。记得刷最新的固件,旧版本不支持蓝牙5的2M PHY。
不过它也有短板:只支持2.4 GHz,采样带宽只有500 kHz。这意味着你没法用它抓Wi-Fi或者Sub-1 GHz的信号。
nRF52840 Dongle:性价比之王
这个小小的USB dongle,用的是Nordic的nRF52840芯片。它支持BLE、Thread、ZigBee,还能做802.15.4的抓包。
说白了,如果你主要做2.4 GHz的物联网协议分析,nRF52840 Dongle是最划算的选择。才10美元,性能却不差。我建议每个团队都备几个,当Sniffer用非常方便。
注意:nRF52840 Dongle需要配合nRF Sniffer软件使用。抓包时最好外接一个USB延长线,避免电脑的电磁干扰影响信号质量。
TI CC2531:ZigBee抓包的老将
CC2531是TI的老产品了,但至今仍是ZigBee抓包的主流选择。它支持IEEE 802.15.4协议,配合TI的Packet Sniffer软件,可以抓ZigBee、Z-Wave、6LoWPAN。
嗯,这里要注意:CC2531的灵敏度一般,在信号弱的环境下容易丢包。我曾经在一个大型ZigBee网络中做调试,CC2531死活抓不到远端的包,后来换了nRF52840才搞定。
ESP32 Monitor模式:Wi-Fi抓包的野路子
ESP32本身是Wi-Fi/BLE双模芯片,但它的Wi-Fi可以进入Monitor模式。说白了,就是让ESP32变成一个廉价的Wi-Fi嗅探器。
你想想看,一个5块钱的芯片,能抓2.4 GHz Wi-Fi的Beacon、Probe Request、Data帧,还能做信道扫描。我见过有人用ESP32做Wi-Fi室内定位的抓包节点,成本低到离谱。
适用场景:Wi-Fi协议分析、信道质量评估、低成本的嗅探网络。不适合高精度的时间戳和密集抓包。
HackRF One:软件无线电的入门砖
HackRF One是软件无线电(SDR)的入门级设备。它覆盖1 MHz到6 GHz,采样带宽20 MHz。理论上,只要你能写GNU Radio的流图,什么协议都能抓。
但我要泼一盆冷水:HackRF是半双工的,而且采样率只有20 MSps。抓窄带协议(如BLE、ZigBee)没问题,但抓Wi-Fi的20 MHz信道就有点吃力了。我在项目中试过用HackRF抓Wi-Fi OFDM信号,结果因为采样率不够,解调出来的星座图惨不忍睹。
避坑指南:HackRF的时钟精度一般,长时间抓包会出现频率漂移。建议外接GPSDO做时钟同步,否则抓到的包时间戳不准。
USRP B210:专业级的SDR平台
USRP B210是Ettus Research的产品,采样带宽56 MHz,覆盖70 MHz到6 GHz。它是全双工的,支持MIMO,采样率最高61.44 MSps。
说实话,USRP B210是这六款设备里性能最强的,但也是最贵的。我建议只有在以下场景才考虑它:
- 需要抓Wi-Fi 802.11ac的80 MHz信道
- 做多通道同步抓包(比如定位)
- 研究非标协议或私有物理层
选型决策流程
为了帮你快速做决定,我画了一张选型流程图:
实战选型建议
根据我多年的项目经验,我给出以下具体建议:
- 入门学习:先买一个nRF52840 Dongle(10美元)和一个CC2531(20美元),总共30美元就能覆盖BLE和ZigBee的抓包。这是性价比最高的起步方案。
- BLE专业调试:加一个Ubertooth One。我在调试蓝牙Mesh网络时,Ubertooth One的Advertising信道抓包能力是其他设备比不了的。
- Wi-Fi分析:用ESP32的Monitor模式做低成本方案。如果要做802.11ac的80 MHz信道抓包,必须上USRP B210。
- 多频段/研究:HackRF One适合预算有限但想玩SDR的人。USRP B210适合做严肃的无线研究。
我的个人习惯:出差时随身带一个nRF52840 Dongle和一个ESP32开发板。前者抓BLE,后者抓Wi-Fi,基本能覆盖90%的现场调试需求。
避坑指南
最后分享几个我踩过的坑:
- 别用HackRF抓Wi-Fi数据包:它的20 MHz采样带宽刚好够Wi-Fi的20 MHz信道,但实际抓包时因为时钟精度问题,解调成功率很低。我曾经花了两周时间调GNU Radio的流图,最后还是放弃了。
- CC2531的USB接口容易松动:这个老设备的USB接口没有加固设计,插拔几次就接触不良了。建议用USB延长线固定好位置。
- ESP32的Monitor模式不支持所有Wi-Fi帧:它只能抓数据帧和管理帧,控制帧基本抓不到。如果你需要完整的Wi-Fi抓包,还是得用专业的Wi-Fi网卡。
选硬件这件事,说白了就是搞清楚你要什么。别盲目追求高端设备,也别为了省钱买不合适的工具。希望这一章能帮你少走弯路。