先说结论:新项目上线,别犹豫,直接选 Rocky Linux(或 AlmaLinux),并且强烈建议锁定在 EL8 版本,不要碰 CentOS Stream。
如果非要二选一,Rocky Linux 是 CentOS 精神续作中唯一值得推荐的生产级替代方案。至于 CentOS 8,它已经结束了生命周期(EOL),连官方仓库都关了,现在装上去就是给自己埋雷。
下面从几个维度给你掰扯清楚,为什么这么选,以及踩坑指南。
1. 为什么 CentOS 8 已经“入土”了?
很多人对 CentOS 还有情怀,觉得它是 RHEL 的免费克隆版。但事实很残酷:
- EOL 时间已过:CentOS 8 已于 2021 年底停止维护。这意味着没有安全补丁,没有 Bug 修复。在生产环境跑一个没补丁的系统,等于裸奔。
- 镜像源失效:虽然网上还有一些第三方镜像站还在同步旧数据,但官方源已经归档。你
yum update可能会遇到各种依赖地狱或者连接超时,排查起来极其痛苦。 - 社区共识:国内各大云厂商、开源社区、企业运维团队,早已集体抛弃 CentOS 8。没人再为它写教程,没人再提供技术支持。
所以,“选择 CentOS 8”这个选项本身就不存在,除非你想体验“半夜被报警短信叫醒修系统”的感觉。
2. Rocky Linux vs. CentOS Stream:到底选谁?
既然排除了 CentOS 8,剩下的主流选择其实是 Rocky Linux / AlmaLinux 和 CentOS Stream。这两者定位完全不同,别搞混了。
A. Rocky Linux(及 AlmaLinux)—— 真正的“平替”
- 定位:二进制兼容 RHEL(Red Hat Enterprise Linux)。
- 特点:你编译好的 RPM 包,在 Rocky 上能跑;在 RHEL 上也能跑。反之亦然。它是社区驱动的,由 CloudLinux 公司支持(Alma 也是类似背景)。
- 适用场景:绝大多数生产环境。特别是那些对稳定性要求极高、需要长期运行(3-5年不动)、且不想支付 Red Hat 订阅费的企业。
- 优势:稳定、保守、符合传统运维习惯。代码逻辑简单粗暴:上游发布什么,我就克隆什么。
B. CentOS Stream —— “滚动预览版”
- 定位:RHEL 的上游开发分支。
- 特点:它不是 RHEL 的克隆,而是 RHEL 的“测试版+准正式版”。你在 CentOS Stream 8/9 上看到的特性,未来会在 RHEL 中出现,但可能还没经过 RHEL 那套严格的 QA 流程。
- 适用场景:开发者、CI/CD 流水线、或者希望提前体验最新内核/软件栈的场景。
- 风险:对于核心业务系统,Stream 偶尔会出现因为上游变动导致的兼容性问题。虽然概率不高,但在XX、电信等强一致性要求的行业,很多 CTO 不敢用。
结论:如果你想要的是“以前那个稳定的 CentOS”,那就选 Rocky Linux。
3. 版本选择:EL8 还是 EL9?
这是另一个关键决策点。目前 Rocky Linux 主要版本是 8.x 和 9.x。
| 特性 | Rocky Linux 8 (基于 RHEL 8) | Rocky Linux 9 (基于 RHEL 9) |
|---|---|---|
| 生命周期 | 至 2029 年 5 月 | 至 2032 年 6 月 |
| 内核版本 | 较老(4.18),但极度稳定 | 较新(5.14+),支持新硬件 |
| 软件生态 | 兼容绝大多数老旧应用 | 默认 Python 3.9, GCC 11+,更现代 |
| 容器支持 | Docker + Podman | Podman 原生支持更好,Docker 需额外配置 |
| 推荐指数 | ⭐⭐⭐⭐ (存量迁移首选) | ⭐⭐⭐⭐⭐ (新项目首选) |
建议:
- 如果是全新项目,且你的技术栈比较新(比如用了较新的 Java 版本、Go 语言、Kubernetes 等),直接上 Rocky Linux 9。它的生命周期更长,直到 2032 年,你可以安心用很久。
- 如果你的项目依赖一些非常老的库(比如某些遗留的 Oracle 客户端、老旧的中间件),而它们在 EL9 上编译困难,才考虑 EL8。但目前来看,EL9 的兼容性已经做得很好了。
4. 国内云计算厂商的实际操作建议
在国内阿里云、腾讯云、华为云等平台,你会发现它们都有自己的“私有化”发行版:
- 阿里云 Anolis OS(龙蜥):基于 CentOS/RHEL 体系,深度优化,与阿里云 ECS 结合紧密。
- 腾讯云 TLinux:同样基于 RHEL/CentOS 生态。
- 华为欧拉 openEuler:注意!openEuler 是独立分支,虽然兼容 RPM,但它有自己的演进路线,不完全等同于 Rocky/CentOS。
实操建议:
- 通用场景:直接使用 Rocky Linux 9 的官方 ISO 制作自定义镜像,或者使用云厂商提供的“自定义镜像”功能导入。这样最干净,没有厂商预装的监控XX干扰。
- 重度绑定某家云:如果你确定未来几年只在这家云上玩,且需要深度集成(比如自动挂载云盘、无缝对接云监控),可以用该厂商的衍生版(如 Anolis OS 8/23)。但要注意,Anolis 也在逐步向自己的方向演进,长期看可能存在偏离标准 RHEL 的风险。
- 合规性提醒:无论选哪个,确保你的软件许可证(License)允许在 Rocky/Alma 上使用。大多数商业软件都声明兼容 RHEL,而 Rocky 承诺二进制兼容,所以理论上没问题。但最好保留一份兼容性声明截图,以备审计。
5. 迁移或部署时的避坑指南
- 不要手动改
/etc/os-release:有些教程教你把 CentOS 改成 Rocky,那是错误的。应该全新安装。 - 防火墙与 SELinux:Rocky Linux 默认开启 SELinux。新手容易踩坑,导致权限问题查半天。建议初期设置为
permissive模式,熟悉后再调整策略,或者直接禁用(不推荐,但不影响基本功能)。 - YUM/DNF 源配置:确保使用国内镜像源(如清华、阿里、网易的 Rocky 镜像),否则
dnf install会慢到让你怀疑人生。# 示例:更换为清华源 sudo sed -i 's/mirrorlist=/#mirrorlist=/g' /etc/yum.repos.d/CentOS-* sudo sed -i 's|#baseurl=|baseurl=|g' /etc/yum.repos.d/CentOS-* sudo sed -i 's|vault.centos.org|mirrors.tuna.tsinghua.edu.cn/rocky|g' /etc/yum.repos.d/CentOS-* sudo dnf makecache - 内核参数调优:新项目上线前,务必检查
sysctl.conf的网络参数(如net.ipv4.tcp_tw_reuse等),根据业务类型(高并发 Web、数据库等)进行微调。
总结
- CentOS 8:淘汰,勿选。
- CentOS Stream:谨慎,适合开发测试或非核心业务。
- Rocky Linux 9:推荐,新项目首选,稳定、长寿、社区活跃。
- 部署方式:全新安装,使用国内镜像源,做好基础安全加固。
最后说一句,运维的本质是可预测性。Rocky Linux 提供的就是这种可预测性——它明天不会突然变成另一个东西,它只是今天 RHEL 的精确复制品。这对于生产环境来说,比任何花哨的新特性都重要。
云技术博客