You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何无需交互建立手机与Raspberry Pi 3 B+的安全蓝牙连接

解决方案:树莓派3B+与手机无交互安全蓝牙配对方案

一、核心配置思路

采用经典蓝牙的NoInputNoOutput代理模式,让树莓派无需任何交互,仅验证手机输入的预设PIN码完成安全配对,完全满足不依赖手机蓝牙地址、无RPi端操作的需求。

二、分步操作

1. 配置蓝牙守护进程

先确保蓝牙服务正常运行并开启可发现、可配对状态:

# 设置蓝牙开机自启并启动服务
sudo systemctl enable bluetooth
sudo systemctl start bluetooth

编辑/etc/bluetooth/main.conf,修改以下关键参数(无对应项则添加):

[General]
AutoEnable=true          # 开机自动开启蓝牙
SecurityManager=true     # 启用安全配对
DiscoverableTimeout=0    # 永久保持可发现状态
PairableTimeout=0        # 永久保持可配对状态
Discoverable=true        # 开启可发现
Pairable=true            # 开启可配对

修改后重启蓝牙服务生效:

sudo systemctl restart bluetooth

2. 设置无交互配对代理

创建自动运行的代理脚本,让树莓派用预设PIN码完成配对,无需任何操作:

  1. 创建脚本文件/usr/local/bin/bluez-pair-agent.sh:
#!/bin/bash
# 替换成你需要的PIN码,比如123456
FIXED_PIN="123456"

# 启动bluetoothctl并配置代理
bluetoothctl << EOF
agent NoInputNoOutput
default-agent
pairing-agent $FIXED_PIN
EOF
  1. 给脚本添加执行权限:
sudo chmod +x /usr/local/bin/bluez-pair-agent.sh
  1. 设置脚本开机自启,创建systemd服务文件/etc/systemd/system/bluez-pair-agent.service:
[Unit]
Description=BlueZ NoInputNoOutput Pairing Agent
After=bluetooth.service
Requires=bluetooth.service

[Service]
Type=simple
ExecStart=/usr/local/bin/bluez-pair-agent.sh
Restart=always

[Install]
WantedBy=multi-user.target
  1. 启用并启动服务:
sudo systemctl enable bluez-pair-agent.service
sudo systemctl start bluez-pair-agent.service

3. 验证配置

执行以下命令检查状态:

bluetoothctl show

输出中应包含Pairable: yes、Discoverable: yes,且Agent registered的类型为NoInputNoOutput。

此时手机打开蓝牙,搜索到树莓派的蓝牙设备(默认名称raspberrypi),点击配对后输入预设的PIN码,即可完成安全连接,树莓派全程无需任何操作。

三、之前方案失效的原因

  • 修改main.conf后未重启蓝牙服务,或缺少Discoverable/Pairable等关键配置项
  • BLE外设方案需要编写GATT服务代码,且手机端通常需要定制APP,适配成本远高于经典蓝牙配对
  • 之前尝试的bluetoothctl方案未正确配置NoInputNoOutput代理并设为默认,导致配对时树莓派仍等待本地交互

四、可选进阶方案

如果需要更高安全性,可使用预共享密钥(PSK)替代固定PIN码,但需注意大部分手机仅支持简单数字PIN码的配对流程,PSK方案需要手机端支持自定义密钥输入,适用性较窄。


内容的提问来源于stack exchange,提问作者Eranzz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 23:45:23