1. 动手前先想清楚的三件事
1.1 为什么是 RHEL 8,而不是其他 Linux 发行版
很多人装 Linux 第一步就在纠结选哪个发行版。RHEL(Red Hat Enterprise Linux)是企业级 Linux 里最主流的选择之一,很多银行、政务系统、大型企业的核心业务都在它上面跑。RHEL 8 作为 2019 年发布的大版本,生命周期拉得很长,完整支持到 2029 年,这就意味着你 2025 年安装它,后面还有好几年的更新维护可以吃,稳定性是经过大规模生产环境验证过的。
不过我也要说实话,RHEL 的定位是商业操作系统,它不像 CentOS 那样免费,也不像 Ubuntu 那样随便下载就能用。它的商业模式是基于订阅的,你需要注册账号、绑定订阅才能拿到软件源和更新。如果你只是自用、学习或者做测试,红帽官方有面向开发者的免费订阅方案(即 Red Hat Developer Subscription for Individuals),个人开发者可以用它合法地获得 RHEL 的完整使用权。这一点解决了很多人"想学 RHEL 但怕收费"的心理门槛,实际操作上也不复杂,就是注册一个账号的事,后面我会讲到。
1.2 安装前必须确认的硬件条件
RHEL 8 的官方最低硬件要求是 1.5GB 内存、20GB 磁盘空间、单核 CPU,但这只是"能装上去"的底线,实际跑起来你会觉得卡得怀疑人生。我建议至少给 4GB 内存、50GB 磁盘、双核 CPU,如果有图形界面需求,内存最好加到 8GB,否则 GNOME 桌面在虚拟机里拖拽窗口都有明显的延迟感。
磁盘空间这件事我专门提一句,20GB 是纯系统的最小体积,但你装完之后还要装软件、留日志、存放临时文件,50GB 是最舒服的起步线。如果是虚拟机,直接把磁盘大小先分够,因为后期扩容虽然可以做,但需要操作 LVM,步骤繁琐且有一定风险,能在规划阶段解决就不要拖到后期。内存方面,如果你打算作为服务器跑服务,4GB 起步是底线,实际生产环境 8GB 很常见,不过这不影响安装,你随时可以后续加内存条或者调整虚拟机配置。
还有一点容易被忽略,你用的是 UEFI 还是传统 BIOS。现在的电脑和服务器绝大多数都支持 UEFI,RHEL 8 的安装介质也支持从 UEFI 模式引导。如果安装时出现"无法找到有效的启动设备"之类的报错,大概率就是引导模式和安装介质不匹配。建议你在 BIOS 设置里直接确认清楚当前机器用的是哪种模式,安装时分区方案也会随之改变,这个后面会详细展开。
1.3 镜像下载与安装介质制作要点
RHEL 8 的镜像文件从红帽官网下载,需要先注册一个红帽账号,然后在官网的产品下载页面选择 Red Hat Enterprise Linux 8.x,下载对应架构的 ISO 文件。常见的有 x86_64 和 ARM 两种,现在绝大多数服务器和个人电脑都是 x86_64 架构,ARM 架构比较少见,下载前确认一下你的 CPU 型号就行。
下载时你会看到几个不同的镜像选项,比如 Boot ISO、DVD ISO、Minimal ISO。Boot ISO 只有几百 MB,启动后需要联网从红帽仓库拉取安装包,对网络质量要求高,不推荐新手使用。我建议直接下 DVD ISO,大约 10GB 左右,所有安装包都在镜像里,安装过程不需要外部网络,速度快也稳定。验证镜像完整性是很多老手都会做但新手容易忽略的一步,下载完在终端里用sha256sum对比官方给出的校验值,出了问题后面能省去一大笔排错时间。
制作安装介质方面,Linux 下可以用dd命令直写,Windows 下推荐用 Rufus,这两个工具我在实际使用中都很稳定。注意一点,写盘完成后的 U 盘不要再以普通存储设备的形式去格式化或者往里面拷文件,否则引导信息会损坏导致无法启动。
2. 安装画面的每一个选项都是什么意思
2.1 从 U 盘启动安装程序
把写好的 U 盘插入目标机器,开机后按启动菜单快捷键选择从 U 盘引导。不同机器按键不同,常见的有 F11、F12、F2 或者 Del,具体在开机画面会一闪而过,截图都来不及。很多新手卡在这一步,说"我按了没反应",多半是按键时机没掌握好,要在开机画面刚出现时就连续敲击按键。如果你用的是虚拟机,启动时直接选"从 ISO 引导"就可以了,不需要插 U 盘。
出现引导菜单后会让你选择"Install Red Hat Enterprise Linux 8.x"或者"Test this media & install",我一般直接选第一个,不测试介质。测试介质是检查 ISO 完整性用的,既然你已经验证过校验值,这一步就没必要再浪费时间。进入安装程序后,首先要选语言,这个没什么好说的,选英文或者中文都行,唯一要注意的是后面配置界面语言会跟着变化,如果你对 Linux 术语不熟,建议选中文,方便对照理解,但是生产环境我建议用英文,避免工具日志和界面不一致带来的疑惑。
语言选完回车,会自动进入"INSTALLATION SUMMARY"(安装信息摘要)主界面。这个界面是 RHEL 安装程序的核心控制面板,所有的配置项都在这里集中处理,不像旧版是一步一步走流程。你需要在这个界面完成几项关键配置:安装源和软件选择、系统分区、网络和主机名、以及时区设置。默认情况下,系统已经帮你选择了安装源是本地介质,一般来说不用改,只改软件选择里需要的安装类型即可。
2.2 安装概要界面各项配置解读
进入"INSTALLATION SUMMARY"界面后,能看到一个九宫格或列表布局的配置项。我建议按上到下的顺序逐项过一遍,避免漏配。核心配置项包括:
- 软件选择(Software Selection):决定你要装的是带图形桌面的工作站,还是无图形界面的最小化服务器。
- 安装目标(Installation Destination):决定系统装到哪块磁盘、用什么分区方案。
- 时间和日期(Time & Date):对于服务器来说,时区错误会导致日志时间错乱,以及后续和外部系统对不上时间。
- 网络和主机名(Network & Host Name):网卡默认是关闭的,必须手动打开并配置网络才能让系统联网。
- 安全策略(Security Policy):默认"默认配置"即可,不是所有场景都需要 CIS 安全基线。
- KDUMP:内核崩溃转储机制,默认开启并保留一部分内存,是否需要关闭取决于你的服务器内存是否紧张。
很多人首次上手容易忽略"网络和主机名"这个选项,因为安装时即使不配置网络,系统也能装完。但没配置网络的后果是,装完登录后ip addr一看只有lo,连有线网卡都没起来,你还得回头折腾配置文件。与其事后补救,不如在安装界面就把 IPv4 地址设置好。
2.3 分区方案到底怎么选,手动分区还是自动分区
"安装目标(Installation Destination)"这一栏是我认为整个 RHEL 8 安装过程中最值得花时间理解的部分。点击进入后,你会看到"自动配置分区"和"手动配置分区"两个选项,以及在底部让你勾选"加密"选项。
先说说自动配置分区。它默认使用 LVM(逻辑卷管理)方式,创建/boot、/(根分区)和swap这些基本分区。对绝大多数场景和初学者来说,"自动配置分区"是一个可以接受的方案,因为它帮你把 LVM 做了,后面想要扩容根分区,用lvextend命令就可以在线操作,不用停机。自动分区的缺点是它给根分区预留的空间比较无脑,如果你的/home和/var目录后续会有大量独立数据,可能需要手动规划。
手动分区的必要性在很多服务器场景下体现得很明显。比如你的机器有 1TB 磁盘,自动配置可能只给/分配 300GB,剩下的留给/home。但如果这是一台跑数据库的机器,你希望数据全部存到/var/lib/mysql对应的独立分区上,让日志和数据分离,避免将来根分区被日志写满。手动分区让你可以精确控制每个目录的容量分配。
生产环境里我常做的手动分区方案是这样:如果有 200GB 磁盘,/boot给 1GB,/给 50GB,/var给 30GB,/tmp给 10GB,/home看需求给剩余空间。这个方案的好处是各个目录占用的空间是隔离的,任何一个被写满,系统还有机会保持正常运行,方便你登录排查而不是死机卡死。如果你不太确定每个目录放什么,记住最常用的几个:用户主目录在/home,日志在/var/log,临时文件在/tmp,数据库默认路径通常在/var/lib下。
关于swap分区,有一个老生常谈的规则。过去大家常说 swap 等于内存的两倍,但这个建议已经过时了。现在服务器内存动辄 32GB、64GB,你要真给一个 64GB 的 swap 分区,纯属浪费磁盘。现在比较合理的做法是:如果内存不超过 8GB,swap 给 4GB;如果内存超过 8GB,swap 给 8GB 到 16GB 基本足够用于常见的休眠或内存溢出兜底。
分区创建完成后,别忘了点击"完成"按钮应用变更。这一步很容易漏,因为界面不提示你还没应用,直接返回上一个菜单系统会弹出一个黄色的告警条,提示你还未完成磁盘配置,重新回去点完才行。另外,如果你使用的不是全新磁盘,而是一块有旧系统的磁盘,安装程序会提示你"磁盘包含分区,点击回收空间",你需要勾选这块磁盘并确认让它全部重新分区,如果没有做这一步,分区配置界面里你可能会看到"没有可用的空间"的提示。
2.4 软件选择:图形桌面还是最小化服务器
"软件选择(Software Selection)"是另一个值得细看的选项。RHEL 8 的安装介质里面带了多种软件组合,常见的有:
- 带 GUI 的服务器(Server with GUI)
- 服务器(Server)
- 最小化安装(Minimal Install)
- 工作站(Workstation)
我的建议是,如果你是把这台机器当服务器使,选"服务器"或者"最小化安装"都行,千万别选带 GUI 的那个。带图形界面要多装几百个软件包,表面上方便了很多,但实际上增加了攻击面,占用了不必要的资源,而且大多数服务器操作根本不需要图形界面,SSH 命令行完全能搞定一切。我见过好多人在生产服务器上装了 GUI,然后跑着跑着内存不够了,查一圈发现 GNOME 桌面占了一大半,纯属自找麻烦。
如果你刚开始学 Linux,选带 GUI 的版本其实也无可厚非,它能帮你降低最初的黑屏恐惧感,特别是你用虚拟机练习的时候,图形界面会降低心理门槛。等到你对命令行有了基本认知,再换成 Server 模式也不迟。Minimal Install 是把安装包压到最小,系统装完以后很多东西都没有,连vim、lsof这种基础工具都要手动安装,适合有一定基础、清楚自己需要什么包的人。我个人的习惯是,自用虚拟机选带 GUI 的开发工作站,生产环境一律 Server。
2.5 KDUMP 与安全策略要不要动
安装概要里默认开启了 KDUMP,系统会为内核崩溃保留一块内存用于保存 dump 数据。这个机制在生产上非常有用,内核一旦 panic,你能够拿到现场数据进行分析。但是它的代价是默认预留了 128MB 或者更多的内存给 kdump。如果你是一台 4GB 内存的小机器,再被 KDUMP 占掉一部分,实际可用内存会变得捉襟见肘。
我的建议是:如果机器内存小于 8GB,可以关闭 KDUMP 以释放记忆体;如果是生产环境且内存充裕,务必开启。排查内核问题的时候,有 KDUMP 抓到的 vmcore 文件,能直接帮你定位到是哪一行内核代码出了问题,没有这个文件排查难度会大很多。
安全策略默认是"默认值",这里我不建议在安装时手动选择高安全策略。RHEL 的高级安全策略(如 CIS 基线)会强制开启很多安全加固选项,包括密码复杂度、登录失败锁定等。如果这是你第一次安装,先保持默认,装完系统后再根据实际需求执行安全基线,这样可以避免安装阶段因为配置不合预期导致系统行为变得难以捉摸。
2.6 网络配置:手动设置 IP 还是 DHCP
在安装概要界面点击"网络与主机名",你会看到所有网卡的列表。RHEL 8 默认把网卡设置为 DHCP 自动获取 IP,但是网卡开关默认是关闭状态,换句话说,你需要先打开右上角的开关,确保状态变成"已连接"。
对于服务器来说,DHCP 获取 IP 只能作为应急方案。因为 DHCP 分配的地址是可以变化的,一旦 IP 变了,你的 SSH 连接目标就变了,服务和监控也会随之断掉。生产环境应该配置静态 IP。具体操作是在网卡界面点击"配置",在 IPv4 设置里改为"手动",然后填入 IP、掩码、网关和 DNS。有些新手会漏掉 DNS,结果 IP 通了但域名解析不了,curl外网时报"Could not resolve host"。DNS 可以用公共 DNS,比如 223.5.5.5 或者 119.29.29.29,也可以用公司内部的 DNS 服务器。
主机名建议在你配置网络时就顺手改掉,默认的主机名是localhost.localdomain,生产环境里一堆主机都是 localhost,连监控系统和日志系统都分不清谁是谁。你可以在网络配置界面直接用"更改主机名"按钮设置,比如web-server-01,建议带序号,后续维护多个节点时,序号命名能让你不用打开系统就知道是哪台机器。
3. 安装过程的核心环节与系统初始化
3.1 开始安装后的等待时间内还能干点什么
当你把安装概要里的配置项都处理完,点"开始安装"按钮后,系统会进入安装进度界面,后台开始复制文件、安装软件包。这个阶段没有太多的交互操作,安装时间取决于磁盘速度、CPU 性能和软件包数量,快的话几分钟,慢的话要几十分钟。你可以趁这段时间,在进度页面的下方设置 root 密码和创建用户账号。
root 密码这里我多说几句。RHEL 8 默认强制密码复杂性要求,最少 8 位且不能太简单。很多人喜欢设一个自己习惯的简单密码,结果安装程序一直提示密码过弱。有两种处理方式:一种是用系统建议的复杂密码,另一种是在密码框下方确认"即使密码较弱也允许使用"。但如果这是一台生产服务器,强烈建议你不要绕过复杂性校验。root 密码一旦被猜到,你的整个服务器就完全是别人的了,这不是危言耸听的事。
创建用户账号也是在这个阶段完成的。可以选让这个用户作为管理员(加入 wheel 组),这样后续你就能用普通用户 SSH 登录,再通过sudo su -切换到 root。安全起见,生产环境建议禁用 root 直接远程登录,强制使用普通用户登录再提权,这样能避免 root 密码被暴力破解时整个系统被直接拿下,日志里也能记录下每一次提权的是哪个用户。这个习惯从装第一台机器就养起来是最省事的。
3.2 安装完成后重启前必须确认的引导设置
安装进度走完,程序会提示你"重启系统"。在重启之前,记得把 U 盘拔掉,否则有些机器 BIOS 的启动顺序是 U 盘优先,启动一圈又回到了安装界面,你以为系统没装上,实际上是安装介质又引导了。虚拟机上可以把 CD/DVD 里的 ISO 镜像弹出后再重启。
重启进入系统后,第一件要做的事是用刚才创建的用户登录。如果你是第一次接触 RHEL,会发现登录后命令行是黑底白字,别慌,这是正常的。输入ip addr查看网卡是否正常获取到 IP,再输入ping测试网络连通性。如果你想确认系统版本,用cat /etc/redhat-release,会输出类似Red Hat Enterprise Linux release 8.x (Ootpa)的信息,Ootpa 是 RHEL 8 的代号,这个可以当作彩蛋记一下。
3.3 订阅管理:让软件源可用起来
RHEL 装完系统后,没有订阅的时候,dnf install会提示无法找到软件源,因为红帽的软件仓库需要订阅验证。我用的是个人开发者免费订阅方案,过程如下:首先在浏览器里登录红帽官网,注册账号并开通开发者订阅,然后在服务器上执行:
subscription-manager register --username 你的红帽账号 subscription-manager attach --auto这两步执行完之后,就可以看到系统已经绑定订阅了。如果你的服务器在非标准网段、访问不到红帽订阅服务器,你还可以用离线方式手动导入订阅证书,不过这个操作相对复杂,多数场景用不上。订阅生效后,再执行:
dnf repolist就能看到rhel-8-for-x86_64-baseos-rpms和rhel-8-for-x86_64-appstream-rpms两个默认仓库,AppStream 仓库是 RHEL 8 特有的机制,它提供多种版本可选的应用软件,这里简单理解成"软件包的多个版本来源"就行了。
订阅这块我提醒一句,红帽的个人开发者订阅是有免费续期的流程的,你需要每隔一段时间去官网确认一次订阅状态,否则订阅过期后dnf update会报错。这个动作没什么技术含量,但很容易被忘记,建议在日历里设个提醒。企业环境买的订阅由运维统一管理,就不需要你自己关心续期问题。
3.4 基础网络与防火墙配置
RHEL 8 默认启用 firewalld 防火墙,这一点和很多其他 Linux 发行版不同。你装好环境后想要访问某个端口,比如 HTTP 的 80 端口、SSH 的 22 端口,必须显式地在防火墙里放行,不然服务明明监听着,外部访问就是不通,排查半天还以为是服务出了问题。这类"端口通了但服务连不上"的现象,是新手阶段最常见的迷思之一。
最简单的操作命令是:
sudo systemctl start firewalld sudo systemctl enable firewalld sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-port=8080/tcp sudo firewall-cmd --reload--permanent表示永久生效,--reload是让配置立刻加载,所有的配置在写入后都需要 reload 一次。你自己测试环境时,如果用 DHCP 拿 IP,路由器重启后 IP 变了,防火墙规则不会变,但远程 SSH 的目标地址就会失效,这其实不算防火墙的锅,是 IP 分配策略的问题。
对于 SELinux 的状态,RHEL 8 默认是 Enforcing(强制)模式,很多从其他发行版转过来的人会第一时间想把它关掉。我个人的态度是,如果你的应用完全跑在常规路径上,开 SELinux 并没有那么可怕。常见的坑大多是文件上下文不对,比如你把一个 Web 应用仓库克隆到了/home下面,Nginx 读不到文件,报Permission denied,实际上就是 SELinux 阻止了进程访问用户目录下的内容。正确姿势是用restorecon或者chcon调整上下文标记,而不是直接setenforce 0一关了之。生产环境默认开着,遇到问题多查ausearch日志,而不是粗暴关闭。
3.5 系统更新与应用安装
完成订阅后第一件事是跑一次系统更新,把所有已安装的包刷到仓库里的最新状态。RHEL 8 默认自带dnf作为包管理器,yum已经变成了它的一层别名。我建议你现在开始习惯使用dnf,它是yum的现代化替代品,速度和依赖解析能力都好很多:
sudo dnf update -y sudo dnf install -y vim wget tar net-tools lsof很多人装完系统会问:"为什么ifconfig没有了?"这是因为 RHEL 8 默认使用ip命令(来自 iproute2 包),net-tools已经不再预装。如果你更习惯传统命令,可以用上面的dnf install net-tools装回去,但用久了你会发现ip addr和ip route其实更顺手。
软件的 AppStream 仓库里有些软件会有多个版本流,比如 PostgreSQL 有 13、15 等多个版本可选,这一点和之前一版锁定一个版本的做法差别很大。使用的时候也不需要额外配置,直接dnf module list postgresql查看可选模块流,然后用dnf module enable postgresql:15指定版本即可。这在需要特定版本依赖的部署场景里非常实用,值得专门了解一下。
4. 安装中最常见的坑与排查思路
4.1 引导界面打不开或直接黑屏
如果你从 U 盘引导时屏幕直接黑屏或者卡在引导界面不动,最常见的原因是显卡兼容性问题。RHEL 8 的默认内核参数对某些独立显卡支持不够好,尤其是一些比较老的 N 卡。
解决办法是在引导菜单高亮安装条目后按 Tab 键或 E 键进入编辑模式,在引导参数里临时加上nomodeset三个字,然后回车继续引导。这个参数的作用是让内核暂时跳过显卡模式切换,用基本显示模式启动。安装完成后,如果系统启动还是黑屏,同样可以在 grub 启动菜单里按 e 编辑,找到以 linux 开头的那一行,在末尾加上nomodeset,再按 Ctrl+X 引导,进系统后再把它写入 grub 配置文件让它永久生效:
sudo grub2-editenv list sudo sed -i 's/GRUB_CMDLINE_LINUX="/GRUB_CMDLINE_LINUX="nomodeset /' /etc/default/grub sudo grub2-mkconfig -o /boot/grub2/grub.cfg做这个操作前,我提醒一句:不同情况下引导文件路径可能会不一样,UEFI 和 BIOS 对应的路径有差异,如果修改后启动出错,可以看看/boot/efi/EFI/redhat/grub.cfg这类路径,本质上路径是跟着你的启动模式走的。方向对了,排查不会花太久。
4.2 分区报错与磁盘识别异常
安装时如果提示"未找到可用磁盘"或者磁盘显示为分区表未知,最常见的原因是你用了一块全新的、没有初始化分区表的磁盘,或者磁盘上残留着 GPT/MBR 之外的怪异分区表信息。我建议不要在图形界面里直接选"下拉菜单切换磁盘类型",风险较高,不如进终端用命令行工具 pre-clear。
另一种情况是虚拟机环境,创建虚拟磁盘时没有选择正确接口。比如用某种虚拟化平台,默认给的控制器类型,RHEL 8 安装程序不一定认识,有可能在磁盘列表里就看不到这块盘。解决办法是在虚拟机设置里把磁盘控制器改成 SATA 或者 VirtIO,其中 VirtIO 性能更佳,是虚拟化里用的主流方案。如果是物理机,安装程序无法识别磁盘,优先检查是否开启了 RAID 控制器的驱动,有些服务器的磁盘控制器需要额外加载驱动,这个超出常规教程范围,建议直接找硬件厂商的安装手册。
另外在分区确认阶段,如果你之前选过"自动配置分区",再改成"手动配置分区"时,屏幕上可能残留了自动生成的 LVM 卷组信息。你需要把之前自动创建的/挂载点手动卸载掉,否则"完成"按钮点击后系统还会抱怨挂载点冲突。实际操作中你会发现,最稳妥的方式是直接删除所有卷组和物理卷,然后从零开始建。
4.3 网络正常但 SSH 就是连不上
系统装完,网络通,防火墙也放行了,但 SSH 客户端连的时候提示Connection refused,第一反应去检查 sshd 服务跑没跑:
sudo systemctl status sshd如果服务没跑,启动它并设置开机自启。如果服务已经跑了,还是连不上,再看一下服务监听的端口和地址,某些情况下 sshd 只监听了 IPv6 地址,而你的客户端用的是 IPv4,这样就出现了"看起来配置没问题但就是连不上"的诡异状况。检查方式:
sudo ss -tlnp | grep ssh看到0.0.0.0:22才是正常,如果只看到:::22,说明它监听在 IPv6 通道上,需要在/etc/ssh/sshd_config里强制指定监听 IPv4 地址。修改完 sshd 配置,记得重启 sshd 服务,并且不要立刻关闭当前的 SSH 会话,如果新的配置有问题导致 sshd 无法启动,你至少还有一条已经建立的控制通道能救回来,直接全断掉就只能去物理机前操作了。
4.4 仓库更新报错的几种典型情况
安装完或者执行dnf update的时候,提示Error: There are no enabled repositories,十有八九是订阅没绑定成功。重新执行subscription-manager attach --auto后再dnf repolist看看,只要仓库数字大于 0,就没问题。另一种常见情况是仓库元数据损坏,dnf提示Metadata file does not match checksum或者类似 GPG 校验失败,可以用:
sudo dnf clean all sudo dnf makecache清理缓存后重新生成,通常能解决。如果你所在环境访问红帽官方的仓库速度很慢,下载软件包老超时,可以考虑配置一个离你更近的源镜像。RHEL 的仓库地址可以通过 subscription-manager 配置修改,把默认的仓库 URL 指向镜像站。但我不建议一开始就这么干,官方源的速度在多数地区都能接受,镜像源反而经常有同步延迟问题,可能导致你拿到不是最新的包。
4.5 忘记 root 密码怎么办
这个场景几乎每个做运维的人都经历过,某天你需要 root 权限,却发现密码怎么都想不起来。RHEL 8 没有旧版那种神奇的单用户模式直通方法了,现在正确的做法是:
重启系统,在 GRUB 引导菜单上按 e 进入编辑模式,找到 linux 开头的那一行,在行尾添加rd.break,然后按 Ctrl+X 引导。进入维护模式后,依次执行:
mount -o remount,rw /sysroot chroot /sysroot passwd root touch /.autorelabel exit reboot这里touch /.autorelabel的主要作用是让 SELinux 重新标记相关文件,如果漏掉这一步,重置后的密码可能导致系统在下次登录时因为 SELinux 上下文不对而无法正常使用。这个操作思路理解了就不难,涉及对 GRUB 编辑的功底,多练几遍就熟练了。
5. 从安装到上线的最后一段路
5.1 初装后的系统快照与备份意识
无论你是在物理机还是虚拟机上装的 RHEL 8,安装完成、软件配置完毕之后的这个时间点,一定要想办法做一个系统快照或者备份。虚拟机的话,直接打快照就可以了,一秒完成,后续怎么折腾都能一键还原。物理机的备份会复杂一些,可以用rsync定期同步系统文件到外部存储,或者用dd对整个磁盘做镜像,后者比较费磁盘空间但胜在完整。
这件事的重要性在于,你在学习阶段或者新环境部署阶段一定会不停试错,改配置改坏、装软件装挂,都是常态。有了快照,你的试错成本就只是几分钟回滚的时间。我踩过太多次"改了一个小配置结果系统起不来"的坑,没有快照的时候只能一个个去排查,有快照的时候直接回滚重来,效率天差地别。
5.2 一次性配置清单:装完系统后我建议立刻做的事
根据我多年的实践,装完 RHEL 8 之后有几个事情值得立刻做掉,避免后面返工:
- 创建普通用户并加入 wheel 组
- 配置静态 IP 和主机名
- 完成订阅注册并更新系统
- 安装基础工具(vim、wget、lsof 等)
- 配置 sshd 禁止 root 直接登录
- 调整 SELinux 相关策略以满足后续应用需求
- 设置系统时间同步(chrony)
时间同步这块值得多说一句,服务器时间不准的影响是隐蔽但致命的。日志记录的时间错乱会让你排查故障时完全理不清事件顺序,证书校验会在 TLS 握手时报错,定时任务也会运行在错误的时间点。RHEL 8 默认使用 chrony 实现 NTP 同步,只要确保/etc/chrony.conf里的 NTP 服务器可达,然后启动chronyd服务即可。如果是在虚拟机里,除了让虚拟化平台提供时间同步外,也建议在系统里单独启用 chrony,双保险。
```bash sudo dnf install -y chrony sudo systemctl enable --now chronyd timedatectl status5.3 自建局域网安装源,批量部署不再愁
装了两三台 RHEL 机器后,你可能会意识到一个问题:每一台机器都要从镜像站下载安装包,速度慢且浪费带宽。如果你负责多台服务器的部署,可以在内网搭一个本地软件源,用 DNS 或者 hosts 让内网机器都能从这台源服务器拉取 RPM 包。这个做法在生产团队里非常常见。
搭建流程不复杂,找一台始终在线的服务器,把 RHEL 的 DVD ISO 挂载到本地目录,然后用 Nginx 或 HTTPD 把该目录以 HTTP 方式共享出来。其他机器上把仓库源指向这台内网服务器即可:
sudo dnf config-manager --add-repo=http://你的内网源IP/rhel8这里注意防火墙放行对应的 HTTP 端口。内网源的好处除了安装速度快之外,还能避免多个主机同时向外网仓库拉包对出口带宽造成压力。实际运维中,内网源还能帮你精确控制版本,你不用担心每台机器从不同时间的源拉包导致版本不统一,这一点对于多节点一致性维护很重要。
5.4 日志与监控从第一天就留好
系统装完立即把日志轮转和系统监控搞起来,是我反复强调的事情。RHEL 8 默认使用 rsyslog 记录系统日志,日志文件存在/var/log/下面,默认的 logrotate 配置会按周轮转,避免日志无限膨胀。但仅靠系统默认日志是不够的,你后续装的 Nginx、MySQL 之类的应用都有各自的日志目录,需要在应用配置里主动设置日志输出位置和轮转策略。
监控方面,如果你是个人单机学习,至少学会用top、htop、free、df这些命令定期检查系统状态。上了生产规模,就值得考虑部署一个集中监控系统,把 CPU、内存、磁盘、带宽指标都采集起来,设好告警。所有运维问题的第一步都是"它发生了什么",没有日志和监控的支撑,你连发生了什么都无从得知,排查自然会陷入瞎猜的境地。这件事从装完系统的第一天就做,后面能省下大量救火时间。
5.5 我踩过几次坑之后的几条实操心得
最后分享几个我在反复安装 RHEL 8 的过程中沉淀下来的个人操作习惯,纯属经验之谈,但效果很稳定。
第一,所有安装配置里的密码,建议先用密码管理器记录,再往系统里填。人在安装时会顺手设定一个临时密码,装完又忘了,后面登录时只能重置。与其这样,不如第一次就规范记录。第二,安装时顺手把网卡的 device name 记下来,比如ens192、ens160之类,后续配置防火墙规则或排查网络时需要用到接口名,重新去翻ip addr虽然不难,但安装现场记一笔更快。第三,系统更新不要拖,RHEL 的补丁更新往往包含安全修复,尤其是内核和 OpenSSL 这类组件,一个已知漏洞放那儿不管,等于给人留了后门,早晚出事。
另外,RHEL 8 的命令行界面其实比图形界面稳定高效得多,练习时尽量直接在终端环境里完成全部操作。你会习惯用vim编辑文件、用dnf管理软件包、用systemctl控制系统服务。这个过程不会太快,但一旦熟练了,换任何一台 Linux 机器你都不会觉得陌生。
我在第一次装 RHEL 8 的时候,其实也踩过不少坑,比如分区表识别不出来,比如订阅忘了绑定导致无法更新,再比如 SELinux 的上下文问题让我一度怀疑是网络问题。这些坑都不深,但如果没有完整的上下文理解,你很可能在一个简单的问题上空转半天。装系统的本质不只是把 ISO 写进磁盘,而是让你真正理解这台机器从硬件到内核再到应用层的每一层关系。搞明白每一次选择背后的理由,比单纯记下操作步骤有价值得多。
如果你能在装第一台 RHEL 8 时就把这些细节消化掉,后续再接触其他 Linux 发行版或者运行大规模服务器集群,都会轻松不少。操作系统从来不是装完就结束的东西,它是你所有工作负载的承载底座,把这个底座打稳,后边的路会顺很多。