树莓派安装Ubuntu Server 24.04 LTS:从镜像选择到SSH配置完整指南
1. 项目缘起为什么要在树莓派上折腾Ubuntu如果你手头有一块树莓派无论是经典的4B、新出的5代还是更早的型号你大概率已经玩过官方的Raspberry Pi OS。它稳定、易用对硬件支持完美。但当你开始尝试一些更“重型”或更“前沿”的开发任务时比如想用上特定版本的CUDA、运行一些对内核版本有要求的容器或者单纯就是想体验一个更“标准”的Linux发行版环境时Raspberry Pi OS可能就会显得有些局限。这时将目光投向Ubuntu Server就成了一个非常自然的选择。Ubuntu Server for ARM为树莓派提供了官方支持它带来了几个核心优势首先是软件生态的统一你在x86服务器上熟悉的apt源、软件包、配置方法在树莓派上几乎可以无缝迁移大大降低了学习和维护成本。其次是长期支持LTS你可以获得长达数年的安全更新和维护这对于需要稳定运行的服务至关重要。最后是社区和文档的丰富性任何你在Ubuntu上遇到的问题几乎都能找到海量的解决方案和讨论。然而给树莓派装Ubuntu尤其是第一次操作和给PC装系统感觉完全不同。它没有显示器、键盘鼠标的“标配”操作环境一切都要围绕“无头”Headless模式来规划。核心目标就一个让系统在第一次启动后就能通过网络SSH被访问到。这个过程看似简单实则暗藏几个关键决策点镜像选择、系统烧录、首次启动配置任何一个环节出错都可能让你对着一个毫无反应的绿色板子发呆。接下来我就结合自己多次给不同型号树莓派安装Ubuntu的经验把这个流程掰开揉碎了讲清楚目标是让你一次成功避免踩坑。2. 核心准备镜像选择、烧录与关键预配置安装的第一步不是急着把镜像写入SD卡而是做好充分准备。选错镜像或者漏掉关键配置后续会非常麻烦。2.1 镜像下载与型号匹配别下错了这是最容易出错的第一步。访问Ubuntu官方下载页面找到为树莓派准备的镜像。这里你需要格外注意你的树莓派具体型号。对于树莓派 4B 和 400你必须选择标注为raspi的镜像例如ubuntu-24.04.1-preinstalled-server-arm64raspi.img.xz。这个“raspi”版本包含了树莓派4B/400所需的特定固件和内核没有它系统可能无法正常启动。对于树莓派 5情况类似需要寻找专门为Pi 5构建的镜像通常也会在文件名中体现。对于树莓派 3B/3B通常可以使用标准的ARM64AArch64服务器镜像但使用raspi版本兼容性更好。注意直接使用通用的ubuntu-24.04.1-live-server-arm64.iso给树莓派4B/5烧录极大概率会失败。系统无法从SD卡正确引导。所以认准“raspi”或针对特定树莓派型号的版本是关键。2.2 系统烧录工具选型BalenaEtcher 还是 Raspberry Pi Imager烧录工具的选择直接影响预配置的便捷性。这里有两个主流选择Raspberry Pi Imager首选推荐这是树莓派基金会官方的工具其最大优势在于提供了高级选项。在烧录前你可以预先设置主机名、启用SSH并设置用户名/密码甚至配置Wi-Fi。这些设置会被直接写入到镜像中实现真正的开箱即用。对于无头安装这是最省心、最可靠的方式。BalenaEtcher这款工具以简洁、跨平台和稳定著称烧录速度也很快。但它只是一个纯粹的“烧录器”不提供任何预配置功能。如果你选择用它就需要在烧录完成后手动修改SD卡上的系统分区来启用SSH步骤会多一步。我的建议是无论你用什么工具烧录最终都要确保在首次启动前SD卡的system-boot分区FAT32格式里有一个名为ssh的空文件如果使用Imager的预配置则无需此操作这是告诉Ubuntu在首次启动时启用SSH服务的最关键信号。2.3 网络环境规划有线还是无线树莓派第一次启动需要获取IP地址才能被SSH连接。这里有线以太网是最稳定、最推荐的方式。只需用网线将树莓派连接到你的路由器或交换机它就会通过DHCP自动获取IP。如果你必须使用Wi-Fi则需要在烧录系统前就完成配置。如果使用Raspberry Pi Imager可以在高级选项中直接填入SSID和密码。如果使用其他工具则需要在SD卡的system-boot分区创建另一个名为network-config的文件并按照特定格式YAML写入Wi-Fi配置。对于新手我强烈建议首次配置务必使用有线网络排除了无线驱动和配置的潜在问题等系统起来并SSH登录后再在系统内配置Wi-Fi会更简单。3. 实战烧录与首次启动全流程假设我们为树莓派4B安装Ubuntu 24.04 LTS Server并使用有线网络。以下是详细步骤。3.1 使用Raspberry Pi Imager进行“一站式”烧录下载并安装Raspberry Pi Imager。运行Imager点击“Choose OS”滚动到最下方选择“Other general-purpose OS” - “Ubuntu”。在Ubuntu列表里选择“Ubuntu Server 24.04 LTS (Raspberry Pi)”或类似明确为树莓派优化的版本。点击“Choose Storage”选择你的SD卡读卡器对应的盘符操作前请确认SD卡数据已备份此操作会清空所有数据。关键步骤点击右下角的齿轮图标或“Advanced options”打开高级设置。Set hostname: 输入你喜欢的名字如ubuntu-pi4。Enable SSH:务必勾选。选择“Use password authentication”然后设置一个强密码。Set username and password: 设置你的用户名如pi或ubuntu和密码。注意Ubuntu Server的默认用户名是ubuntu你可以在这里改成你习惯的。Configure wireless LAN: 如果不用Wi-Fi可以跳过。Set locale settings: 建议设置时区如Asia/Shanghai。点击“Save”然后点击“Write”。Imager会先下载镜像如果本地没有然后验证并烧录同时将你的高级设置注入镜像。这个过程完成后你的SD卡就已经包含了可启动的系统、启用的SSH服务以及你设置的用户名密码。这是最推荐给新手的“无脑”流程。3.2 使用BalenaEtcher烧录手动启用SSH如果你因为某些原因使用了BalenaEtcher或dd命令进行了烧录那么启用SSH需要手动操作。用Etcher完成镜像烧录。烧录完成后电脑会识别出SD卡上的两个分区。第一个分区通常叫system-boot在Windows下可能显示为UEFI之类的但一定是FAT32格式。打开这个分区。在该分区的根目录下新建一个空的文本文件并将文件重命名为ssh注意没有.txt等任何扩展名。在Windows下你需要确保显示了文件扩展名然后新建“文本文档.txt”再将其重命名为ssh系统会提示“如果改变文件扩展名可能会导致文件不可用”点击“是”。安全弹出SD卡。这个空文件ssh的存在就是给Ubuntu第一次启动时的cloud-init服务的指令告诉它“请启动SSH守护进程。”3.3 上电启动与IP地址发现将配置好的SD卡插入树莓派连接网线和电源注意使用合适的电源适配器树莓派4B建议5V/3A。树莓派会开始启动指示灯会闪烁。第一次启动会进行系统初始化扩容分区、创建用户等时间可能稍长需要1-3分钟。此时你需要找到树莓派从路由器获取到的IP地址。有几种方法路由器管理后台登录你家路由器的管理界面通常是192.168.1.1或192.168.0.1在“已连接设备”或“DHCP客户端列表”中查找主机名如果你在Imager里设置了如ubuntu-pi4或设备名为“ubuntu”的设备其IP地址即为树莓派的IP。使用网络扫描工具在同一个局域网下的电脑上可以使用arp -a命令Windows/Linux/macOS通用查看ARP缓存表但可能需要树莓派有网络活动。更专业的工具如nmap可以进行IP段扫描例如nmap -sn 192.168.1.0/24查找开放的22端口SSH设备。使用mDNS推荐如果你的电脑支持mDNSmacOS和大多数Linux桌面版默认支持Windows 10/11需要安装“Bonjour服务”或使用支持的工具你可以直接使用主机名加.local后缀进行访问。例如如果你设置的主机名是ubuntu-pi4那么地址就是ubuntu-pi4.local。这是最方便的方法。4. SSH连接登录与基础安全加固获取到IP地址或.local主机名后就可以进行首次连接了。4.1 首次SSH连接打开你电脑上的终端Windows可使用PowerShell、Windows Terminal或PuTTY等SSH客户端。ssh ubuntu192.168.1.100或者使用主机名ssh ubuntuubuntu-pi4.local这里的ubuntu是默认用户名如果你用Imager自定义了就换成你设置的用户名。系统会提示你确认主机密钥输入yes然后输入密码。如果一切顺利你将看到Ubuntu的命令行提示符恭喜你成功登陆4.2 首次登录后的必要操作登录后不要急着开始部署应用先做这几件重要的事更新系统这是安全性和稳定性的基础。sudo apt update sudo apt upgrade -y这可能会花费一些时间更新所有软件包。修改默认密码即使你设置了强密码也建议修改一下。passwd可选但推荐启用防火墙Ubuntu默认安装了ufwUncomplicated Firewall但未启用。启用它并只放行必要的端口。sudo ufw allow ssh # 允许SSH连接这是必须的否则启用防火墙后自己会被踢出去 sudo ufw enable # 启用防火墙 sudo ufw status verbose # 查看防火墙状态以后如果需要开放Web服务如端口80、443再用sudo ufw allow 80/tcp等命令添加。可选配置静态IP如果你希望树莓派的IP地址固定不变避免因DHCP租约到期变化导致连接失效可以配置静态IP。这通常在路由器上设置DHCP静态分配更方便根据MAC地址固定IP。如果要在系统内配置需要编辑Netplan配置文件Ubuntu 18.04以后使用Netplan。sudo nano /etc/netplan/50-cloud-init.yaml找到你的网卡配置通常是eth0或有线连接修改为类似如下结构请根据你的网络环境调整network: ethernets: eth0: dhcp4: no addresses: [192.168.1.200/24] # 你想要的静态IP和子网掩码 gateway4: 192.168.1.1 # 你的网关地址 nameservers: addresses: [192.168.1.1, 8.8.8.8] # DNS服务器 version: 2保存退出CtrlX然后Y回车应用配置sudo netplan apply5. 常见问题排查与解决思路即使按照步骤操作也可能遇到问题。以下是几个典型场景的排查思路。5.1 无法获取IP地址或Ping不通检查物理连接网线是否插好路由器对应LAN口指示灯是否亮起树莓派电源是否稳定绿灯常亮/规律闪烁检查路由器DHCP登录路由器查看是否有新设备连接。有些路由器对陌生设备有隔离或需要认证。尝试直接连接电脑如果没有路由器可以用网线直接将树莓派连接到电脑网口并为电脑网卡设置一个静态IP如192.168.1.10/24然后尝试ping192.168.1.1树莓派可能的初始IP或扫描整个子网。检查镜像和烧录再次确认下载的镜像是否正确raspi版本以及烧录过程是否完整无误。可以重新格式化SD卡再烧录一次。5.2 SSH连接被拒绝或超时确认SSH服务已启用在树莓派启动并获取IP后等待足够时间2-3分钟让系统完全初始化。ssh空文件是否确实放在了system-boot分区根目录检查IP地址是否正确使用arp -a或路由器后台再三确认IP。检查防火墙在树莓派本地如果有显示器键盘或确认前不要启用ufw。如果是远程确保路由器或中间网络设备没有阻断22端口。尝试使用-v参数调试在SSH命令后加-v如ssh -v ubuntuip会输出详细连接过程有助于定位问题在哪一步失败如密钥交换、认证等。5.3 登录后提示“系统需要重启”有时在首次apt upgrade更新内核后会提示需要重启。这是正常的。使用sudo reboot命令重启即可。重启后SSH连接会断开稍等片刻再重新连接。5.4 性能问题或卡顿树莓派4B的硬件资源尤其是内存对于完整的Ubuntu Desktop图形界面可能有些吃力但对于Server版绰绰有余。如果感觉卡顿检查是否内存不足使用free -h命令。检查CPU负载使用htop命令需安装sudo apt install htop。确保使用高速SD卡这是影响树莓派IO性能的关键。强烈推荐使用Class 10、A1/A2等级的UHS-I microSD卡。有条件的话为树莓派4B/5配备USB 3.0的SSD移动硬盘作为系统盘性能会有质的飞跃。6. 进阶配置与优化建议系统跑起来只是开始要让树莓派稳定、高效地作为服务器工作还需要一些优化。6.1 更换国内软件源加速默认的Ubuntu软件源服务器在国外更新和安装软件速度可能很慢。更换为国内镜像源如阿里云、清华、中科大可以极大提升速度。备份原有源列表sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup编辑源列表文件以替换为阿里源为例sudo nano /etc/apt/sources.list将文件内容替换为适用于Ubuntu 24.04 Noble Numbatdeb https://mirrors.aliyun.com/ubuntu/ noble main restricted universe multiverse deb https://mirrors.aliyun.com/ubuntu/ noble-security main restricted universe multiverse deb https://mirrors.aliyun.com/ubuntu/ noble-updates main restricted universe multiverse deb https://mirrors.aliyun.com/ubuntu/ noble-proposed main restricted universe multiverse deb https://mirrors.aliyun.com/ubuntu/ noble-backports main restricted universe multiverse deb-src https://mirrors.aliyun.com/ubuntu/ noble main restricted universe multiverse deb-src https://mirrors.aliyun.com/ubuntu/ noble-security main restricted universe multiverse deb-src https://mirrors.aliyun.com/ubuntu/ noble-updates main restricted universe multiverse deb-src https://mirrors.aliyun.com/ubuntu/ noble-proposed main restricted universe multiverse deb-src https://mirrors.aliyun.com/ubuntu/ noble-backports main restricted universe multiverse保存退出然后更新软件包列表sudo apt update6.2 配置SSH密钥登录更安全使用密码登录SSH存在被暴力破解的风险。使用密钥对公钥/私钥认证更安全。在本地电脑生成密钥对如果还没有ssh-keygen -t ed25519 -C your_emailexample.com一路回车会在~/.ssh/目录下生成id_ed25519私钥和id_ed25519.pub公钥。将公钥上传到树莓派ssh-copy-id ubuntu树莓派IP输入密码后公钥就会被添加到树莓派~/.ssh/authorized_keys文件中。可选禁用密码登录为了极致安全可以在树莓派上配置SSH只允许密钥登录。sudo nano /etc/ssh/sshd_config找到并修改PasswordAuthentication no PubkeyAuthentication yes保存退出重启SSH服务sudo systemctl restart ssh重要在禁用密码登录前请务必确认你的密钥可以成功登录并且私钥已妥善保管6.3 基础服务与开发环境搭建一个干净的Ubuntu Server系统可以根据你的需求安装各种服务。Docker在树莓派上运行容器化应用的首选。# 安装依赖 sudo apt install -y ca-certificates curl # 添加Docker官方GPG密钥 sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod ar /etc/apt/keyrings/docker.asc # 添加Docker仓库 echo deb [arch$(dpkg --print-architecture) signed-by/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu noble stable | sudo tee /etc/apt/sources.list.d/docker.list /dev/null # 安装Docker引擎 sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin # 将当前用户加入docker组避免每次用sudo sudo usermod -aG docker $USER # 需要注销重新登录或执行 newgrp docker 使组生效Python/Node.js环境根据项目需要安装特定版本。# Python 3通常已预装可安装pip和虚拟环境 sudo apt install -y python3-pip python3-venv # Node.js (通过NodeSource仓库安装LTS版本) curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash - sudo apt install -y nodejs完成以上所有步骤你的树莓派就已经从一个裸板变成了一个拥有稳定Ubuntu系统、可通过SSH安全远程管理、并具备基础服务部署能力的微型服务器了。无论是作为家庭NAS、智能家居中枢、自动化脚本运行平台还是物联网网关、轻量级Web服务器它都已经做好了准备。