news 2026/9/16 0:36:19

CentOS停更替代方案:Rocky Linux从零到KVM虚拟化实战指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CentOS停更替代方案:Rocky Linux从零到KVM虚拟化实战指南

“CentOS还能用吗?”这是我近两年被问最多的一句话。如果你也是奔着这个问题点进来的,那我直接给结论:CentOS 8在2021年底就停止维护了,CentOS 7也将在2024年6月正式退役。对于跑业务的服务器来说,继续用等于裸奔。而Rocky Linux,就是目前最接近CentOS的替代品——它是RHEL的二进制兼容发行版,你可以把它理解成“CentOS换个名字继续活”。这套内容就是我从零开始摸Rocky Linux的完整记录,从虚拟机安装到静态IP、从常用命令到软件部署、再到系统扩容和KVM虚拟化,一条线走下来,零基础看完也能动手搭一套自己的Linux环境。想转运维、准备面试、或者单纯想搞明白服务器里跑的东西,都能从里边找到实操能用的东西。

1. 为什么我一直劝你从CentOS切到Rocky

1.1 CentOS停更后,服务器系统怎么选

这事得从头说清楚。Red Hat在2020年宣布将CentOS从“稳定发行版”调整为“滚动发行版”,简单说就是从CentOS 8开始,它不再是一个能稳定跑十年的系统了,而是变成了RHEL的“上游测试版”。这对生产环境是致命的:你永远不知道下一次yum update会把哪个包搞坏,安全补丁也不能及时同步。CentOS 7虽然还能撑到最后,但2024年6月30日之后,官方源彻底关闭,只能靠第三方源续命,这对企业来说是巨大的风险。

我当时评估过好几条路:直接换Ubuntu Server,社区活跃但命令风格和RHEL系差异较大,老员工上手成本高;换Debian,稳定但资料少;用 AlmaLinux 或 Rocky Linux,都是RHEL的兼容分支。我最后选了Rocky,原因是它的社区背景和品牌延续性——创始人是CentOS的联合创始人Gregory Kurtzer,项目定位就是“CentOS停止后的社区企业Linux”。最关键的,Rocky的软件包、命令、目录结构、内核参数和RHEL保持高度一致,原来的CentOS脚本可以直接跑,工单和文档也基本通用。

1.2 Rocky Linux到底兼容到什么程度

说“兼容”不是嘴上说说。我用Rocky 9.3和RHEL 9.3做过对比,yum源指向换成RHEL的订阅源后,系统更新能正常走通;同一个编译好的rpm包在两者上都能安装,依赖解析一致;systemctl管理的服务名、防火墙规则写法、SELinux上下文,几乎看不出差别。这意味着市面上所有针对CentOS的教程、书、面试题,换到Rocky上依然百分之九十以上可用。

版本选择上,当前主流是Rocky 9.x系列(基于RHEL 9),内核较新,对云服务器友好。如果是有老业务强依赖CentOS 7环境的,可以选Rocky 8.x(基于RHEL 8),生命周期更长。下载建议直接走清华镜像站(mirrors.tuna.tsinghua.edu.cn)或者官方mirror sites,选择对应的ISO镜像,DVD版包含常用软件包,Minimal版适合后面自己按需装。不推荐百度搜索下载站,各种捆绑和旧版本,踩坑成本极高。

2. 先搭出第一台Rocky Linux环境

2.1 用VMware Workstation创建虚拟机

零基础建议先在虚拟机里玩,弄坏了直接快照回滚,比真机舒服一百倍。我用的是VMware Workstation 17,VirtualBox也行,但VMware的虚拟硬件兼容性更好。新建虚拟机时选“典型(推荐)”,操作系统选“Red Hat Enterprise Linux 9 64位”,因为Rocky就是RHEL的同胞兄弟。

内存建议给4GB,CPU给2核,磁盘40GB,网络选NAT模式。NAT模式下虚拟机通过宿主机上网,虚拟机能访问外网,外部访问不到虚拟机,学习阶段很安全。下载好的Rocky 9.3 ISO镜像,在CD/DVD选项里挂载上。

启动虚拟机后,安装界面选择“Install Rocky Linux 9.3”,英文界面不用管,不影响后续操作。安装过程中最容易卡住的是分区。新手别碰自定义分区,直接用“自动配置分区”,系统会自动创建boot、root、swap。如果以后要用KVM虚拟化,记得手动留一块空闲磁盘空间,后面专门给虚拟机磁盘文件用。

