如何在Linux服务器上安装Bluehood:从Python环境到systemd常驻服务的保姆级教程
【免费下载链接】bluehoodMonitor your local neighbourhoods bluetooth activity项目地址https://gitcode.com/gh_mirrors/bl/bluehood点击查看免费下载Bluehood 是一款运行在 Linux 服务器上的蓝牙邻居监控工具通过被动扫描周围的 BLE 设备来分析周边蓝牙活动模式。本文是一份保姆级教程带你从零完成 Bluehood 的完整部署搭建 Python 运行环境、安装依赖、授予蓝牙权限最后用 systemd 把它变成开机自启的常驻服务。一、Bluehood 是什么简单来说Bluehood 就是一个蓝牙监听器。它会持续扫描你身边的蓝牙设备手机、汽车、耳机、IoT 设备等通过 MAC 地址厂商库和 BLE 服务指纹把它们分类并记录它们随时间出现/消失的规律最终在网页仪表盘里直观呈现。⚠️ 提示本项目仍处于 Alpha 阶段属于教育/隐私科普用途。扫描蓝牙设备时请遵守当地法律法规仅对授权环境使用。二、安装前准备三个硬性条件在动手前先确认你的 Linux 服务器满足以下条件条件说明检查方式BLE 蓝牙适配器需蓝牙 4.0 且支持Central角色老式 2.x/3.x 适配器不支持bluetoothctl show查看是否含centralBlueZLinux 蓝牙协议栈扫描的底层依赖bluetoothctl list能列出适配器Python 3.11项目运行与依赖安装环境python3 --version先安装并启用 BlueZDebian/Ubuntu 示例sudo apt update sudo apt install bluez python3-pip sudo systemctl enable --now bluetooth bluetoothctl power on三、克隆仓库并搭建 Python 环境下面这一步涉及仓库克隆仓库地址如下git clone https://gitcode.com/gh_mirrors/bl/bluehood cd bluehood强烈建议使用虚拟环境隔离依赖避免污染系统 Pythonpython3 -m venv .venv source .venv/bin/activate项目的依赖定义在 pyproject.toml 中核心依赖为bleak、aiosqlite、aiohttp、mac-vendor-lookup并明确要求requires-python 3.11。四、一键安装依赖激活虚拟环境后执行可编辑安装即可自动安装全部依赖并注册命令行入口pip install -e .如果之后想用 Prometheus 指标导出配合 Grafana再追加安装可选依赖pip install -e .[metrics]安装成功后bluehood命令就可用了。入口定义在 pyproject.toml 的bluehood bluehood.daemon:main实际逻辑位于 bluehood/daemon.py。五、授予蓝牙扫描权限蓝牙扫描需要较高权限三选一即可以 root 运行最简单sudo bluehood给 Python 授予能力位免 sudosudo setcap cap_net_admin,cap_net_raweip $(readlink -f $(which python))使用 systemd 服务推荐用于常驻见下一节。六、先验证列出并测试适配器正式跑服务前先确认能识别到蓝牙适配器bluehood --list-adapters底层扫描与适配器枚举逻辑在 bluehood/scanner.py 的list_adapters()中实现。若这里能列出hci0等适配器说明 BlueZ 与驱动正常否则请回到第二步排查 BlueZ。七、配置 systemd 常驻服务这是本教程的重点——把 Bluehood 做成开机自启、崩溃自动重启的后台服务。仓库已内置服务单元文件 bluehood.service其核心配置为ExecStart/usr/bin/python3 -m bluehood.daemonRestarton-failureRestartSec10故障 10 秒后自动拉起EnvironmentBLUEHOOD_DATA_DIR/var/lib/bluehood数据落盘目录 注意单元文件默认以 root 身份运行因此天然绕过了蓝牙权限问题无需额外setcap。安装并启动服务sudo cp bluehood.service /etc/systemd/system/ sudo systemctl daemon-reload sudo systemctl enable --now bluehood查看运行状态与日志systemctl status bluehood journalctl -u bluehood -f八、打开 Web 仪表盘服务启动后浏览器访问http://服务器IP:8080即可进入监控面板。默认端口可在 bluehood/config.py 与命令行参数中调整例如bluehood --port 9000。主面板会列出已识别设备的类型、MAC、厂商、 sighting 次数与最近接触时间并提供按类别筛选、关键词搜索和 CSV 导出九、配置告警与推送通知进入设置页可以为 Bluehood 配置 ntfy.sh 推送通道与告警规则比如新设备出现被监视设备返回/离开时推送到手机。相关配置逻辑位于 bluehood/notifications.py十、常用命令与环境变量速查命令 / 变量作用bluehood启动含 Web 面板端口 8080bluehood --list-adapters列出可用蓝牙适配器bluehood --adapter hci0指定 BLE 扫描适配器bluehood --no-web仅扫描关闭 Web 面板BLUEHOOD_DATA_DIR数据目录默认~/.local/share/bluehoodBLUEHOOD_METRICS_PORT开启 Prometheus 指标端口数据以 SQLite 存储默认路径为~/.local/share/bluehood/bluehood.db可在 bluehood/config.py 中查看默认值与环境变量覆盖逻辑。十一、常见问题排查提示No Bluetooth adapters with BLE central role found适配器不支持 BLE Central 角色请更换蓝牙 4.0 的 USB 蓝牙棒。org.freedesktop.DBus.Error.ServiceUnknown/org.bluez was not providedBlueZ 未安装或未运行执行sudo apt install bluez sudo systemctl enable --now bluetooth后重启服务。权限被拒绝改用sudo bluehood或按第五节授予能力位或直接使用 systemd 服务。扫描不到设备确认bluetoothctl power on已执行且bluehood --list-adapters能列出适配器。十二、总结至此你已经在 Linux 服务器上完成了 Bluehood 从Python 环境 → 依赖安装 → 权限授予 → systemd 常驻服务的全流程部署。配合内置的 Web 仪表盘、Prometheus 指标bluehood/prometheus.py以及现成的 Grafana 面板 grafana/bluehood-dashboard.json你就能持续、直观地掌握周边蓝牙设备的活动规律。再次提醒Bluehood 用于教育与隐私安全研究请务必在授权范围内使用并尊重周围人的隐私与相关法规。更多细节可参阅 README.md如需容器化部署可参考 docker-compose.yml 与 Dockerfile。赞分享【免费下载链接】bluehoodMonitor your local neighbourhoods bluetooth activity项目地址https://gitcode.com/gh_mirrors/bl/bluehood点击查看免费下载相关推荐如何在 NAS 和家用服务器上安装 NetronomeLinux/macOS/Windows 跨平台保姆级教程如何在 NAS 和家用服务器上安装 NetronomeLinux/macOS/Windows 跨平台保姆级教程 Netronome 是一款用 Go 和 ReaRTCMultiConnection 安装指南从信令服务器部署到生产环境后台常驻RTCMultiConnection 安装指南从信令服务器部署到生产环境后台常驻 本文以官方 installation guide.md https://li示例工程Hermes Workspace 后台常驻服务部署指南macOS launchd 与 Linux systemd 用户级服务实战Hermes Workspace 后台常驻服务部署指南macOS launchd 与 Linux systemd 用户级服务实战 本篇指南讲解如何将 Herm创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

