3、边缘节点操作系统:Raspberry Pi OS安装、Ubuntu Server配置、系统初始化与安全加固

做边缘计算这几年,我折腾过不少操作系统。说实话,Raspberry Pi OS 和 Ubuntu Server 是我用得最多的两个。一个轻巧省资源,一个生态丰富。今天咱们就把这两套系统的安装、配置和加固流程,掰开了揉碎了讲清楚。

核心知识点速览

  • Raspberry Pi OS 的烧录与首次启动
  • Ubuntu Server 的无头安装(Headless Setup)
  • 系统初始化:时区、网络、SSH、换源
  • 安全加固:防火墙、密钥登录、自动更新
边缘节点操作系统 Raspberry Pi OS Raspberry Pi Imager 烧录 首次启动与 raspi-config Ubuntu Server cloud-init 无头安装 SSH 密钥配置 系统初始化 + 安全加固

3.1 Raspberry Pi OS 安装:从烧录到跑起来

我个人习惯用 Raspberry Pi Imager 来烧录系统。这工具官方出品,支持直接写入 SD 卡,还能提前配置 SSH、WiFi 和用户名密码。省去了插键盘显示器的麻烦。

烧录步骤:

  1. 下载 Raspberry Pi Imager(支持 Win/Mac/Linux)
  2. 选择操作系统 → Raspberry Pi OS (32-bit) 或 Lite 版
  3. 选择 SD 卡(建议 16GB 以上,Class 10 速度)
  4. 点击右下角齿轮图标,提前配置:
    • 启用 SSH(允许密码登录或公钥登录)
    • 设置用户名和密码(别用默认的 pi/raspberry)
    • 配置 WiFi(SSID 和密码)
    • 设置时区为 Asia/Shanghai
  5. 点击「写入」,等待完成

我的经验:烧录完成后,把 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 年。

安装流程:

  1. 下载 Ubuntu Server 22.04 LTS for Raspberry Pi
  2. 用 Raspberry Pi Imager 或 balenaEtcher 烧录到 SD 卡
  3. 烧录完成后,打开 SD 卡根目录下的 user-data 文件(cloud-init 配置)
  4. 写入以下配置:
#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 端口暴露在公网上,那跟裸奔有什么区别?

好了,到这里你的边缘节点操作系统就装好了,也做了基本的初始化与安全加固。这套流程我在多个项目里验证过,稳定可靠。接下来就可以开始部署你的数据采集服务了。


专注资料整理