安装过程中需要设置root密码和创建普通用户。这里有个细节:root密码别设太简单,否则安装程序会拒绝继续,会提示弱密码要求确认。普通用户选“设为管理员”以便后面用sudo提权。

安装完成后重启,进入系统就是一个黑乎乎的字符界面。这很正常,Minimal/DVD版默认不带图形界面。很多新手看到命令行就懵,但Linux服务器本来就是命令行操作,越早习惯越好。

2.2 第一次登录后的三个必做配置

进系统先做三件事:固定IP、配置主机名、关闭SELinux或学会看它的状态。

第一件事,固定IP。VMware的NAT模式默认开DHCP,IP地址重启后可能变。生产环境服务器IP必须固定,这也是热词里大家都搜“rocky linux设置静态ip”的原因。我用nmcli操作,这套命令是NetworkManager的标准接口,比直接改网卡配置文件更不容易出错。先看网卡名:

nmcli device status

显示ens33之类的名字后,执行:

sudo nmcli connection modify ens33 ipv4.addresses 192.168.88.100/24 ipv4.gateway 192.168.88.2 ipv4.dns 223.5.5.5 ipv4.method manual sudo nmcli connection up ens33

其中192.168.88.100是你要固定的IP,网关和DNS按自己虚拟机网络配置来。改完用ip addr check一下,IP没跑掉就说明生效了。

第二件事,改主机名:

sudo hostnamectl set-hostname rockserver

第三件事,SELinux默认为Enforcing,新手跑服务时经常被权限拦住。学习阶段可以先把它设为Permissive(只记录不阻止),改配置文件/etc/selinux/config,把SELINUX=enforcing改成permissive,重启后生效。生产环境建议保持Enforcing,面试问到SELinux也要能说上两句,它是RHEL系的安全基石。

2.3 用SSH远程连接Rocky

真实服务器都是通过SSH远程管理的,不可能一直在屏幕前。Rocky默认安装了openssh-server,但很多Minimal版初始未启动。先手动启动并设置自启:

sudo systemctl start sshd sudo systemctl enable sshd sudo systemctl status sshd

启动成功后在Windows上用终端(Windows Terminal或Xshell)连接:

ssh root@192.168.88.100

这里有个最常见的坑:连接直接报“Connection refused”。多半是sshd没启动,或者防火墙拦了。查看防火墙状态:

sudo systemctl status firewalld sudo firewall-cmd --list-all

如果没加过22端口,执行:

sudo firewall-cmd --permanent --add-port=22/tcp sudo firewall-cmd --reload

还有朋友遇到“root连接不上”,如果确认密码正确,可能是/etc/ssh/sshd_config里PermitRootLogin被禁了。默认RHEL系从Rocky 9开始禁止root直接SSH登录,安全考虑。如果要远程root登录,编辑文件:

sudo vi /etc/ssh/sshd_config

找到PermitRootLogin,改成yes,然后:

sudo systemctl restart sshd

但更推荐用普通用户登录再sudo su切root,安全习惯从一开始就养成。

3. 零基础学Linux必须吃透的常用命令

3.1 文件与目录操作要形成肌肉记忆

命令不用全背,日常就那几个:pwd、cd、ls、cp、mv、rm、find。但每个命令都有几个“要命的参数”,比如ls显示所有文件要用-a,看详细信息用-l;rm删除目录要加-r,强制删除加-f,生产环境慎用rm -rf是我的第一铁律。

文件操作里,理解路径是根本。相对路径和绝对路径的区别,通过实战理解最快:在家目录下用cd /etc进去,再用cd ..回来,多敲几次就明白了。权限这块,三个字符一组,分别对应属主、属组、其他人。r=4、w=2、x=1的算法要记牢,以后软件安装时报permission denied都用得上。

查看文件内容,cat是全部输出,less分页浏览(q退出),tail -f动态看日志。写脚本时还会用到grep、awk、sed这三剑客,零基础先把grep会用就行:grep关键字文件,配合-c数个数、配合-ri递归忽略大小写。

3.2 软件包管理:DNF才是Rocky的灵魂

CentOS 7用的是yum,Rocky 9用dnf,但其实在8开始官方就把dnf作为yum的底层实现,直接敲yum也能跑,不过dnf功能更强。我用dnf常用命令列出来:

sudo dnf install 包名 sudo dnf remove 包名 sudo dnf update sudo dnf search 关键字 sudo dnf info 包名 sudo dnf groupinstall "Development Tools"

安装libreoffice这种大型办公套件,直接:

sudo dnf install libreoffice

