3、边缘节点操作系统:Raspberry Pi OS安装、Ubuntu Server配置、系统初始化与安全加固
做边缘计算这几年,我折腾过不少操作系统。说实话,Raspberry Pi OS 和 Ubuntu Server 是我用得最多的两个。一个轻巧省资源,一个生态丰富。今天咱们就把这两套系统的安装、配置和加固流程,掰开了揉碎了讲清楚。
核心知识点速览
- Raspberry Pi OS 的烧录与首次启动
- Ubuntu Server 的无头安装(Headless Setup)
- 系统初始化:时区、网络、SSH、换源
- 安全加固:防火墙、密钥登录、自动更新
3.1 Raspberry Pi OS 安装:从烧录到跑起来
我个人习惯用 Raspberry Pi Imager 来烧录系统。这工具官方出品,支持直接写入 SD 卡,还能提前配置 SSH、WiFi 和用户名密码。省去了插键盘显示器的麻烦。
烧录步骤:
- 下载 Raspberry Pi Imager(支持 Win/Mac/Linux)
- 选择操作系统 → Raspberry Pi OS (32-bit) 或 Lite 版
- 选择 SD 卡(建议 16GB 以上,Class 10 速度)
- 点击右下角齿轮图标,提前配置:
- 启用 SSH(允许密码登录或公钥登录)
- 设置用户名和密码(别用默认的 pi/raspberry)
- 配置 WiFi(SSID 和密码)
- 设置时区为 Asia/Shanghai
- 点击「写入」,等待完成
我的经验:烧录完成后,把 SD 卡插回电脑,在 boot 分区里创建一个名为 ssh 的空文件(无后缀名),可以强制开启 SSH。这招在旧版 Imager 上特别管用。
首次启动后,建议立即运行 sudo raspi-config。这里有几个必调项:
- Interface Options → 开启 I2C、SPI、UART(接传感器必备)
- Localisation Options → 设置 Locale 为 zh_CN.UTF-8
- Advanced Options → 扩展文件系统(自动用满 SD 卡空间)
3.2 Ubuntu Server 配置:无头安装实战
Ubuntu Server 没有桌面,适合做纯边缘计算节点。我一般在项目里用 22.04 LTS 版本,稳定,支持到 2027 年。
安装流程:
- 下载 Ubuntu Server 22.04 LTS for Raspberry Pi
- 用 Raspberry Pi Imager 或 balenaEtcher 烧录到 SD 卡
- 烧录完成后,打开 SD 卡根目录下的
user-data文件(cloud-init 配置) - 写入以下配置:
#cloud-config
users:
- name: edgeadmin
ssh_authorized_keys:
- ssh-rsa AAAAB3NzaC1yc2EAAA... # 你的公钥
sudo: ['ALL=(ALL) NOPASSWD:ALL']
groups: sudo
shell: /bin/bash
ssh_pwauth: false
disable_root: true
package_update: true
package_upgrade: true
timezone: Asia/Shanghai
注意:cloud-init 的缩进必须是 YAML 格式,用空格不能用 Tab。我曾经因为一个缩进错误,导致 SSH 没配成功,最后只能插显示器重搞。嗯,血的教训。
配置好之后,把 SD 卡插到树莓派上电。等 2-3 分钟,从路由器后台找到它的 IP,然后 SSH 登录:
ssh edgeadmin@192.168.1.xxx
3.3 系统初始化:让边缘节点「规规矩矩」
系统装好只是第一步。我习惯按这个顺序做初始化:
| 步骤 | 命令/操作 | 说明 |
|---|---|---|
| 1. 换源 | sudo sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list |
中科大源,国内下载快 |
| 2. 更新系统 | sudo apt update && sudo apt upgrade -y |
打上所有安全补丁 |
| 3. 安装基础工具 | sudo apt install -y vim htop net-tools git curl wget |
边缘节点调试必备 |
| 4. 设置主机名 | sudo hostnamectl set-hostname edge-node-01 |
方便网络识别 |
| 5. 配置静态 IP | 编辑 /etc/netplan/01-netcfg.yaml |
避免 DHCP 变动导致失联 |
静态 IP 配置示例(Ubuntu Server 22.04):
network:
version: 2
ethernets:
eth0:
dhcp4: no
addresses:
- 192.168.1.100/24
gateway4: 192.168.1.1
nameservers:
addresses: [114.114.114.114, 8.8.8.8]
配置完执行 sudo netplan apply 生效。你想想看,如果 DHCP 突然给你换了个 IP,远程连不上边缘节点,那得多尴尬。
3.4 安全加固:别让你的节点变成「肉鸡」
边缘节点暴露在网络中,安全是第一位的。我见过太多人图省事,结果被扫描工具直接攻破。下面这几步,建议一个都别省。
3.4.1 防火墙:UFW 走起
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw allow 1883/tcp # MQTT 端口,按需开放
sudo ufw enable
sudo ufw status verbose
说白了,只开你需要的端口。其他一律拒绝。
3.4.2 SSH 密钥登录 + 禁用密码
密码登录太容易被暴力破解了。我建议只用密钥登录:
# 在客户端生成密钥(如果还没有)
ssh-keygen -t ed25519 -C "edge-node-key"
# 复制公钥到边缘节点
ssh-copy-id edgeadmin@192.168.1.100
# 登录后,编辑 /etc/ssh/sshd_config
# 修改以下参数:
PasswordAuthentication no
PubkeyAuthentication yes
PermitRootLogin no
# 重启 SSH 服务
sudo systemctl restart sshd
重要:在禁用密码登录之前,务必确认你的密钥能正常登录。我曾经远程改完配置后,发现密钥没配对,自己把自己锁在外面了。最后只能跑现场插显示器解决。别学我。
3.4.3 自动安全更新
sudo apt install unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades
配置好后,系统会在凌晨自动安装安全更新。边缘节点通常无人值守,这个功能能帮你省不少心。
3.4.4 其他加固建议
- 修改默认端口:SSH 从 22 改成 2222 或其他高位端口(减少扫描命中率)
- 安装 fail2ban:连续登录失败自动封禁 IP
- 禁用 ICMP 响应:防止被 ping 扫描发现
- 日志审计:开启
auditd记录关键操作
我的习惯:每次做完加固,我都会用 nmap 从外部扫描一下节点,看看暴露了哪些端口。如果发现不该开的端口,立刻关掉。你想想看,一个边缘节点如果开着 3306 端口暴露在公网上,那跟裸奔有什么区别?
好了,到这里你的边缘节点操作系统就装好了,也做了基本的初始化与安全加固。这套流程我在多个项目里验证过,稳定可靠。接下来就可以开始部署你的数据采集服务了。