Cwlal-krs/raspberry-pi-zero-2w-network-tool
GitHub: Cwlal-krs/raspberry-pi-zero-2w-network-tool
基于树莓派Zero 2W的便携式网络扫描工具,可通过蓝牙离线访问并运行nmap和aircrack-ng进行网络探测与WiFi安全测试。
Stars: 0 | Forks: 0
# 🛠️ 使用 Raspberry Pi Zero 2W 和 AI 辅助构建便携式网络工具
## 📖 简介
当我拿到 **Raspberry Pi Zero 2W** 时,我开始思考用它来做什么。最終想到的创意是构建一个 **便携式网络测试工具**——体积小到可以放在背包里,由移动电源供电,无需互联网连接即可通过蓝牙从任何地方访问。
有趣的转折点是:这个项目几乎完全是 **在 AI 辅助下** 完成的。我使用了 ChatGPT、Grok 和 Claude 作为团队。我提供想法、描述问题、引导方向——AI 编写解决方案。
这篇文章既是 **技术指南**,也是关于使用 AI 工具开发项目的真实记录。
## 🧰 硬件
| 组件 | 详情 |
|---|---|
| **开发板** | Raspberry Pi Zero 2W |
| **操作系统** | Raspberry Pi OS Lite (64位) |
| **电源** | 移动电源 (5V/2A) |
| **网络适配器** | USB WiFi 适配器(支持监听模式) |
| **连接方式** | 蓝牙(离线访问)+ WiFi SSH |
## ⚙️ 设置过程
### 1. 首次启动和蓝牙连接
Pi Zero 2W 内置蓝牙和 WiFi,这使得 **无头设置** 变得更加容易。我通过 **蓝牙串口** 建立了第一个连接——无需显示器,无需键盘。
我从 AI 那里获得了通过 `bluetoothctl` 配对和启用串口服务的逐步命令:
```
sudo systemctl enable bluetooth
sudo systemctl start bluetooth
bluetoothctl
```
在 `bluetoothctl` 中:
```
agent on
default-agent
discoverable on
pairable on
```
我使用手机上的蓝牙终端应用连接,并从那里运行所有初始命令。
### 2. 自动蓝牙服务——离线访问
这是项目 **最关键的部分**。目标是:启动后,Pi 应该在约 2 分钟内自动设置蓝牙 RFCOMM 连接,这样我就可以 **在任何地方访问它**——只需在蓝牙范围内,无需互联网。
这意味着:
- 🏠 在家里、户外、网络自由的环境里——**没有区别**
- 🔋 有移动电源,Pi 就能运行;有蓝牙,就能访问
- 🚫 无需处于同一 WiFi 网络
**设置 RFCOMM 服务:**
```
sudo nano /etc/systemd/system/rfcomm.service
```
服务文件内容:
```
[Unit]
Description=RFCOMM Bluetooth Serial Service
After=bluetooth.target
Requires=bluetooth.target
[Service]
ExecStartPre=/bin/sleep 10
ExecStart=/usr/bin/rfcomm watch hci0 1 getty rfcomm0 115200 vt100 -a pi
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
```
**启用并启动服务:**
```
sudo systemctl daemon-reload
sudo systemctl enable rfcomm.service
sudo systemctl start rfcomm.service
```
**结果:** 启动后约 2 分钟,Pi 可以通过蓝牙 RFCOMM 访问。使用手机上的蓝牙终端应用(如 *Serial Bluetooth Terminal*),我可以获得 **完整的终端访问权限**——无需互联网,无需共享网络。
### 3. WiFi 适配器和 SSH 设置
建立蓝牙访问后,我连接了 USB WiFi 适配器——这个适配器将处理实际的网络操作。关键要求是支持 **监听模式**。
检查适配器是否被识别:
```
lsusb
iwconfig
```
永久启用 SSH:
```
sudo systemctl enable ssh
sudo systemctl start ssh
```
通过 SSH 从笔记本电脑连接:
```
ssh pi@
```
### 4. 安装工具
```
sudo apt update && sudo apt upgrade -y
sudo apt install -y nmap aircrack-ng net-tools wireless-tools
```
| 工具 | 用途 |
|---|---|
| `nmap` | 扫描网络上的设备,检测开放端口 |
| `aircrack-ng` | WiFi 数据包分析,解除认证测试 |
| `net-tools` / `wireless-tools` | 网络接口管理 |
### 5. 切换到监听模式
监听模式是数据包捕获和解除认证测试所必需的:
```
sudo ip link set wlan1 down
sudo iw dev wlan1 set type monitor
sudo ip link set wlan1 up
```
验证:
```
iwconfig wlan1
# 模式:Monitor
```
### 6. 网络扫描
```
# 快速扫描 — 查找网络上的所有设备
sudo nmap -sn 192.168.1.0/24
# 对特定设备进行详细端口扫描
sudo nmap -sV 192.168.1.X
```
### 7. 解除认证测试(*仅在您自己的网络上*)
解除认证攻击会发送 **802.11 解除认证帧** 来断开客户端与 WiFi 网络的连接。这用于测试您自己网络设置的健壮性。
```
# 列出附近的网络
sudo airodump-ng wlan1
# 定位特定网络
sudo airodump-ng --bssid -c wlan1
# 发送 deauth 帧(仅限您自己的网络!)
sudo aireplay-ng --deauth 10 -a wlan1
```
## 🐛 遇到的问题和解决方案
### ❌ 问题 1:蓝牙服务无法启动
`bluetoothctl` 运行了但看不到设备。当我向 AI 描述情况时,它识别出了 `bluetooth.service` 和 `bluetooth.target` 之间的 **依赖问题**,并建议:
```
sudo systemctl daemon-reexec
sudo systemctl restart bluetooth
```
### ❌ 问题 2:WiFi 适配器不支持监听模式
第一个适配器在 `iw dev wlan1 set type monitor` 时报错。AI 解释说并非所有 USB WiFi 适配器都支持监听模式,并推荐了 **Realtek RTL8188** 或 **Atheros AR9271** 芯片组。
### ❌ 问题 3:服务在重启后没有持久化
SSH 和 RFCOMM 每次启动后都需要手动启动。解决方法就是 `systemctl enable`——事后看来很明显,但在设置过程中很容易忽略。
## 🤖 与 AI 合作
我在整个项目中使用了三种不同的 AI 工具:
| AI | 用途 |
|---|---|
| **ChatGPT** | 常规安装步骤和命令解释 |
| **Grok** | 调试错误消息,解读系统日志 |
| **Claude** | 理解服务交互,掌握 `systemd` 架构 |
我从未将它们中的任何一个用作"帮我写这个"的机器。我描述我的问题,应用建议的解决方案,然后报告结果。这种来回交流有时会进行 **3-4 轮**。
最有价值的是:AI 还会解释 **为什么** 某件事有效,而不仅仅是 **做什么**。我不只是复制粘贴——我在过程中实际上学到了东西。
## ✅ 结论
**Raspberry Pi Zero 2W + 移动电源** 组合是便携式网络工具的完美基础。体积小、安静、功耗低。
**自动蓝牙服务** 是改变游戏规则的关键。它消除了最大的限制——需要互联网连接或共享 WiFi 网络——并使设备在真正意义上变得便携。
AI 辅助大大加快了构建速度。但更重要的是,每次出现问题时,我都会尝试理解 **根本原因**,而不仅仅是修复方法。这就是区别所在。
**下一步:** 一个简单的 Web 界面——能够从浏览器触发网络扫描而不是从终端,会让整个设置更加简洁。
## 📚 资源
- [Raspberry Pi 官方文档](https://www.raspberrypi.com/documentation/)
- [Aircrack-ng 文档](https://www.aircrack-ng.org/documentation.html)
- [Nmap 参考指南](https://nmap.org/book/man.html)
*本文基于我的个人经验。所有测试都在我自己的网络中在受控环境下进行。*
标签:AI辅助开发, ChatGPT, headless, PE 加载器, Promptflow, Raspberry Pi OS, Raspberry Pi Zero 2W, RFCOMM, SSH, WiFi监控, 云存储安全, 便携设备, 可视化界面, 插件系统, 无线安全, 无线网络, 物联网安全, 监控模式, 离线访问, 移动安全测试, 网络安全, 网络扫描, 蓝牙, 逆向工具, 防御绕过, 隐私保护