TreeView测试程序:构建可断言的状态机级可靠性验证体系

TreeView测试程序:构建可断言的状态机级可靠性验证体系

简介:这是一份面向VB初学者与界面控件实践者的TreeView控件专项测试程序,聚焦于层次化数据展示与交互逻辑的掌握,解决学习者在动态构建树形结构、响应节点事件及实现增删改查等核心操作时的实操难点。资源共20个文件,包含4个关键窗…

2026/10/13 15:49:53 阅读更多 →
你用AI的方式,决定了你能拿走多少:从提示词工程到人机协作实战

你用AI的方式,决定了你能拿走多少:从提示词工程到人机协作实战

你用AI的方式,决定了你能拿走多少最近跟几个做业务的朋友聊天,发现一个挺有意思的现象:同样的AI工具,有人用它把方案撰写时间从两天压缩到两小时,有人却还在抱怨AI写出来的东西“不能直接用”。这两拨人用的模型一样、…

2026/10/13 15:49:53 阅读更多 →
PALM自定义项目创建全攻略:从设计思路到实操避坑

PALM自定义项目创建全攻略:从设计思路到实操避坑

1. 从零理解PALM自定义项目:为什么需要自己动手建项目PALM这个平台在自动化测试和流程编排圈子里不算陌生,但很多人第一次接触它的时候,注意力都放在“怎么跑通一个现成示例”上,很少有人认真研究“怎么创建一个用户自定义项目”。…

