
别急着下载安装包先听我把这件事说透。CentOS 7 在 2024 年 6 月正式停止维护了这意味着市面上大量基于 CentOS 7 的服务器突然变成了“孤儿”——CVE 漏洞没人修安全补丁没人管软件仓库彻底冻结。很多朋友的服务器还在跑着老系统突然被告知“没得升级了”第一反应是换 Debian 还是换 Ubuntu但我个人建议如果你原本就是 CentOS 或者 RHEL 的生态使用者最平滑、最不折腾的路径是 Rocky Linux。这篇文章我会从零开始讲清楚 Rocky Linux 和 CentOS 的渊源、为什么它是 CentOS 的最佳替代再手把手带你走过安装、基础配置、yum 源设置、静态 IP 配置、常用命令、常见问题排查这些环节目标就是让你看完就能上手直接把自己的服务器平滑切换到 Rocky。这篇内容我尽量写得“不止是教程”还会把背后的原理、我踩过的坑、以及遇到问题时的排查思路一并分享所以篇幅会比较长建议先收藏再慢慢看。1. CentOS 退场后为什么 Rocky Linux 是最稳的接棒者1.1 CentOS 停止维护到底影响了谁CentOS 的生命周期大家要搞清楚CentOS 7 的支持截止到 2024 年 6 月 30 日CentOS 8 更早已经在 2021 年 12 月就结束了。也就是说凡是还在生产环境跑 CentOS 7/8 的机器都已经处于“裸奔”状态——官方不再推送安全更新不再修复内核漏洞yum 源里的软件版本也永远停留在那个时间点。影响最大的是三类人企业运维大量内部系统、Web 服务、数据库跑在 CentOS 上审计和合规要求必须有安全更新停维意味着无法过等保。个人开发者习惯了 yum/dnf 包管理、SELinux、firewalld 这套生态的人换到 Debian 系要重新熟悉 apt、ufw 等一堆工具成本太高。培训机构、自学新手很多教程、考试、面试题都是基于 CentOS 的系统没了但知识体系还在需要一个能无缝衔接的替代品。1.2 Rocky Linux 的来龙去脉它的血统到底正不正CentOS 停止维护后社区里出现了两个主要分支一个是 Rocky Linux另一个是 AlmaLinux。Rocky Linux 是 CentOS 创始人 Gregory Kurtzer 发起的项目目标是“CentOS 的继任者”。它通过获取 RHEL 的源码重新编译去掉 Red Hat 的商标和品牌标识再配好自己的仓库和基础设施最终产出一个和 RHEL 完全兼容的二进制发行版。这意味着你在 RHEL 上能跑的软件、能用的配置方式在 Rocky 上几乎一样适用。很多人问“Rocky 是免费的么能不能用在生产环境”答案是肯定的——免费、开源、可用于生产环境而且它是经过 RHEL 源码再编译的兼容性经过了大量企业验证。从 8.x 到 9.xRocky 提供了完整的生命周期支持通常 10 年左右这比 CentOS 原来的“免费但短命”模式要靠谱得多。1.3 Rocky、AlmaLinux、SteamOS、国产系统到底怎么选既然要替换 CentOS候选方案其实不少我列个表直观对比一下发行版血统生命周期兼容性适合谁Rocky LinuxRHEL 再编译8.x 至 20299.x 至 2032极高想平替 CentOS 的运维和开发者AlmaLinuxRHEL 再编译同样长期支持极高想要更“中立社区治理”的团队Ubuntu ServerDebian 系长期支持版 5 年需重新适应 apt新项目、云原生场景openEuler / 龙蜥社区版国内厂商主导兼容主流生态有国产化要求的政企项目如果只是“替换 CentOS”我首推 Rocky Linux。理由很朴素yum/dnf、SELinux、firewalld、systemctl 这套体系完全一致老运维零成本切换内核基于 RHEL 主线硬件兼容性好社区活跃度高遇到问题搜得到答案。2. 从零开始Rocky Linux 安装全程实录2.1 去哪里下载镜像选哪个版本新手最常见的错误到一个乱七八糟的镜像站下载了不明来源的 ISO结果安装过程中各种奇怪报错。我建议只从两个地方下载官网rockylinux.org点 Download 进入镜像列表。国内镜像站阿里云镜像、清华 TUNA、中科大镜像都提供 Rocky 的完整镜像下载速度更快。版本选择上目前主推 Rocky Linux 9.x 系列比如 9.6它对应 RHEL 9内核是 5.14 系支持更新的硬件和文件系统特性。如果你的服务器配置比较老、或者企业环境强制要求 8 系列那选 Rocky Linux 8.10 也完全可以仓库还在维护。架构选择绝大多数 x86 服务器选 x86_64。如果有 ARM 架构的机器选 aarch64。提示日常学习、测试、练手建议在虚拟机VMware Workstation / VirtualBox里安装别一上来就折腾物理机。我最初学的时候就是在虚拟机里反复折腾快照搞坏了回滚一下就能重新来效率特别高。2.2 虚拟机安装 Rocky Linux 的详细步骤这里以 VMware Workstation 为例手动创建一个虚拟机新建虚拟机选择“自定义高级” → 兼容性默认即可。安装来源选择“稍后安装操作系统”避免 VMware 自动简易安装带来的坑。客户机操作系统选“Linux”版本选 “Red Hat Enterprise Linux 9 64 位”Rocky 9 和 RHEL 9 在这里通用。处理器和内存按需分配建议至少 2 核 4GB 内存否则安装图形界面会很卡。磁盘大小建议 40GB 以上用“将虚拟磁盘存储为单个文件”性能更好也方便以后扩容。创建完成后在虚拟机设置里挂载下载好的 Rocky ISO 到 CD/DVD 光驱。开机进 BIOS 设置光驱引导一般虚拟机自动从光驱启动进入安装界面。安装界面有几个选项Install Rocky Linux 9.6标准安装、Test this media before installation先校验介质、Troubleshooting故障排查。一般直接选第一项。2.3 分区、软件包、root 密码安装中那几个关键决定安装向导走完后核心是几个配置页面分区新手机选“自动配置分区”就行但你要是给生产环境装我建议手动分区至少分出/boot1GB、/尽量大、swap内存小于 2GB 时建议等于内存的 1~2 倍有数据盘需求的再加/data之类。自动分区不是不对但手动分区能防止以后/被日志占满导致服务异常。软件包选择生产服务器我一般选“最小安装”Minimal Install省资源也安全后续需要什么再用 dnf 装。个人学习想先看到图形界面可以选“带 GUI 的服务器”。Root 密码设一个强密码或者用 SSH 密钥。这台机器如果打算长期跑服务强烈建议创建普通用户并赋予 sudo 权限别什么事都 root 一把梭。安装完成后重启第一次登录系统用普通用户登录然后 sudo su - 切到 root。到这里Rocky Linux 已经装好了。3. 装完之后立刻要做的三件事源、网络、更新3.1 先理解 yum 和 dnf 的关系Rocky Linux 8/9 默认的包管理工具是 dnf但你敲 yum 也能用因为在 Rocky 里 yum 被做成 dnf 的软链接语法完全兼容。很多人一上来敲yum update发现能用就以为还是 yum其实底层已经换成了 dnf。这就像你换了发动机但方向盘和油门刹车位置没变老司机开着毫无违和感。3.2 更换国内 yum 源解决下载慢的问题新装好的 Rocky 默认源指向官方仓库在国内服务器上速度极慢。我实测用阿里云镜像源同样的软件包下载速度能快十几倍。操作步骤如下以 Rocky 9 为例# 备份官方源配置 mkdir /etc/yum.repos.d/backup mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/ # 下载阿里云 Rocky 源配置 curl -o /etc/yum.repos.d/Rocky.repo https://mirrors.aliyun.com/repo/rocky-9.repo # 清理缓存并生成新缓存 dnf clean all dnf makecache # 测试更新 dnf update -y注意如果你用的是 Rocky 8.x把上面网址里的rocky-9.repo改成rocky-8.repo即可。清华、中科大、华为云也都有对应源选一个离你近的。有个细节阿里云的源文件里包含了 BaseOS、AppStream、Extras、CRB8 以前的 PowerTools等仓库这些仓库各有分工AppStream 里是常规应用软件Nginx、Python、Redis 等BaseOS 是核心包Extras 是额外组件CRB/PowerTools 是“开发库”和附加软件缺了它很多编译安装的依赖你根本装不上。建议这些源默认都启用省得以后再折腾。3.3 离线环境怎么搞定 yum 源内网隔离的服务器是运维常遇到的场景没法访问外网这时就需要做本地 yum 源。方案一使用 Rocky 安装光盘本身作为本地源。把 ISO 挂载到/mnt然后建一个 repo 文件mount /dev/cdrom /mnt cat /etc/yum.repos.d/local.repo EOF [local-baseos] nameLocal Rocky BaseOS baseurlfile:///mnt/BaseOS enabled1 gpgcheck0 [local-appstream] nameLocal Rocky AppStream baseurlfile:///mnt/AppStream enabled1 gpgcheck0 EOF dnf clean all dnf makecache方案二在一台能上网的同版本 Rocky 机器上执行dnf reposync把仓库完整同步下来再传到内网。这个方法更灵活但需要的时间和磁盘空间都比较大适合企业级离线仓库建设。4. 零基础必会的 Linux 常用命令清单既然标题里写了“零基础入门”命令这块必须给足干货。我不打算把 Linux 命令几百个全部罗列一遍而是挑出日常使用频率最高的一批按功能分类讲并且每个命令给出实用的例子。4.1 文件与目录操作不只是 ls 和 cdls、cd、pwd是最基础的但很多人不知道ls -lh可以显示人类可读的文件大小ls -lt按修改时间排序ls -ld */只看当前目录下的子目录。创建、删除、复制、移动文件是日常基本操作我补充几个高频组合# 创建多层目录-p 表示父目录不存在时自动创建 mkdir -p /data/logs/nginx # 复制目录时保留权限和属性 cp -a /opt/app/ /backup/app/ # 批量删除 .log 结尾且 30 天前的文件配合 find危险操作先 dry-run find /var/log -name *.log -mtime 30 -exec ls -l {} \;4.2 文本处理三剑客grep、sed、awk服务排查时文本处理是绕不开的。grep 查日志、sed 改配置、awk 做统计这三样必须熟练。# grep 递归搜索目录下所有包含关键字的文件 grep -rn error /var/log/ # sed 直接修改文件把 8080 端口改成 9090-i 是原地修改先备份更稳 sed -i.bak s/8080/9090/g /etc/nginx/nginx.conf # awk 按空格或制表符拆分打印第一列和第三列 awk {print $1, $3} /var/log/messages | head -20 # awk 统计统计日志中每个 IP 出现的次数 awk {print $1} /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -104.3 系统状态查看学会这些命令比装监控还管用许多新手都不知道服务器卡了应该先看什么。我建议按下面的顺序检查# 看 CPU 和负载 top # 按 P 按 CPU 排序按 M 按内存排序按数字1查看所有核 # 看内存 free -h # 看磁盘空间和 inode df -h df -i # 看磁盘 IO 和性能 iostat -x 1 # 需要安装 sysstat 包dnf install -y sysstat # 看网络连接状态 ss -tunlp其中df -i很多人忽略——磁盘明明还有空间但系统说“No space left on device”多半是 inode 耗尽了。小文件太多就会这样清理一下临时文件就好。5. 网络配置实战静态 IP 的设置与排查网络配置是新手最容易翻车的环节尤其是 Rocky Linux 9/10 之后网络管理默认走 NetworkManager配置文件写法也有了新变化。这一章我重点讲三种方式你任选一种适合自己的。5.1 用 nmcli 配置静态 IP推荐nmcli 是 NetworkManager 的命令行工具Rocky 9 系列几默认使用它管理网络。它最大的好处是改了配置后可以立即生效不用重启网络服务。查看当前网络连接nmcli con show假设你的网卡连接名字叫ens160要设置静态地址 192.168.1.100网关 192.168.1.1DNS 用 114.114.114.114# 修改连接为静态 IP同时指定网关和 DNS nmcli con mod ens160 ipv4.method manual ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns 114.114.114.114 223.5.5.5 # 重启连接使配置生效 nmcli con down ens160 nmcli con up ens160 # 验证 ip addr show ens160 ip route show5.2 修改网卡配置文件方式有些老运维习惯了直接编辑/etc/sysconfig/network-scripts/ifcfg-ens160在 Rocky 9 上依然行得通但需要手动触发 NetworkManager 重新加载。配置文件的核心内容大概这样TYPEEthernet BOOTPROTOnone NAMEens160 DEVICEens160 ONBOOTyes IPADDR192.168.1.100 PREFIX24 GATEWAY192.168.1.1 DNS1114.114.114.114 DNS2223.5.5.5保存后执行nmcli con reload nmcli con up ens1605.3 网络排查ping 不通时应该怎么办网络配置完成不代表就没问题了。我遇到过很多次“IP 明明配了但 ping 不通”排查思路要清晰先看本机地址ip addr确认 IP 和掩码是否正确。再看网关ip route确认默认路由是不是走了正确接口。ping 网关如果通说明链路没问题如果不通查交换机和网卡驱动。ping 8.8.8.8能通但是ping 域名不通多半是 DNS 问题检查/etc/resolv.conf。最后查防火墙systemctl status firewalld测试时可以临时systemctl stop firewalld排除干扰。另外说一个我踩过的坑虚拟机克隆出来的 Rocky网卡名称会因为 MAC 地址变化重新变成ens224或者ens192旧配置就失效了。这时候别慌按新网卡名重新配置一份 ifcfg 文件就行或者直接删掉旧网卡配置让 NetworkManager 重新生成。6. yum 源配置与软件安装的那些坑6.1 Rocky 8.10 的 yum 源到底应该配什么很多用户直接搜“Rocky Linux 8.10 yum 源”搜到一堆老教程结果配完发现dnf update报错。原因在于Rocky 8.10 是 8 系列的最终版本它的源和旧版 8.x 略有差异某些老版本源的 URL 已经失效。我建议直接用官方仓库提供的rocky-8.repo文件别手动拼 URL。比如阿里云的 Rocky 8 源配置cat /etc/yum.repos.d/Rocky.repo EOF [baseos] nameRocky Linux $releasever - BaseOS baseurlhttps://mirrors.aliyun.com/rocky/$releasever/BaseOS/$basearch/os/ enabled1 gpgcheck1 gpgkeyfile:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-8 [appstream] nameRocky Linux $releasever - AppStream baseurlhttps://mirrors.aliyun.com/rocky/$releasever/AppStream/$basearch/os/ enabled1 gpgcheck1 gpgkeyfile:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-8 [extras] nameRocky Linux $releasever - Extras baseurlhttps://mirrors.aliyun.com/rocky/$releasever/extras/$basearch/os/ enabled1 gpgcheck1 gpgkeyfile:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-8 EOF6.2 安装 Nginx、Redis、Python 的实操演示先更新一次dnf clean all dnf makecache dnf update -y安装 Nginxdnf install -y nginx systemctl enable --now nginx systemctl status nginx安装 Redisdnf install -y redis systemctl enable --now redis redis-cli ping安装 Python 相关环境Rocky 9 默认自带 Python 3.9但很多新项目需要 3.11 以上。可以用 AppStream 里的高版本模块dnf module list python* # 查看可用 python 模块 dnf module install -y python39如果想用更新版本我一般推荐用源码编译或者 pyenv这个后面单独开一篇讲。实操心得生产环境安装软件前先dnf provides查包比如不知道哪个包提供了/usr/bin/nginx可以用dnf provides /usr/bin/nginx搜索。这比瞎猜包名高效多了。7. 进阶之路从会用到会排查再到能优化7.1 学会看日志等于拥有透视眼服务器出了故障第一现场在日志里。/var/log/messages系统通用日志很多服务和内核消息都写在这里。/var/log/secure登录认证日志SSH 暴力破解、sudo 提权都记录在这里。/var/log/cron定时任务日志。/var/log/dnf.log软件安装更新日志。排查问题的黄金命令组合tail -f /var/log/messages # 实时跟踪系统日志 journalctl -u nginx --since 30 min ago # 查看某个服务的近期日志 dmesg | tail -20 # 内核环形缓冲区的最后部分消息硬件故障常常看这里7.2 系统扩容从根分区不够到扩容完成服务器跑久了根分区满了这是最常见的故障。但很多人以为“扩容”就是把磁盘镜像变大其实没那么简单。如果是虚拟机流程大概是在 VMware/云控制台把磁盘从 40G 扩展到 80G。进系统用lsblk确认新空间是否已被系统识别。用growpart扩展分区。用xfs_growfsXFS 文件系统Rocky 默认或者resize2fsext4扩展文件系统。# 查看原分区情况 lsblk # 扩展第一块磁盘的第一个分区 growpart /dev/sda 1 # 如果是 XFS 文件系统 xfs_growfs / # 如果是 ext4 resize2fs /dev/sda1操作之前务必做好备份磁盘操作出问题数据没了就很难找回来。7.3 从零搭建一台 KVM 虚拟化服务器虚拟机化是企业里绕不开的技能。Rocky 上部署 KVM 其实没有想象中复杂# 安装 KVM 相关软件 dnf install -y qemu-kvm libvirt virt-install bridge-utils # 启动 libvirt 服务 systemctl enable --now libvirtd # 查看是否支持硬件虚拟化有 vmx/svm 才支持 grep -E (vmx|svm) /proc/cpuinfo # 通过 virt-install 命令行安装一台虚拟机 virt-install \ --name test-vm \ --ram 2048 \ --disk path/var/lib/libvirt/images/test-vm.qcow2,size20 \ --vcpus 2 \ --os-variant centos-stream9 \ --network bridgevirbr0 \ --graphics none \ --location /path/to/os.iso \ --extra-args consolettyS0KVM 整套体系比较庞大涉及网络桥接、存储池、快照、迁移等如果大家感兴趣我后面单独写一篇详细的 KVM 入门到实战。8. 常见问题速查表与避坑清单这一节我把平时答疑中最常见的问题整理成一个速查表方便你遇到问题直接翻问题现象可能原因快速解决dnf 安装软件报 404源配置失效、版本变化重新下载对应版本的 repo 文件注意 8.x 和 9.x 不能混用ping 不通外网但内网正常网关或 DNS 配置错误ip route查看默认路由cat /etc/resolv.conf检查 DNSSSH 登录慢卡很久DNS 反向解析超时修改/etc/ssh/sshd_config设置UseDNS no重启 sshd服务器时间不对时区或 chrony 服务异常执行timedatectl set-timezone Asia/Shanghai确认chronyd在运行root 密码忘了——重启进 GRUB 菜单按 e 编辑在 linux 行尾加rd.break进入紧急模式重置密码CentOS 7 迁移到 Rocky 9 后服务起不来SELinux 或旧软件版本问题先setenforce 0临时测试再调整 SELinux 策略替换软件到新版本几个我个人的独家经验每次改配置前先备份不管是/etc下的配置文件还是数据库cp xxx xxx.bak的习惯能救命。安装软件尽量用 dnf 而不是源码编译dnf 会自动处理依赖和后续升级源码编译升级麻烦卸载更麻烦。虚拟机或云主机及时做快照尤其是刚装好系统、配好基础环境之后快照一张后面随便折腾都能回到正常状态。学会看文档但也要学会搜错信息报错信息里的关键字有时候比教程更有用把报错原文复制到搜索引擎往往能直接定位。9. 最后说点真心话折腾 Linux 这些年我最大的体会是别怕踩坑。比如我第一次配置 Rocky 静态 IP 时用的还是 CentOS 6 的老思路结果 Rocky 9 的 NetworkManager 权限管理更严格我改了文件却忘了 reload折腾了快半小时才反应过来。后来学聪明了每个新版本出来先看官方 release notes再动手操作。替换 CentOS 这件事本质上是生态系统的一次代际更替Rocky Linux 的出现给了我们一个非常平滑的跳板——命令熟悉、配置熟悉、社区活跃迁移成本低到可以忽略。如果你手头还有 CentOS 7/8 的服务器我建议别再等了找台测试机先装个 Rocky把你常用的服务一样一样迁移过去早迁早安心。后续我还会再写几篇跟 Rocky 相关的实战文章比如生产环境安全加固、DNS 服务器搭建、Nginx 反向代理与负载均衡、Shell 脚本自动化运维等有兴趣的话可以持续关注。有什么问题也欢迎在评论区交流我看到都会回复。