在物理服务器上部署应用,选 Ubuntu 版本的核心逻辑不是“哪个最新”,而是“稳定性”和“生命周期支持(LTS)”。
直接给结论:首选最新的 LTS 版本(Long Term Support),次选上一个 LTS 版本。
目前(2024年语境下),如果你现在要装新机器,请无脑选择 Ubuntu 22.04 LTS。如果业务极其保守且硬件较老,可以考虑 Ubuntu 20.04 LTS。坚决避开非 LTS 版本(如 23.10, 24.04 等中间版本),除非你是为了测试特定内核特性。
下面从几个实际运维和生产环境的维度,拆解为什么这么选,以及你在物理机上部署时需要注意的坑。
1. 为什么必须是 LTS?
Ubuntu 的版本分为两种:
- 常规版本(Non-LTS):每半年发布一次,仅支持 9 个月。比如 23.10。这类版本适合桌面用户尝鲜新特性,但在生产环境是灾难。9个月后没有安全补丁,你的服务器就变成了裸奔状态。
- 长期支持版(LTS):每两年发布一次(逢双数年),提供 5年 的标准免费支持。对于企业级用户,通过 Canonical 还可以购买 Extended Security Maintenance (ESM),再延长 3-5 年。
在物理机上,你不可能像云服务器那样随时快照回滚或秒级迁移。一旦系统底层库升级导致兼容性问题,排查成本极高。LTS 版本的软件包经过更长时间的冻结和测试,依赖关系更稳定,这是生产环境的基石。
2. 当前版本的具体对比与建议
推荐:Ubuntu 22.04 LTS (Jammy Jellyfish)
- 现状:目前的“当红炸子鸡”。内核版本 5.15+,对现代硬件(尤其是近3-4年发布的 CPU、网卡、NVMe SSD)驱动支持最好。
- 适用场景:绝大多数新建的物理服务器。无论是跑 K8s、Docker、数据库还是 Web 服务,22.04 都是平衡性最好的选择。
- 优势:社区资源最丰富,国内各大云厂商(阿里云、腾讯云、华为云等)的基础镜像都以此为主力,遇到报错搜到的解决方案最多。
备选:Ubuntu 20.04 LTS (Focal Fossa)
- 现状:上一代 LTS,依然非常稳定,但已进入维护中后期。
- 适用场景:
- 硬件比较老旧(例如 5-7 年前的服务器),新内核可能无法识别某些旧硬件或出现性能损耗。
- 现有应用栈强依赖某些旧版库(如特定的 Python 2/3 混合环境,或者某些闭源商业软件的官方认证列表只到 20.04)。
- 团队运维习惯尚未迁移,且短期内无重大升级计划。
- 注意:虽然还能用,但新出的高性能硬件在 20.04 上可能需要手动安装 HWE (Hardware Enablement) 内核才能发挥全部性能。
不推荐:Ubuntu 24.04 LTS (Noble Numbat)
- 现状:刚发布不久(2024年4月)。
- 风险:虽然它是未来的 LTS,但在刚发布的前6个月内,往往存在少量未发现的 Bug,尤其是涉及到底层驱动、虚拟化接口或第三方非开源组件时。
- 策略:如果你是互联网大厂的核心业务线,建议再观望 3-6 个月,等第一个 Point Release(如 24.04.1)出来后再上生产。如果是个人项目或非关键业务,可以尝试,但要做好排错准备。
3. 物理机部署的特殊考量(区别于云服务器)
在云服务器上,我们通常直接用厂商提供的镜像。但在物理机上,你面临的是裸金属(Bare Metal)环境,以下几点至关重要:
A. 内核与硬件兼容性
Ubuntu 默认安装的内核是通用内核。如果你的物理机有特殊的 RAID 卡(如 Dell PERC, HP Smart Array)、万兆网卡( Mellanox, Intel X710 )或 GPU,默认内核可能带不出驱动。
- 操作建议:安装时选择
Minimal Install或Server Install,不要选 Desktop。安装完成后,立即检查lspci和lsblk,确保所有硬件被正确识别。如有必要,启用 HWE 内核更新通道:sudo apt install --install-recommends linux-generic-hwe-22.04
B. BIOS/UEFI 设置
物理机的 BIOS 设置直接影响 Linux 的性能和稳定性:
- Secure Boot:建议关闭。虽然 Ubuntu 支持 Secure Boot,但第三方驱动(如 NVIDIA 显卡驱动、某些无线网卡驱动、ZFS 模块)在开启 Secure Boot 时会带来巨大的配置麻烦和编译负担。
- Power Management:设置为 Performance 模式,避免 CPU 频率波动过大影响实时性要求高的应用(如音视频处理、高频交易)。
- VT-x / AMD-V:确保开启,即使你不打算立刻做虚拟化,这也是未来扩容容器集群的基础。
C. 网络配置
物理机通常有多块网卡。Ubuntu 22.04 默认使用 Netplan 进行网络配置,而非传统的 /etc/network/interfaces。
- 务必确认 IP 分配方式:静态 IP 还是 DHCP?在生产环境中,强烈建议使用静态 IP,并通过
/etc/netplan/配置文件固化下来,防止重启后 IP 漂移导致服务不可达。 - Bonding/LACP:如果需要链路聚合,直接在 Netplan 中配置 Bonding,比后续手动修改脚本更可靠。
D. 自动化与初始化
不要在物理机上手动敲命令完成所有配置。使用 Ansible 或 Cloud-init(即使是物理机,也可以通过自定义 seed.iso 实现类 Cloud-init 的初始化)来保证每次重装系统的一致性。
- 物理机最容易出现的故障是人为配置差异。通过代码定义基础设施(IaC),是避免“这台机器能跑,那台不行”这种玄学问题的唯一解。
4. 总结行动指南
- 下载 ISO:去 Ubuntu 官网下载 Ubuntu Server 22.04.4 LTS(或最新的小版本)。
- 制作启动盘:使用 Rufus (Windows) 或 Etcher (Mac/Linux) 写入 U 盘。
- BIOS 检查:关闭 Secure Boot,开启 VT-x/AMD-V,调整电源管理。
- 安装过程:
- 语言:English(减少潜在编码问题,国内开发环境普遍 UTF-8)。
- 键盘布局:English (US)。
- 分区:推荐使用 LVM,方便后续扩容。如果数据极其重要,考虑 ZFS(需额外安装
zfsutils-linux,但 22.04 已原生较好支持)。 - 软件选择:勾选 OpenSSH server,其他按需。
- 安装后第一件事:
sudo apt update && sudo apt upgrade -y sudo reboot - 后续优化:禁用不必要的服务(如 snapd,如果不用 Snap 应用的话,Snap 在物理机上有时会导致启动变慢和磁盘占用高),配置防火墙(UFW),并设置自动安全更新。
最后提醒:无论选哪个版本,定期备份和监控告警比操作系统本身更重要。物理机坏了,换硬盘或整机替换即可,但数据丢了就是事故。
云技术博客