RHEL9正式发布之后,我在实际练习和运维切换过程中最深的一个感受是:它和RHEL8、RHEL7的差异,不是简单换个版本号,而是底层的很多默认行为都变了。比如默认的iptables变成了nftables后端,OpenSSL升级到3.0之后对旧版本协议和弱加密算法的限制明显更严,NetworkManager不再默认生成ifcfg文件,甚至yum这个命令都已经彻底被dnf接管了。如果你过去习惯了“老Red Hat三板斧”,第一次上手RHEL9会有点不知所措。这篇文章就把我最近在RHEL9上反复练习过的操作整理成一套可复现的练习清单,覆盖安装、命令行、软件包、存储、安全和性能诊断这几个高频场景,适合正在从RHEL7/8向RHEL9过渡的运维,也适合刚接触企业级Linux想系统练一遍的新手。
1. 安装阶段值得反复练的三个关键决策
安装这一步看起来简单,点几下鼠标就行,但实际上很多人的RHEL9学习在安装阶段就埋下了坑。我建议你在虚拟机里至少完整安装三遍,每一遍刻意选择不同的选项,然后观察系统装完以后的行为差异。装系统不是目的,通过安装理解RHEL9的设计思路才是目的。
1.1 为什么我坚持从最小化安装开始
RHEL9的安装器里提供了很多Base Environment,比如Server with GUI、Server、Minimal Install等。我强烈建议练习时选Minimal Install,也就是最小化安装,而不是顺手勾一个带图形界面的选项。原因很简单:生产服务器上绝大多数场景都不需要GUI,多装一个桌面环境就是多一片攻击面和一大批需要维护的软件包。最小化安装出来的系统足够干净,软件包数量少,后续所有练习都建立在“需要什么就装什么”的思路上,这本身就是企业运维该有的习惯。
最小化安装完成后,系统只有大约两三百个基础软件包,连man手册都不完整,很多命令需要自己补。这时候你会被迫学习和依赖dnf去查找、安装软件,比起一开始就用带GUI的完整系统,这种“缺什么补什么”的过程反而能更快建立起对RHEL9软件包管理体系的直觉。
1.2 手工分区是理解磁盘布局的必经之路
安装时磁盘分区这一页,很多人直接选Automatic自动分区,图省事。但如果你真想练好RHEL9,我建议至少有一遍安装选择Custom手工分区。自动分区虽然方便,但它的分配策略不透明,比如/boot可能分得特别小,swap的大小也不一定符合你的预期。手工分区能让你对系统磁盘布局有完整的掌控感。
我在练习环境里常用的分区方案是这样的:/boot分1GB,格式保持XFS,特殊情况下UEFI启动还需要一个vfat格式的/boot/efi;/根分区按练习需要分60GB左右,使用XFS文件系统;swap分4GB。至于/home,如果不是有特别独立的存储需求,我不建议单独分区,因为容器和虚拟化场景下/var目录的增长往往更难以预测,把根分区留足空间,后续再通过LVM扩展,比一开始就拆死各个目录要灵活得多。
这里有一个很重要的细节:/boot不要放在LVM里。RHEL8以后虽然GRUB2已经能支持从LVM启动,但在实际维护中,/boot放在普通分区上出问题的概率更小,排查起来也更简单。数据盘、业务盘的扩展完全可以通过LVM解决,没必要把引导分区也卷进去。
1.3 语言、时区与软件包选择别看轻
安装时系统语言我建议选英语。这不是矫情,而是很多日志、错误信息、文档和脚本都是用英文写的,你在/Linux运维过程中如果处理的都是英文环境,遇到问题时直接把报错丢给搜索引擎会更容易定位。系统语言可以在装完之后通过localectl修改,但一开始就养成英文环境的工作习惯,对你后面的运维生涯帮助很大。
时区一定要选对。装完系统之后用timedatectl检查,如果时区不对,很多日志时间戳会误导你排查问题的方向。我习惯在安装时直接选Asia/Shanghai,或者装完后执行timedatectl set-timezone Asia/Shanghai来调整。还有一个容易被忽视的点:建议开启NTP时间同步,RHEL9默认使用chronyd作为时间同步服务,安装完成后确认systemctl status chronyd是正常的,否则证书验证、日志比对、集群通信都会出各种怪问题。
软件包选择这里,Minimal Install下没有太多可选的组,无所谓。装完系统后,可以用dnf group list去查看所有可用的软件包组,再按需安装。比如你想练Web服务,可以dnf group install "Web Server";想练编译环境,就dnf group install "Development Tools"。装完基础系统之后,第一个值得做的快照就是这时候:一个干净、最小化、时区正确、时间同步正常的RHEL9基础镜像,后面所有练习搞坏了都能从这个快照重生。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 命令行基础与系统状态检查的每日必练清单
RHEL9的命令行操作和之前的版本没有颠覆性变化,但因为我前面说过,它的很多底层实现换了,所以日常巡检和排障时用的命令值得重新练一遍。我不建议你背命令,而是建议你像做体检一样,每天在系统里按固定的流程走一遍,走多了就形成肌肉记忆了。
2.1 服务与开机自启:systemctl的日常用法
systemctl在RHEL7就已经是标配了,但RHEL9上systemd的版本更高,行为细节也有一些变化。最基础的几组命令你必须练到完全不用想:systemctl status sshd查看服务状态,systemctl start sshd启动服务,systemctl enable --now httpd把服务设为开机自启并立即启动。注意enable和start是两个动作,--now参数可以让你一次完成。
还有一个容易被忽略的:systemctl mask。如果你不想让某个服务被意外启动,比如某些安全基线里要求禁用某些用不到的设备服务,用mask比disable更彻底。mask会把这个服务单元链接到/dev/null,即使另一个服务依赖它,也无法启动它。我在练习环境里就遇到过,disable之后某个依赖关系还是会把服务拉起来,用mask才真正禁掉。
日常巡检时,systemctl list-unit-files --type=service --state=enabled能打印所有开机自启的服务,这个命令在排查“为什么系统启动这么慢”或者“这台机器上到底跑了什么东西”的时候非常有用。
2.2 用户、权限与sudo:做一个合格的管理员
RHEL9里用户管理的基本流程没变,但我建议你认真做一遍这个练习:创建用户、设置密码、加入sudo授权组、验证