它会自动解析几百个依赖,这就是包管理器存在的意义。如果是在没外网的离线环境,就需要rpm -ivh手动装,依赖会让人崩溃。所以我强烈建议离线部署前先用dnf download把rpm包缓存在本地,再拷贝到目标机器,后面配合本地仓库处理依赖。

热词里有人搜“rocky linux安装libreoffice_7.4.7.2_linux_x86-64_rpm”,其实就是官网下的rpm包。安装有两种方式:如果只是单个软件,rpm -ivh xxx.rpm就完事;如果要处理依赖,最好建本地目录:

sudo dnf localinstall ./libreoffice*.rpm

dnf会自动把当前目录下的rpm包作为依赖源解析,比手工一个个按顺序装省心太多。

3.3 用户、权限和进程管理是运维基本功

创建用户useradd、删除用户userdel、改密码passwd。给用户sudo权限,编辑/etc/sudoers,或直接usermod -aG wheel用户名。Rocky默认允许wheel组免密或需密码sudo,看版本。

查看进程:ps -ef | grep xxx,top动态看CPU内存,kill杀进程。每个进程都有PID,常用kill -9强杀,但能优雅退出就用kill正常结束。查看端口占用:

ss -tlnp

比如发现22端口没监听,就能快速定位sshd进程是否挂了。网络相关ping、curl、wget、telnet,基本够用。

4. Rocky Linux进阶实操:从静态IP到KVM虚拟化

4.1 网络配置的两条路:nmcli与配置文件

前面提过nmcli改静态IP,再补几个实用场景。修改DNS:

sudo nmcli connection modify ens33 ipv4.dns "223.5.5.5 8.8.8.8" sudo nmcli connection up ens33

添加多IP:

sudo nmcli connection modify ens33 +ipv4.addresses 192.168.88.101/24

临时禁用网卡nmcli connection down ens33,启用up,相当于ifdown/ifup。如果nmcli改完系统不生效,可以直接写网卡配置文件/etc/NetworkManager/system-connections/ens33.nmconnection,或者老路径/etc/sysconfig/network-scripts/ifcfg-ens33(9版本仍兼容)。有些朋友按网上教程改了ifcfg文件,重启后NetworkManager可能覆盖配置,所以最好用nmcli改,或者改完执行nmcli connection reload并up。

还有一个容易忽视的配置:主机名解析。/etc/hosts文件里自己加一行:

192.168.88.100 rockserver

很多服务启动时反查主机名对不上IP就会报错,加这个能少踩很多坑。

4.2 磁盘扩容:从命令到实际场景

虚拟机磁盘不够是很正常的事。我在实验中装了一堆软件后,40G就剩下几个G。扩容分两步:VMware层面先扩展磁盘容量,然后进系统扩展分区和文件系统。

VMware选虚拟机设置,硬盘->扩展,把40G改成60G。但注意这是对虚拟磁盘整体扩容,系统里看到的新空间还是未分区域。进入系统后先看磁盘情况:

lsblk

如果原来的分区是/dev/sda3占用整个空间,但新空间在/dev/sda后面,需要用growpart扩展分区:

sudo yum install -y cloud-utils-growpart sudo growpart /dev/sda 3 sudo xfs_growfs /

Rocky默认文件系统是xfs,扩展根分区直接用xfs_growfs。如果不小心把这步忘了,df -h看到空间还是没变。之前我给CentOS扩容时遇到过“扩容后系统启动不了”,原因是没用growpart直接fdisk删分区重建,风险极高,新手不要试,还是growpart一条命令稳妥。

4.3 在Rocky上部署KVM虚拟化

KVM是Linux内核级虚拟化方案,Rocky上部署非常顺手。先检查CPU是否支持虚拟化:

grep -E '(vmx|svm)' /proc/cpuinfo

有输出就说明支持。安装依赖和虚拟化包:

sudo dnf install -y qemu-kvm libvirt virt-install bridge-utils sudo systemctl start libvirtd sudo systemctl enable libvirtd

用virt-manager图形界面管理更直观,但服务器上可以用命令。创建一台虚拟机,需要先准备一个ISO镜像,然后用virt-install命令:

sudo virt-install \ --name testvm \ --memory 2048 \ --vcpus 2 \ --disk path=/var/lib/libvirt/images/testvm.qcow2,size=20 \ --cdrom /tmp/Rocky-9.3-x86_64-minimal.iso \ --os-variant rocky9

执行后会弹出一个VNC窗口进行安装。如果报错“Need at least one OS variant”,说明--os-variant参数写错了,先执行osinfo-query os查看系统列表。

KVM跑起来的虚拟机对外需要网络,默认是NAT。如果希望虚拟机跟宿主机同一网段直接对外访问,要配置Linux bridge。这个稍复杂,但生产环境常用。简单做法:编辑/etc/qemu/bridge.conf确保允许br0,再创建一个网桥。

4.4 安装Python以及离线安装pnpm的技巧

Rocky官方源里不一定有最新版Python。要用新特性时,推荐用源码编译或官方提供的安装包。源码编译三步走:

wget https://www.python.org/ftp/python/3.12.2/Python-3.12.2.tgz tar xf Python-3.12.2.tgz cd Python-3.12.2 ./configure --enable-optimizations make -j$(nproc) sudo make altinstall

make的过程可以喝杯茶。为什么不推荐直接用dnf install python3?因为版本可能老。但如果是生产环境图稳定,官方源里的python3就够用,不用追新。

离线安装pnpm的问题很多人搜过。pnpm本身是Node.js的包管理器,离线环境先在有网的机器上准备npm包。先看离线机node版本,然后在线机:

npm install -g pnpm --prefix /tmp/pnpm

再把/tmp/pnpm整个目录打包拷贝到离线机,配置NODE_PATH,并把bin目录加进PATH。思路就是:把整个包管理工具目录拷贝过去,不依赖在线npm仓库。安装依赖时,如果项目自带node_modules或者有离线镜像仓库,pnpm install --offline可以生效。

4.5 部署LibreOffice等办公套件

装办公套件没那么玄乎,但要注意依赖。Rocky 9可以直接:

sudo dnf install -y libreoffice

装完执行libreoffice --version查看版本。如果是官网下载的rpm,务必用dnf localinstall,避免依赖地狱。有些人在无桌面服务器环境想用LibreOffice生成文件,可以命令行转pdf:

libreoffice --headless --convert-to pdf test.docx

这个在企业报表导出场景很常见,学会这招以后给领导导文档都不用开图形界面。

4.6 系统安全与面试常考的提权概念

Linux提权是面试常考话题,也是攻防场景下的关键概念。但必须强调:学习提权是为了防御。常见提权方式有:利用sudo配置不当、suid位文件、内核漏洞、环境变量劫持等。比如find命令带suid位,就能借助find执行命令。防御就是定期审计/usr/bin下文件的suid权限:

find / -perm -4000 -type f -exec ls -la {} \;

如果发现不应该带s位的程序,就chmod u-s去掉。SELinux也要学会用getenforce、setenforce临时切状态。面试问“Linux做过什么安全加固”,至少能答出:关闭root远程登录、修改SSH端口、防火墙最小化放行、禁用无用服务。

5. 常见问题与排查技巧实录

5.1 连不上、IP不生效、安装卡住,这些我都会报

现象可能原因排查与解决
SSH连接不上sshd未启动;防火墙拦截systemctl status sshd;firewall-cmd --list-all;放行22端口
root登录被拒绝PermitRootLogin no编辑sshd_config改为yes,重启sshd
静态IP不生效NetworkManager覆盖配置用nmcli修改并reload;或配置文件同时修改UUID
VMware虚拟机无网络网卡未激活nmcli device status;nmcli connection up ens33
安装软件提示No match文件名拼错或软件源未启用dnf search搜索确认名字;epel-release启用EPEL仓库
dnf install报错源不存在或DNS问题检查/etc/resolv.conf;更换阿里/清华镜像源
磁盘空间未释放(WSL场景)虚拟磁盘未压缩在Windows中使用diskpart或wsl --shutdown后compact
解压文件乱码zip编码问题使用unzip -O CP936 file.zip或者安装unzip后指定编码
密码忘了单用户模式重置重启时编辑内核引导参数,在末尾加rd.break,进入emergency模式重置
KVM启动失败嵌套虚拟化没开虚拟机设置勾选Hypervisor的“虚拟化Intel VT-x”

逐个讲讲高发问题。静态IP不生效是热搜常客,根源是NetworkManager版本升级后对配置文件的解析方式更严格。我给过不下十个人修复,九成都是只改ifcfg文件但没同步给NetworkManager。经验就是:先执行nmcli connection show确认连接名,然后用nmcli改,改完up,别上来就摸配置文件。

SSH登录慢也是常见病,一登录卡几十秒才提示输密码。多半是sshd用了UseDNS yes解析客户端域名,改成no即可:

echo "UseDNS no" >> /etc/ssh/sshd_config systemctl restart sshd

5.2 镜像下载与换源的坑

官网默认源在国外,国内下载慢、更新超时。可用清华的镜像源直接替换Rocky的repo配置:

sudo sed -i 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.tuna.tsinghua.edu.cn/rocky|g' /etc/yum.repos.d/Rocky-*.repo sudo sed -i 's|^mirrorlist=|#mirrorlist=|g' /etc/yum.repos.d/Rocky-*.repo sudo dnf makecache

替换后更新速度肉眼可见提升。注意只改Rocky的repo文件,不要动epel的源,否则epel源里的依赖还是走得慢。也可以直接安装epel-release再配合epel镜像源。

5.3 一台虚拟机的完整学习路线建议

最后给零基础朋友我自己的路线规划:第一周,安装系统、熟悉命令、学会联网和配置IP。第二周,玩转用户权限、文件系统、文本操作,至少把grep、find、管道用熟。第三周,搭建一个LAMP/LNMP环境,哪怕只是静态网站也算入了门。第四周,尝试KVM虚拟化,在一台机器上再跑两台虚拟机。第五周,啃SELinux和防火墙,看安全日志。

不要一口气买七八本大部头书,先用虚拟机跑起来,遇到问题用搜索引擎查具体报错,边踩坑边记录。我在学的时候把常用命令塞进一个速查表,现在分享给大家也没问题,但更鼓励自己整理,自己过一遍脑子的东西记得才牢。

我个人在实际操作中的体会是:Rocky Linux跟CentOS长得实在太像了,以至于切换几乎无痛,但它背后的更新机制和社区活跃度比老CentOS健康太多。这套系统只要你能踏实搭完环境,后续无论转云原生还是运维开发,地基都扎实了。最后再分享一个小技巧:每个实验快照都打一个,等后面出问题时,一个快照回滚胜过所有排查技巧。学习Linux最大的敌人不是命令难记,而是“不敢乱搞”,快照能帮你把“乱搞”变成最有效的学习方式。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/16 0:35:34

轻量级搜索引擎为何比ES快5倍?原理与选型指南

1. 这个“快5倍”的说法,到底在比什么?“推荐一个比ES快5倍的搜索引擎”——这句话一出来,很多做过搜索服务的同学第一反应不是兴奋,而是皱眉。我第一次在技术群里看到这个标题时,下意识就点开想看配置截图&#xff0c…

作者头像 李华
网站建设 2026/9/16 0:27:41

新能源多仓中长途智能调度:从数据到滚动优化的实战路径

1. 这不是“排班软件升级”,而是物流成本结构的底层重写“告别人工排车”这六个字,听上去像一句营销口号,但在我跑过27个新能源物流园区、拆解过13家头部城配企业的调度系统之后,它背后是一场静默却剧烈的成本革命。去年底&#x…

作者头像 李华
网站建设 2026/9/16 0:23:45

Spring Boot购物系统:数据库文件导入与项目运行排错指南

简介:基于Spring Boot实现的电脑商城购物系统完整项目源码,面向Java初学者、毕业设计学生及需要电商项目参考的开发者,帮助快速掌握Spring Boot框架下的业务开发与项目组织方式。系统包含商品分类、商品详情、购物车、订单管理、用户管理、个…

作者头像 李华
网站建设 2026/9/16 0:16:39

豆包 / DeepSeek / 千问反查实战:3 类账号 30 天验证

豆包 / DeepSeek / 千问反查实战:3 类账号 30 天验证⚠️ 本文是 30 天 GEO 实战的真实账单——3 类账号 vs 3 引擎对比。 不是"理论推演"——是"30 天跑完的实际数据"。一位做品牌增长的老板在微信留言:“豆包 / DeepSeek / 千问 3…

作者头像 李华
网站建设 2026/9/16 0:14:21

H6801同步升降压芯片:22.2V锂电设备无刷电机稳压方案详解

1. 方案先导:H6801这颗芯片到底在解决什么问题先说结论:H6801是一颗同步升降压(Buck-Boost)控制器,特别适合锂电池供电的设备,把电池电压稳成一路或多路所需电压。标题里那句“22.2V锂电设备”指的是6串锂聚…

作者头像 李华
网站建设 2026/9/16 0:08:20

Turborepo 增量构建:缓存命中率调优实战

Turborepo 增量构建:缓存命中率调优实战在前端大型 Monorepo(单仓多包架构)的日常开发与 CI/CD 构建中,工程规模扩大带来的最大阵痛就是——“全仓构建(Full Build)耗时爆炸”。 当仓库包含 10 个子应用&am…

作者头像 李华