2026/10/13 15:49:53 阅读更多 →

最新新闻

C语言停车场管理系统完整代码:从数据结构到计费持久化

C语言停车场管理系统完整代码:从数据结构到计费持久化

简介:这份资源是面向C语言初学者与课程设计学习者的停车场管理系统完整代码包,围绕车辆进出登记、车位分配、计时计费与数据记录等核心业务,帮助读者理解如何用C语言实现一套可运行的管理程序。压缩包共22个文件,约1.9MB&#xff…

2026/10/13 16:38:11 阅读更多 →
深度解读43PR/dotfiles的install.sh:AUR自动引导与符号链接智能安装器源码剖析

深度解读43PR/dotfiles的install.sh:AUR自动引导与符号链接智能安装器源码剖析

【免费下载链接】dotfiles Hyprland Quickshell Setup for Arch-based distributions 项目地址: https://gitcode.com/gh_mirrors/dotfiles3241/dotfiles 点击查看 免费下载 43PR/dotfiles 是一套面向 Arch 系发行版的 Hyprland Quickshell 桌面方案&#xff0c…

2026/10/13 16:38:11 阅读更多 →
微信小程序开发实战第2版源码解析与教学项目改造指南

微信小程序开发实战第2版源码解析与教学项目改造指南

简介:这份资源是人邮教育出版社《微信小程序开发实战(第2版)》的配套课本项目源代码,面向正在学习微信小程序开发的学生、K12课程教师以及希望系统练手的入门开发者。内容按教材章节组织,从个人信息、本地生活、婚礼邀…

2026/10/13 16:38:11 阅读更多 →
VB6基础教程与示例:老系统维护、编译与ActiveX控件实战

VB6基础教程与示例:老系统维护、编译与ActiveX控件实战

简介:面向VB6初学者的综合资料合集,整合基础教程、入门到精通、MSDN、入门例子、控件属性大全与函数速查,覆盖语法、窗体、控件到API调用的学习路径,另附Visual C 6.0入门提高讲义(全500页),可解…

2026/10/13 16:38:11 阅读更多 →
中国天气网Python爬虫实战:从入门到生产部署

中国天气网Python爬虫实战:从入门到生产部署

简介:本资源是一套面向Python初学者与数据实践者的网页爬虫实战项目,聚焦中国天气网(weather.com.cn)的结构化天气数据采集与解析,帮助用户掌握HTTP请求发送、HTML页面解析及多字段信息提取等核心爬虫技能。资源包共14…

2026/10/13 16:38:11 阅读更多 →
Rust性能优化实战:五个技巧榨干硬件性能

Rust性能优化实战:五个技巧榨干硬件性能

很多人聊 Rust 性能优化,第一反应是“这语言天生就快,还用得着调?”我最初也这么想,直到接手一个用 Rust 写的日志处理服务,在单机 8 核上处理一千万条日志要跑十几秒,调完之后压缩到两秒出头,C…

2026/10/13 16:37:10 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →