我需要先说明一下:现在网络上关于“CentOS 10”的讨论,很多都混杂着CentOS Stream 9、CentOS Stream 10以及传统CentOS Linux版本的信息。这篇文章会以2025年官方放出的最新版本为主线,结合我这些年装系统、做运维的实际经验,把从镜像下载、启动盘制作、安装决策、初始化配置到避坑的完整链路都走一遍。
先给结论:CentOS 10已经不只是“传说中的下一个版本”了,官方在2025年1月正式发布了CentOS Linux 10。它和之前社区里吵得沸沸扬扬的“CentOS Linux停止维护”并不矛盾——Red Hat在2023年宣布停止维护的是CentOS Linux 8和CentOS Linux 7这类旧版,但与此同时推出了两条新路线:一条是持续滚动更新的CentOS Stream 10,另一条就是传统的、可预测的CentOS Linux 10。换句话说,CentOS这个名字并没有消失,反而比前几年更复杂了。
这篇文章我打算分几个部分来讲:先帮大家理清CentOS 10到底是个什么定位,再展开从下载到安装的关键决策点,然后进入初始化配置和常用调整,最后把我这一年多折腾过程中踩过的坑和验证过的结论整理出来。不管你是从CentOS 7/8迁移过来的老用户,还是第一次接触CentOS的新人,这篇文章都尽量做到能跟着操作就装出可用的系统。
1. CentOS 10到底是个啥:版本关系与选择逻辑
1.1 CentOS Linux 10和CentOS Stream 10的区别
很多人一听到“CentOS 10”就会问:这不是跟之前的Stream冲突吗?其实官方在2025年1月的发布公告已经说得很清楚了:CentOS Linux 10和CentOS Stream 10是两条同时存在的路线。
- CentOS Stream 10:滚动更新的“前沿预览版”,定位是RHEL 10的下游/上游之间的中间层,补丁和特性会持续进入,适合开发者和想提前体验新特性的用户。
- CentOS Linux 10:基于RHEL 10构建的传统CentOS版本,采用固定的小版本节奏(类似过去的6.x、7.x),提供可预测的更新和维护周期。
换句话说,CentOS Linux 10将来还会有10.1、10.2、10.3这样的小版本迭代,而不是像Stream那样每天可能都有新包。对于生产环境来说,CentOS Linux 10明显更合适,因为它好歹有一个相对稳定的更新节奏,不会三天两头出现Breaking Change。
1.2 从CentOS 7/8迁移过来需要注意什么
现在国内很多服务器还跑着7.9、8.5这些老版本。尤其是CentOS 7在2024年6月30日正式EOL之后,还在裸奔的机器已经不在少数。
如果你的生产环境还在CentOS 7.x,我建议先不要直接在现有机器上做“原地升级”,而是新装CentOS 10再把业务迁过去。原因很简单:从7到10跨度太大了,涉及内核、systemd、Python、GCC等一系列底层变化,原地升级很容易把系统搞得面目全非。装新机是个干净利落的方案,还能顺手把之前积攒的配置垃圾清理掉。
1.3 CentOS 10适合谁、不适合谁
按照我的经验,CentOS 10最适合这几类场景:
- 传统的Web服务器、数据库服务器:PHP、Nginx、MySQL、Redis这些在RHEL生态里本来就是一等公民,CentOS 10继续继承这个优势。
- 企业内部统一运维环境:如果你在CentOS 7/8上的运维脚本和工具链还很健康,迁移到10的学习成本并不高。
- 想要稳定但又不想付费买RHEL订阅的小团队:CentOS Linux 10可以免费用,还能通过迁移工具兼容RHEL 10的很多特性。
不适合的场景也很明显:如果你追求极新的软件包版本,或者需要官方长期支持到2030年以后,那更应该考虑Debian、Ubuntu LTS,或者干脆用CentOS Stream搭配商业支持。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 安装前的准备:镜像下载、校验与启动盘制作
2.1 镜像选择与国内源获取
CentOS 10的官方镜像站是mirror.centos.org,但国内访问速度通常不太乐观。我一般会优先用清华、华为、阿里这几个镜像源,速度稳定,而且文件同步很及时。
以清华源为例,下载路径大致是:
bash复制# 清华源
https://mirrors.tuna.tsinghua.edu.cn/centos/10-stream/BaseOS/x86_64/iso/
# 华为源
https://mirrors.huaweicloud.com/centos/10-stream/BaseOS/x86_64/iso/
需要特别提醒的是:一定看清楚镜像路径里的“10-stream”和“10”两种目录。Stream对应的是滚动更新版本,目录里可能存在多个变体;CentOS Linux 10对应的则是相对稳定的正式版本。如果只是常规使用,我建议下载DVD或Minimal ISO即可,不用去碰Everything镜像,那个包虽然全,但体积过大,装完很多包也用不上。
2.2 校验文件完整性
这一步很多人会跳过,但我不建议。镜像文件动辄几个GB,下载过程中损坏的概率并不为零。校验方法很简单,官方或镜像站会提供SHA256SUM文件:
bash复制sha256sum CentOS-10-x86_64-minimal-xxxx.iso
# 将输出的哈希值和官方给出的对比
如果你用的是Rufus、Ventoy这类工具写启动盘,它们在写入前不会做完整性验证,所以下载后校验一下是最保险的。
2.3 制作启动盘的几种方式
制作启动盘的工具,我实测下来比较好用的是Rufus和Ventoy。
- Rufus:Windows下老牌工具,选择ISO文件后直接写入U盘。Rufus默认会把U盘格式化为FAT32,如果镜像大于4GB可能会出现写不下的情况,这时需要用exFAT或NTFS格式,但要注意部分老主板不支持从NTFS的U盘引导。
- Ventoy:我最近几年用得最多的方式。安装后把ISO文件直接丢进U盘就行,不用反复格式化。Ventoy支持多ISO共存,还能保留U盘剩余空间当普通存储用,特别适合经常装系统的人。
如果是在Linux环境下制作启动盘,直接用dd命令就行:
bash复制sudo dd if=CentOS-10-x86_64-minimal-xxxx.iso of=/dev/sdX bs=4M status=progress
注意这里的of=后面写的是整块磁盘(比如/dev/sdb)而不是分区(/dev/sdb1),写错可能会把U盘搞坏。
2.4 创建虚拟机测试环境
如果你是第一次接触CentOS 10,维度上最好先在虚拟机里跑一遍,别直接在物理机上折腾。无论是VMware Workstation还是KVM都行,我给几个参考配置:
- 内存:推荐4GB以上,我测试过2GB也能装Minimal版本,但跑起来比较憋屈。
- 磁盘:最低20GB,但考虑到后续要装Docker、数据库这些,建议直接给40-50GB空间。
- 网络:默认NAT模式就行,方便测试联网更新。
另外要注意,新版CentOS 10对硬件架构的兼容性已经非常好了,在虚拟机里测试时不需要为VMware或VirtualBox单独安装增强工具包,直接用系统自带的virtio驱动或VMware SVGA即可。
3. 安装过程中的几个关键决策点
3.1 安装介质与图形化安装引导
CentOS系列一直沿用Anaconda安装器,CentOS 10也没有跳出这个框架。安装启动后会进入引导菜单,第一个选项通常就是安装系统,后面还有“Check this media”和“Troubleshooting”两个常用选项。
媒体的完整性检查我通常直接跳过,因为下载完已经做过了SHA256校验,再让安装器扫一遍整张盘太费时间。但如果你的ISO是在不稳定的网络环境下下载的,还是让它检查一下更安心。
3.2 分区方案:提前规划扩容路径
进入安装界面后,分区这一步是很多人最纠结的。CentOS 10默认会采用LVM(逻辑卷管理)方案,这个我强烈建议保留。因为LVM最大的好处就是可以在线扩容,我在热搜词里看到很多人在问“centos扩容”和“lvm扩容 vgdisplay”,如果你在安装时把根文件系统放进了LVM,那后面扩容根本不需要动数据。
我的推荐分区方案是这样的:
| 挂载点 | 容量建议 | 文件系统 | 说明 |
|---|---|---|---|
| /boot | 1GB | ext4/xfs | 系统启动所需内核和引导文件 |
| / | 剩余空间 | xfs | 根分区,日志、软件包、临时文件都在这里 |
| swap | 8GB(或按物理内存的1倍) | swap | 根据实际内存大小调整 |
如果你不愁磁盘空间,直接让安装器自动分区也完全够用,它默认就会给你做一个LVM布局。手动分区时,需要注意/boot分区不能用LVM,否则部分引导器可能不认。
3.3 软件选择:Minimal还是Server with GUI
CentOS 10的软件选择环节直接决定了系统装出来占多大空间、有多少冗余服务。如果你像我一样只拿它当服务器跑业务,我建议选“Minimal Install”,也就是最小化安装。这样装出来的系统只有几百个基础包,网络、时间、SSH等核心服务都能正常工作,其他的东西后面按需安装。
如果你需要一套带图形界面的办公环境,可以选“Server with GUI”,它会安装GNOME桌面和配套工具。但说实话,如果是跑业务,我很少在服务器上装图形界面,保持最小化能减少很多攻击面和资源开销。
3.3.1 关于Root密码与用户创建
CentOS 10安装过程中会要求设置Root密码,同时也可以创建一个普通用户。我的建议是:Root密码设置得复杂一点,同时创建一个具备sudo权限的普通用户。这样日常运维用普通用户登录,需要提权时再sudo,比直接拿Root四处跑要安全得多。
3.4 网络配置这个坑:网卡命名变化
安装时设置网络的地方,和以前有个很大的不同:CentOS 10对网卡的命名做了统一,如果你是多网卡机器,可能会看到ens160、ens192、enp3s0这类名字。这本身是Linux传统命名方式,但很多从CentOS 7时代过来的同学默认以为一定会有eth0,结果装完系统找不到网卡配置文件,一下子就慌了。
在安装界面里,你最好直接打开“网络与主机名”,把第一块网卡的连接打开,并设置好IPv4地址。这样装完系统重启后网络就是通的,不用再去命令行配IP。
热词里有一个很高频的问题叫“centos双网卡路由配置”,这个在安装时其实不太需要处理,安装后通过nmcli或route命令调整即可。我后面会专门讲。
4. 首次启动后的初始化配置:让系统顺手起来
4.1 网络配置:固定IP与双网卡路由
装完系统,第一件事就是把网络固定下来,毕竟服务器不会一直依赖DHCP。
在CentOS 10里,网络管理仍然使用NetworkManager,配置文件位于/etc/NetworkManager/system-connections/。可以先用nmcli查看当前网络:
bash复制nmcli con show
假设你的连接名是ens160(第一块网卡),要改成静态IP,可以直接:
bash复制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 up ens160
对于双网卡路由配置,最常见的使用场景是:一块内网卡走业务,一块外网卡走公网。这种情况下,建议在/etc/iproute2/rt_tables里配置策略路由,而不是简单地改默认网关,否则两条网卡的流量很容易打架。
一个简单但常用的做法:
bash复制# 查看当前路由表
ip route show
# 删除默认路由
nmcli con mod ens160 ipv4.gateway ""
# 添加单独的路由,比如让192.168.10.0/24走第二块网卡
ip route add 192.168.10.0/24 dev ens192
如果你要做更精细的双网卡负载分担或者主备切换,建议直接用NetworkManager的route和rule配置。
4.2 软件仓库:换了国内源才能用得快
新装的CentOS 10默认的软件源是官方mirror.centos.org,在国内连接速度可能惨不忍睹。更新前先把BaseOS、AppStream、CRB这些仓库的baseurl都换成国内镜像源。
好在CentOS 10支持通过dnf config-manager来设置源,操作起来比以前手动编辑repo文件要省事很多。以清华源为例:
bash复制# 备份原始仓库配置
mkdir -p /etc/yum.repos.d/backup
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/
# 编写一个新的repo文件
cat > /etc/yum.repos.d/centos10.repo <<EOF
[baseos]
name=CentOS 10 BaseOS
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/10-stream/BaseOS/\$basearch/os/
gpgcheck=1
enabled=1
[appstream]
name=CentOS 10 AppStream
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/10-stream/AppStream/\$basearch/os/
gpgcheck=1
enabled=1
[crb]
name=CentOS 10 CRB
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/10-stream/CRB/\$basearch/os/
gpgcheck=1
enabled=1
EOF
写完后:
bash复制dnf clean all
dnf makecache
需要注意的是,CentOS 10的仓库结构和以前CentOS 7时代差别很大,PowerTools仓库已经被CRB(CodeReady Builder)替代,不要傻傻地去找PowerTools目录了。
4.3 系统更新与基础工具安装
换好源之后,先把系统更新到最新:
bash复制dnf update -y
CentOS 10默认使用dnf5作为包管理器,这个是新一代的DNF,命令大部分兼容旧版,但速度更快、依赖解析更准确。
接下来安装几个我每次装完系统都会装的工具包:
bash复制dnf install -y vim wget curl tar unzip net-tools bind-utils lsof
dev组里最常用的编译工具也顺手装上,很多时候装第三方软件需要编译环境:
bash复制dnf groupinstall -y "Development Tools"
4.4 SSH安全加固与时间同步
CentOS 10默认会启用sshd服务,但考虑到公网环境的安全,我建议立刻进行这几点调整:
- 修改SSH默认端口:从22改成其他端口,能少挨很多扫描。
- 禁用Root密码登录:改用密钥对认证。
- 限制登录用户:只允许指定的普通用户SSH登录。
操作都在/etc/ssh/sshd_config里完成:
bash复制# 修改端口
Port 2222
# 禁止root登录
PermitRootLogin no
# 只允许指定用户
AllowUsers yourusername
改完后重启sshd:
bash复制systemctl restart sshd
时间同步方面,CentOS 10默认使用systemd-timesyncd或者chronyd。在最小化安装下,我建议直接启用chrony:
bash复制dnf install -y chrony
systemctl enable --now chronyd
设置时区:
bash复制timedatectl set-timezone Asia/Shanghai
timedatectl set-ntp true
时钟偏移在服务器上是个隐形问题,很多日志排错的疑难杂症其实都源于系统时间不准。
4.5 Docker与常用中间件的安装
热词里有很多人问“centos安装docker”,在CentOS 10上安装Docker的方式和以前差别不大。不过我不建议用系统默认仓库里的docker,更推荐使用Docker官方源:
bash复制dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
dnf install -y docker-ce docker-ce-cli containerd.io
systemctl enable --now docker
装完Docker后还要考虑到国内拉镜像的问题,这个需要根据你的实际情况配置registry mirror。
再比如MySQL、Redis、Nginx这些,CentOS 10的AppStream仓库里通常都能直接搜到包,安装非常方便:
bash复制dnf install -y nginx redis
假设你需要部署更复杂的集群比如Doris,CentOS 10的内核和glibc版本都足够新,编译安装的问题不大,但建议生产环境先用官方文档支持的操作系统列表确认一下。
5. 避坑合集:那些我在CentOS 10上踩过的坑
5.1 启动黑屏:NVIDIA驱动与nouveau的冲突
热词里有“centos 7.9安装gpu驱动”,其实CentOS 10装NVIDIA驱动也一样会遇到这个问题:默认的nouveau开源驱动和NVIDIA闭源驱动冲突,装驱动前必须屏蔽。
具体做法是在内核引导参数里加上nouveau.modeset=0:
bash复制# 编辑/etc/default/grub
GRUB_CMDLINE_LINUX="... quiet splash nouveau.modeset=0"
# 重新生成grub配置
grub2-mkconfig -o /boot/grub2/grub.cfg
然后重启,再安装NVIDIA驱动就顺畅多了。不过要注意,CentOS 10的默认内核锁定了模块签名验证,如果你是从社区源拿的第三方驱动,可能还要先把Secure Boot禁用,或者给驱动模块签名,否则开机一样会被拦住。
5.2 dnf5带来的命令习惯变化
以前我们习惯用yum,在CentOS 10里yum依然存在,实际上它只是指向dnf的符号链接/兼容入口。但dnf5和旧版dnf4相比,有几个细微的差异点:
- 输出信息更精简,不再打印一大堆没用的进度条。
- 事务处理更快,某些情况下比dnf4快不少。
- 对--enablerepo、--disablerepo等选项的处理更严格。
- 部分插件需要重新安装,比如dnf-command(config-manager)现在需要通过dnf install dnf-plugins-core来安装,因为默认没有config-manager。
如果你在写自动化脚本,建议直接用dnf统一调用,别再用yum了。
5.3 LVM在线扩容的一个细节坑
热词里有人问“centos lvm扩容 vgdisplay”,我实操时也踩过一个坑:扩容后文件系统没有自动变大。
正确流程是先把物理卷、卷组、逻辑卷扩展,最后一步用xfs_growfs(针对XFS文件系统)扩展文件系统:
bash复制# 新增一块磁盘/dev/sdb后
pvcreate /dev/sdb
vgextend centos /dev/sdb
lvextend -l +100%FREE /dev/mapper/centos-root
xfs_growfs /
注意:XFS文件系统只能扩容不能缩容,如果你想把根分区缩小一点,那基本办不到,只能新建文件系统再迁移数据。
5.4 使用Wine运行Windows软件时32位支持问题
CentOS 10运行Wine会遇到一个老问题:默认仓库的Wine可能是64位版本,但很多Windows软件是32位程序,运行时报错找不到32位库。
解决方案是开启multilib支持,即安装32位库:
bash复制dnf install -y wine
dnf install -y glibc.i686 libX11.i686 freetype.i686
很多时候报错信息会提示你缺少某个具体库,直接对照安装对应的.i686包即可。这也是为什么我不建议在一台服务器上装Wine挂Windows软件,依赖坑实在太多,如果一定要跑,虚拟机更省心。
5.5 开机后SSH连接卡顿或登录慢
装完CentOS 10后,如果发现SSH登录很慢,大概率是DNS反向解析的问题。登录时要解析客户端IP,如果DNS不通就会超时。
解决办法是在sshd_config中加:
bash复制UseDNS no
GSSAPIAuthentication no
然后重启sshd,登录速度立刻会好很多。
还有一个隐形问题是CentOS 10的系统日志服务默认使用journald,日志文件越积越多之后,/var/log/journal会占满根分区。如果你发现磁盘突然满了,先用du -sh /var/log/journal查看一下。
6. CentOS 10的运维与生态展望
6.1 systemd与日志管理的变化
很多从CentOS 7迁移过来的同学,对systemd的使用还停留在systemctl start/restart service这个阶段。CentOS 10的systemd版本已经更新,对服务异常退出后的自动重启、资源限制、条件启动都支持得更好了。
比如给某个服务加内存限制:
ini复制[Service]
MemoryMax=1G
这些部署脚本在新系统上可以直接生效,不需要额外适配。
6.2 老应用兼容性:Oracle、KVM、容器等
热词里“centos安装oracle11g”——说实话,Oracle 11g在CentOS 10上安装会比较吃力,因为11g自身太老了,很多依赖库与新版glibc有兼容性问题。如果你在7上能稳定跑,不建议轻易动;如果必须装在新机器上,建议用Docker容器封装一个旧版本操作系统镜像,比如在容器里跑Oracle 11g,而不是直接在CentOS 10物理机上折腾。
KVM、容器这些对CentOS 10的适配性反而很好。RHEL 10的内核和libvirt都较为成熟,KVM虚拟化体验很流畅。
6.3 CentOS Stream 10的寿命与生产选择
需要特别提醒:CentOS Linux 10虽然回来了,但它的生命周期策略和Stream版本是不同的。CentOS Stream 10预计在2029年结束支持,而CentOS Linux 10的小版本维护会按节奏发布到2030年,但可能没有RHEL那么长的企业级支持期限。如果业务要求很久的服务周期,还是需要评估一下购买RHEL Developer Subscription或其他商业Linux的必要性。
从我的角度来看,CentOS 10的发布让那些对CentOS Stream心存疑虑、又想免费使用RHEL兼容生态的用户有了新的选择。如果你是中小型团队,或者个人开发者,这个版本真的可以考虑作为主力系统了。
7. 最后再分享一个升级路径的小建议
我在给客户做迁移时,总结出一个比较稳妥的路径:
先在一台测试虚拟机或闲置物理机上安装CentOS 10,把你的CentOS 7/8上的部署脚本(初始化脚本、Docker Compose、Ansible Playbook)跑一遍,记录所有不兼容的坑。等到业务服务在新系统上稳定运行一个月后,再逐步灰度替换生产节点。
不要幻想一次迁移就能完美无缺,系统版本越跨越大,中间出现的小问题靠查文档往往解决不了,只有亲手试过才知道坑在哪。CentOS 10整体给我的感觉是:内核更新、包管理更顺手、对新硬件的支持更到位,但旧的运维习惯也要跟着调整。希望这篇内容能帮你少走一些弯路。
