CentOS,作为一个源自Red Hat Enterprise Linux(RHEL)源代码的社区企业级操作系统,凭借其无与伦比的稳定性、安全性和长期支持,在全球服务器市场中占据了举足轻重的地位,无论是部署Web服务、数据库集群,还是作为虚拟化平台,CentOS都是系统管理员和工程师的首选之一,掌握CentOS,就如同拥有了一本强大的服务器运维工具书,本文旨在梳理其核心知识点,为读者提供一份清晰、实用的参考指南。

基础系统管理篇
对于任何一位CentOS用户而言,熟练掌握基础系统管理命令是高效工作的第一步。
软件包管理:dnf 与 yum
软件包的安装、更新与卸载是日常运维中最频繁的操作,在CentOS 7及更早版本中,yum(Yellowdog Updater Modified)是默认的工具,从CentOS 8开始,dnf(Dandified YUM)取代了yum,它在性能、依赖解析和插件支持上均有显著提升,但基本命令保持了高度兼容。
- 更新系统:
sudo dnf update -y - 安装软件包:
sudo dnf install httpd -y - 卸载软件包:
sudo dnf remove httpd -y - 搜索软件包:
dnf search keyword - 查看已安装包信息:
dnf info installed package_name
服务管理:systemctl
systemd是现代Linux发行版的系统和服务管理器,systemctl是与之交互的主要命令行工具,它取代了传统的service和chkconfig命令。
- 启动服务:
sudo systemctl start httpd - 停止服务:
sudo systemctl stop httpd - 重启服务:
sudo systemctl restart httpd - 设置开机自启:
sudo systemctl enable httpd - 禁止开机自启:
sudo systemctl disable httpd - 查看服务状态:
systemctl status httpd
网络配置
CentOS提供了多种网络配置方式,图形化界面在此不作赘述,重点介绍命令行工具。
-
nmcli(NetworkManager Command-Line Interface):这是推荐使用的现代工具,功能强大且交互友好。- 查看网络连接:
nmcli connection show - 查看设备状态:
nmcli device status - 为连接配置静态IP:
sudo nmcli connection modify "ens160" ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns "8.8.8.8,8.8.4.4" ipv4.method manual - 应用配置:
sudo nmcli connection up "ens160"
- 查看网络连接:
-
配置文件:传统的配置文件位于
/etc/sysconfig/network-scripts/ifcfg-<interface_name>,通过直接编辑此文件(如BOOTPROTO=static,IPADDR=...),然后使用sudo nmcli connection reload或重启网络服务来生效。
防火墙管理:firewalld
firewalld是CentOS 7+的默认动态防火墙管理工具,它支持“区域”概念,使得网络管理更加灵活。

