树莓派 5 新版系统使用NetworkManager(nmcli)管理网络,旧版wpa_supplicant仅兼容备用,分桌面图形、终端 nmcli、nmtui 文本界面、底层配置文件四种方案,按需选择。
方法一:桌面可视化设置(最简单,有显示器)
- 点击桌面右上角 WiFi 图标,展开所有已保存 WiFi 列表
- 右键你想设为默认开机优先的 WiFi → 勾选「自动连接」
- 其他 WiFi 右键取消「自动连接」,只保留目标 WiFi 自动连接
- 重启树莓派,开机只会自动连这个 WiFi
多 WiFi 共存、设置优先级(家里 / 公司自动切换)
- 全部 WiFi 都勾选「自动连接」
- 右上角 WiFi 图标 → 高级网络设置 → WiFi 标签
选中目标 WiFi,点齿轮设置,调高连接优先级(数字越大越优先)
数值示例:主 WiFi=10,备用 WiFi=5,开机优先连数值高的网络
方法二:终端 nmcli 命令(SSH 无显示器推荐,Bookworm 官方)
1)直接添加并设为自动默认 WiFi
bash
运行
# 替换WiFi名称、密码,执行后永久保存开机自动连接 sudo nmcli --ask dev wifi connect "你的WiFi名称" password "WiFi密码"2)查看所有已保存 WiFi 连接名
bash
运行
nmcli connection show # 输出类似:WLAN_XXXX wifi wlan03)修改开机自动连接、设置优先级
bash
运行
# 1. 关闭其他WiFi自动连接(替换连接名) sudo nmcli con mod "备用WiFi名" connection.autoconnect no # 2. 开启主WiFi自动连接,调高优先级(优先级0~100,越大越优先) sudo nmcli con mod "主WiFi名" connection.autoconnect yes sudo nmcli con mod "主WiFi名" connection.autoconnect-priority 904)生效 + 验证
bash
运行
# 重启网络服务 sudo systemctl restart NetworkManager # 查看当前自动连接状态 nmcli con show "主WiFi名" | grep autoconnect方法三:nmtui 纯文本图形界面(无显示器、纯终端操作)
- SSH 登录后执行:
bash
运行
nmtui- 选择「Activate a connection」激活 WiFi
- 选择「Edit a connection」编辑 WiFi:
- 勾选
Automatically connect(自动开机连接) - 设置
Autoconnect priority优先级数值
- 勾选
- 保存退出,重启网络服务生效
方法四:底层 wpa_supplicant.conf 配置(兼容老系统 / 离线 SD 卡预配置)
适合还没开机,电脑读取 SD 卡提前写入默认 WiFi,或多 WiFi 优先级控制
已开机树莓派修改
bash
运行
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf完整模板(priority数值越大,开机越优先):
conf
country=CN ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 # 主默认WiFi(优先级最高) network={ ssid="HomeWiFi" psk="12345678" key_mgmt=WPA-PSK priority=10 } # 备用WiFi network={ ssid="OfficeWiFi" psk="87654321" key_mgmt=WPA-PSK priority=5 }ssid:WiFi 名称,区分大小写priority:优先级,数字越大开机优先连接- 隐藏 WiFi 添加
scan_ssid=1
保存退出:Ctrl+O→ 回车 →Ctrl+X重启网络:
bash
运行
sudo wpa_cli reconfigure离线 SD 卡预配置(全新系统未开机)
电脑打开 SD 卡boot分区,新建wpa_supplicant.conf写入上面模板,插卡上电自动连接默认 WiFi。
常见问题
- 开机不自动切换高优先级 WiFiBookworm 优先读取 NetworkManager 配置,不要同时混用
nmcli和wpa_supplicant两套配置,统一只用一种方式修改。 - WiFi 搜不到 / 连接失败配置文件第一行必须写
country=CN(中国射频规范),否则 5G WiFi 无法使用。 - 想彻底删除旧 WiFi
bash
运行
# nmcli删除 sudo nmcli connection delete "旧WiFi名称"