树莓派在 10 月新出的 Bookworm 版本系统中,将使用多年的 dhcpcd 换成了 NetworkManager(以前是在rasp-config
中可选),这是因为 Raspberry Pi OS 使用的是 Debian 内核(和 Ubuntu 一样),所以树莓派的系统也叫做“Raspbian”。
这两个内核版本在一些方面有着巨大的区别,而且有些地方也趁着内核更新进行了修改。但是又因为特别新,所以很多问题的解决方案并没有老版本那么多,而且操作上也不一样,所以本文算是一个初步探索记录。
NetworkManager 是标准 Linux 网络配置工具套件。NetworkManager 除了能做所有 dhcpcd 能做的事情,还新增了很多功能,比如添加隐藏的 Wi-Fi、把树莓派当做一个无线热点。
树莓派趁着这次更新,把原本的 dhcpcd 改成了 NetworkManager。新的 NetworkManager 在配置网络方面好了很多。对于一些人来说减少了学习的东西,也让使用树莓派来入门的人更容易使用其他 Linux 发行版(比如 RedHat)。
树莓派中的 NetworkManager 提供了两种配置方式:
nmtui
,这个方法几乎可以做到大部分网络设置界面的功能;nmcli
,这个方法有点类似之前的 dhcpcd。本文只介绍一下nmtui
,因为这个方法比较直观,而且可以通过终端使用的,所以也可以直接通过 SSH 使用,这就方便多了。
直接在终端输入sudo nmtui
之后显示内容如下(在 Mac 的“终端”中通过 SSH 使用):
记得使用sudo
,否则无法保存修改。
Edit a connection
Edit a connection
修改网络连接的配置,如下:
这里我们修改Ethernet
中的Wired connection 1
的相关配置:将自动配置 IP 地址(Automatic)修改成本地连接(Link-Local),这样就可以在局域网中通过网线访问树莓派了,不然会 IP 地址解析失败或者ifconfig
显示没有 IP 地址。
修改方法是按回车键来显示菜单,然后选择某一选项,再按回车键确定。
上图中隐藏了很多设置,比如说设置静态 IP。这里在<Show>
处按回车,显示如下:
再按回车键收起这些详细设置。
修改完之后,到<OK>
处按回车保存修改。
然后按 ESC 键就可以退回上一节面了。
Activate a connection
Activate a connection
激活或者禁用某个接口的连接。注意不要通过 SSH 进行这类操作,否在会断开 SSH 并很长一段时间导致无法访问树莓派(应该是所有网络设备一起刷新了)。
如下显示的是 RJ45 接口和 Wi-Fi 的连接情况(仅供演示):
Set system hostname
Set system hostname
设置设备名,如下:
这里的 Bookworm 和 Bullseye 其实是 Debian 的版本名称。Debian 的版本名称都是玩具总动员中的角色。
Bookworm 是下面这个毛毛虫,出现在《玩具总动员3》的 1 小时 05 分 27 秒左右:
而上一代 Bullseye 则是那头经典的“驴”(其实是马,右数第二个):
这篇文章是树莓派官方详细介绍Bookworm版本做的变化和改进的博客:https://www.raspberrypi.com/news/bookworm-the-new-version-of-raspberry-pi-os/
这篇文章是NetworkManager 命令行工具的文档连接,末尾有很多示例,是个很好的文档:https://networkmanager.dev/docs/api/latest/nmcli.html
Red Hat 提供了一个不错的 NetworkManager 文档(有官方中文):配置和管理网络