CentOS 7 作为服务器操作系统中坚力量,凭借其卓越的稳定性和与 Red Hat Enterprise Linux (RHEL) 的紧密关系,至今仍在许多企业的生产环境中占据核心地位,掌握 CentOS 7 的相关知识和技能,是系统管理员、运维工程师乃至 DevOps 工程师在面试中脱颖而出的关键,本文旨在梳理 CentOS 7 面试中的核心知识点,帮助求职者构建清晰的知识体系。
核心基础与系统管理
这部分是考察候选人基本功的重中之重,面试官期望看到你对系统有深入且准确的理解。
启动流程与 systemd
与 CentOS 6 及更早版本不同,CentOS 7 采用 systemd
作为初始化和服务管理器,取代了传统的 SysVinit
,面试中可能会被问到两者的区别,以及 systemd
的优势,你需要了解,systemd
引入了单元(Unit)的概念,如 .service
(服务)、.target
(运行级别,相当于 runlevel)、.mount
(挂载点)等,熟练使用 systemctl
命令是必备技能,
systemctl start/stop/restart [service-name]
:控制服务。systemctl enable/disable [service-name]
:设置服务开机自启。systemctl status [service-name]
:查看服务状态。journalctl -u [service-name]
:查看特定服务的日志。
GRUB2 是 CentOS 7 默认的引导加载器,其配置文件为 /boot/grub2/grub.cfg
,通常通过编辑 /etc/default/grub
并运行 grub2-mkconfig -o /boot/grub2/grub.cfg
来生效。
软件包管理
CentOS 7 使用 yum
(Yellowdog Updater Modified)作为其前端包管理器,底层基于 rpm
(RPM Package Manager),你需要熟悉:
yum install/update/remove [package-name]
:安装、更新、卸载软件包。yum search/info [keyword]
:搜索和查看软件包信息。yum repolist
:查看已配置的软件仓库。rpm -ivh [package-file.rpm]
:安装本地 RPM 包。rpm -qa | grep [package-name]
:查询已安装的包。rpm -ql [package-name]
:列出软件包安装的文件。
理解 /etc/yum.repos.d/
目录下仓库配置文件的格式和作用也非常重要。
文件系统与权限
Linux 文件系统层次结构标准(FHS)是基础,必须清楚 /etc
(配置文件)、/var
(经常变化的文件,如日志)、/home
(用户家目录)、/proc
(内核和进程信息)、/sys
(系统设备信息)等核心目录的用途,对于权限管理,除了常规的 chmod
和 chown
,了解访问控制列表(ACL)能为你加分,它提供了更精细的权限控制能力。
网络配置与服务管理
服务器离不开网络,这部分内容直接关系到服务的可用性。
网络管理
CentOS 7 推荐使用 NetworkManager
来管理网络,其命令行工具 nmcli
功能强大且易于脚本化,面试官可能会让你用命令修改 IP 地址或网关,也需要了解传统的配置方式,即编辑 /etc/sysconfig/network-scripts/ifcfg-ens33
(网卡名可能不同)这类配置文件,并通过 systemctl restart network
使其生效。
防火墙firewalld
是 CentOS 7 默认的动态防火墙管理工具,它取代了 iptables
,其核心概念是“区域”和“服务”,你需要掌握:
firewall-cmd --get-default-zone
:查看默认区域。firewall-cmd --list-all
:查看当前区域的规则。firewall-cmd --add-service=http --permanent
:永久放行 HTTP 服务。firewall-cmd --add-port=8080/tcp --permanent
:永久放行 TCP8080 端口。firewall-cmd --reload
:重载配置使永久规则生效。
理解firewalld
与iptables
的区别(动态 vs 静态,服务 vs 端口)是一个很好的加分点。
性能监控与故障排查
这部分最能体现候选人的实战经验和问题解决能力,你需要熟悉一系列常用的监控和诊断命令。
命令 | 功能说明 |
---|---|
top / htop | 实时查看进程和系统资源(CPU、内存)占用情况。 |
vmstat | 查看系统的虚拟内存、进程、IO等活动,是性能分析的入门工具。 |
iostat | 监控CPU和磁盘I/O使用情况,用于排查I/O瓶颈。 |
netstat / ss | 查看网络连接、路由表、接口状态。ss 是 netstat 的现代替代品,速度更快。 |
df / du | df 查看文件系统磁盘空间使用情况,du 查看文件或目录的磁盘占用大小。 |
free | 查看系统内存和交换空间的使用情况。 |
日志分析
除了前面提到的 journalctl
,还必须熟悉传统日志系统的关键文件,如 /var/log/messages
(系统核心日志)、/var/log/secure
(安全相关日志,如登录认证)、/var/log/dmesg
(内核启动日志)等,能够快速定位和分析日志是解决问题的关键一步。
安全与自动化
SELinux
SELinux(Security-Enhanced Linux)是 RHEL/CentOS 系列的核心安全特性,它实现了强制访问控制(MAC),面试中通常会考察你是否了解其三种模式(Enforcing、Permissive、Disabled)以及如何管理,常用命令有 getenforce
(查看当前模式)和 setenforce 0/1
(临时切换模式),当服务因 SELinux 权限问题无法正常运行时,需要学会查看 /var/log/audit/audit.log
来分析和修复(例如使用 chcon
或 semanage
命令)。
定时任务cron
是实现任务自动化的基础,你需要能编写并解释 crontab
文件中的时间表达式(分、时、日、月、周),并使用 crontab -e
命令进行编辑。
相关问答 FAQs
Q1: 在生产环境中,不慎忘记了 root 密码,应该如何安全地重置?
A: 重置 root 密码需要进入紧急模式,步骤如下:
- 重启服务器,在 GRUB2 引导菜单出现时,按
e
键编辑选中的启动项。 - 找到
linux16
或linuxefi
开头的行,移动光标到该行末尾。 ,推荐使用 rd.break
,它更现代且安全。- 按
Ctrl+X
启动进入紧急模式,系统会以只读方式挂载/sysroot
。 - 重新挂载文件系统为可写模式:
mount -o remount,rw /sysroot
。 - 切换到原系统环境:
chroot /sysroot
。 - 重置密码:执行
passwd root
,根据提示输入新密码。 - 确保 SELinux 上下文被重新标记(非常重要,否则可能无法正常登录):
touch /.autorelabel
。 - 退出并重启:依次执行
exit
退出chroot
环境,exit
退出紧急模式,最后系统会自动重启,重启过程可能会因为 SELinux 重新标记而稍长一些,请耐心等待。
Q2: CentOS 7 的 firewalld
和传统的 iptables
有什么核心区别?为什么在 CentOS 7 中推荐使用 firewalld
?
A: 核心区别主要体含在管理理念和实现方式上:
- 动态 vs 静态:
firewalld
是动态防火墙管理器,它的规则变更可以即时生效,无需重启防火墙服务,不会中断现有连接,而iptables
是静态的,每次修改规则后通常需要执行iptables-save
和service iptables restart
或iptables-restore
,这会中断所有现有连接。 - 区域 vs 规则链:
firewalld
引入了“区域”的概念,不同的区域可以应用不同的规则集(如public
,trusted
,dmz
),管理时,更多的是将网络接口或流量源与区域关联,然后在区域内开放“服务”(如http
,ssh
)或端口,这种方式更抽象,更符合用户思维。iptables
则直接操作filter, nat, mangle等表内的规则链(INPUT, OUTPUT, FORWARD),规则更底层,配置相对复杂。 - 易用性:
firewalld
提供了firewall-cmd
这样的命令行工具和图形界面,配置更加直观和友好,降低了配置错误的概率。iptables
的规则语法相对复杂,容易出错。
推荐原因:正是因为 firewalld
的动态性、易用性和更现代的管理理念,使其更适合在需要频繁调整策略且不能中断连接的服务器环境中使用,它简化了防火墙的管理流程,提高了运维效率和系统安全性,虽然 iptables
功能依然强大且底层,但从管理便利性角度,firewalld
无疑是 CentOS 7 及以后版本的首选。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复