- 查看当前区域:
firewall-cmd --get-active-zones - 查看区域开放的端口/服务:
firewall-cmd --zone=public --list-all - 永久开放一个端口:
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent - 永久开放一个服务:
sudo firewall-cmd --zone=public --add-service=http --permanent - 重新加载配置使修改生效:
sudo firewall-cmd --reload
进阶运维与诊断篇
当系统运行稳定后,性能监控、日志分析和故障排查便成为保障服务可用性的关键。
性能监控工具
面对性能瓶颈,选择合适的工具至关重要,下表列出了一些常用的诊断命令:
| 工具 | 主要用途 | 常用参数示例 |
|---|---|---|
top |
实时查看进程动态、CPU和内存占用 | top (交互式命令,按q退出) |
htop |
top的增强版,界面更友好,支持鼠标操作 |
htop (需额外安装) |
vmstat |
报告虚拟内存统计信息,包括进程、内存、分页、块IO等 | vmstat 2 5 (每2秒刷新一次,共5次) |
iostat |
监控系统输入/输出设备和CPU的使用情况 | iostat -xz 1 (显示扩展统计信息) |
netstat / ss |
查看网络连接、路由表、接口统计等 | ss -tulnp (显示所有监听的TCP/UDP端口及进程) |
df |
查看文件系统磁盘空间使用情况 | df -h (以人类可读格式显示) |
du |
查看目录或文件的磁盘使用量 | du -sh /var/log (查看/var/log目录总大小) |
日志管理
日志是排查问题的“黑匣子”,CentOS使用systemd-journald和传统的rsyslog共同管理日志。
-
journalctl:用于查询systemd日志。- 查看系统所有日志:
journalctl - 查看某个服务的日志:
journalctl -u httpd.service - 实时跟踪日志:
journalctl -f - 查看最近的错误日志:
journalctl -p err -n 20
- 查看系统所有日志:
-
传统日志文件:主要存储在
/var/log目录下。/var/log/messages:记录系统核心信息。/var/log/secure:记录安全相关的日志,如登录、sudo等。/var/log/dmesg:记录内核启动时的信息。
存储与磁盘管理
lsblk:以树状图形式列出块设备,清晰展示磁盘与分区关系。- 逻辑卷管理(LVM):LVM是CentOS上极具弹性的磁盘管理方案,它允许在物理卷之上创建逻辑卷,并可以动态调整大小,无需重启系统,核心概念包括PV(物理卷)、VG(卷组)和LV(逻辑卷),熟练使用
pvcreate,vgcreate,lvcreate,lvextend等命令,能极大提升存储管理的灵活性。
安全加固篇
安全是服务器运维的生命线。
用户与权限管理
- 最小权限原则:严禁直接使用
root用户进行日常操作,应为每个管理员创建普通用户,并通过sudo提权。 sudo配置:通过visudo命令安全地编辑/etc/sudoers文件,为特定用户或用户组分配命令执行权限,允许webadmin用户无需密码重启httpd服务:webadmin ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart httpd。
SSH安全

SSH是远程管理Linux服务器的标准协议,其安全性至关重要,编辑/etc/ssh/sshd_config文件并进行如下加固:
- 禁用root登录:
PermitRootLogin no - 使用密钥对认证:
PasswordAuthentication no(确保已为用户配置好SSH密钥) - 更改默认端口:
Port 2222(选择一个不常用的高端口) - 限制可登录用户:
AllowUsers admin1 admin2
修改后,使用sudo systemctl restart sshd重启服务。
相关问答FAQs
Q1: CentOS 7 和 CentOS Stream 8/9 有什么本质区别,我该如何选择?
A: 两者的核心区别在于发布模式和定位。CentOS 7(以及更早版本)是RHEL 7的“二进制兼容重建版”,它滞后于RHEL的更新,主要目标是提供一个极其稳定、可预测的免费企业级操作系统平台,而CentOS Stream是RHEL的“上游开发版”,它位于Fedora和RHEL之间,比RHEL略微领先,用户可以提前体验到即将进入下一个RHEL小版本的功能和补丁。
选择建议:
- 如果你的业务环境对稳定性要求极高,不希望有任何非预期的变更,且软件生态与RHEL 7强绑定,那么继续使用CentOS 7(直到其生命周期结束)是稳妥的选择。
- 如果你想提前获取RHEL的新特性,为未来的RHEL版本升级做准备,或者参与社区贡献,同时可以接受一个比传统CentOS更快的更新节奏,那么选择CentOS Stream是更合适、更具前瞻性的方案,对于新项目,推荐使用Stream版本。
Q2: 在没有图形界面的CentOS服务器上,如何快速查看CPU、内存等硬件信息?
A: 可以通过一系列命令行工具轻松获取详细的硬件信息,无需安装额外软件(部分工具需util-linux包,系统默认已安装):
- 查看CPU信息:
lscpu命令会以清晰格式输出CPU架构、核心数、线程数、主频等信息。 - 查看内存信息:
free -h命令可以人类可读的方式(如G, M)显示总内存、已用、空闲和交换分区的详细信息。 - 查看PCI设备:
lspci命令列出所有PCI总线设备,如网卡、显卡等,使用lspci -v可以查看更详细的信息。 - 查看USB设备:
lsusb命令用于列出所有USB设备。 - 查看磁盘分区:
lsblk或fdisk -l可以查看所有磁盘及其分区布局。 - 查看DMI/系统硬件信息:
dmidecode命令可以提供非常全面的系统硬件详情,包括BIOS、主板、机箱、内存插槽等,通常需要sudo权限运行。
这些命令组合起来,足以让你对服务器的硬件状况了如指掌。