CentOS 系统管理:RHEL 兼容的服务器运维

FreeGuideOnline 最新 2026-06-13

CentOS 系统管理:RHEL 兼容的服务器运维

课程介绍

CentOS(Community Enterprise Operating System)是基于 Red Hat Enterprise Linux (RHEL) 源代码重新编译而成的免费企业级 Linux 发行版。它与 RHEL 完全二进制兼容,是企业服务器部署的首选平台之一。本教程面向初学者,从零开始讲解 CentOS 的系统管理核心技能,让你快速掌握生产环境中的服务器运维。

环境准备

获取 CentOS

  • 下载镜像:访问 centos.org 获取最新 CentOS 7 或 CentOS Stream 版本。推荐初学者使用 CentOS 7(生命周期至 2024 年 6 月),企业环境逐步向 CentOS Stream 或 Rocky Linux 迁移。
  • 硬件要求:最低 1 GB 内存、20 GB 硬盘。学习阶段可使用虚拟机(VMware/VirtualBox)或云服务器。

最小化安装

安装时选择 “Minimal Install” 以获得纯净的服务器环境,后续根据需求手动添加组件。设置 root 密码并创建普通用户。

基础命令行操作

Shell 与终端

登录系统后即进入 Bash Shell。常用快捷键:

  • Tab:命令补全
  • Ctrl+C:终止当前命令
  • Ctrl+Z:挂起任务,fg 恢复

文件与目录操作

pwd                     # 显示当前目录
ls -la                  # 列出所有文件(含隐藏)
cd /etc                 # 切换目录
mkdir -p /data/logs     # 递归创建目录
cp file1 file2          # 复制文件
mv old new              # 移动/重命名
rm -rf /tmp/test        # 强制删除目录(慎用)

文本处理三剑客

# grep  搜索文本
grep "error" /var/log/messages

# sed   流编辑器,常用于替换
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

# awk   数据提取与格式化
awk '{print $1}' access.log

用户与权限管理

用户与组

useradd john                    # 创建用户
passwd john                     # 设置密码
usermod -aG wheel john          # 将用户加入 wheel 组(sudo 权限)
id john                         # 查看用户信息
userdel -r john                 # 删除用户及家目录
groupadd devops                 # 创建组

文件权限

权限用 rwx 表示,分为属主、属组、其他人三组。

chmod 755 script.sh            # 数字法:rwxr-xr-x
chown john:devops file.txt     # 修改属主属组
chmod +x script.sh             # 添加执行权限

权限数字含义:r=4, w=2, x=1。使用 ls -l 查看。

sudo 配置

编辑 /etc/sudoers 推荐使用 visudo 命令,避免语法错误导致 sudo 失效。

## 允许 wheel 组使用 sudo
%wheel  ALL=(ALL)       ALL
## 无密码执行特定命令
john    ALL=(ALL)       NOPASSWD: /bin/systemctl restart httpd

软件包管理

YUM 基础

YUM(Yellowdog Updater Modified)是 CentOS 的软件包管理器,可自动解决依赖关系。

yum install -y httpd              # 安装
yum remove -y httpd               # 卸载
yum update -y                     # 更新所有包
yum search nginx                  # 搜索
yum info nginx                    # 查看软件信息
yum list installed | grep nginx   # 列出已安装的包

配置仓库

常用第三方仓库:

  • EPEL(Extra Packages for Enterprise Linux):提供大量额外软件。
yum install -y epel-release
  • Remi:用于获取更新版的 PHP。
yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm

安装完仓库后,启用仓库:

yum install -y yum-utils
yum-config-manager --enable remi-php74

源码编译安装

当软件不在仓库中时:

tar -xzf soft.tar.gz
cd soft
./configure --prefix=/usr/local/soft
make && make install

系统服务管理

Systemd 是 CentOS 7 及以上的初始化系统,统一管理服务、挂载、设备等。

服务生命周期

systemctl start httpd           # 启动
systemctl stop httpd            # 停止
systemctl restart httpd         # 重启
systemctl reload httpd          # 重载配置(不间断服务)
systemctl enable httpd          # 开机自启
systemctl disable httpd         # 禁止自启
systemctl status httpd          # 查看状态
systemctl list-units --type=service  # 列出所有服务

日志查看

journalctl 查看 systemd 日志:

journalctl -u httpd             # 查看指定服务日志
journalctl -f                   # 实时跟踪日志(类似 tail -f)
journalctl --since today        # 今日日志
journalctl -k                   # 内核日志

网络配置与管理

查看网络信息

ip a                            # 查看 IP 地址
ip route                        # 路由表
hostnamectl set-hostname srv01  # 设置主机名

静态 IP 配置(nmcli)

在 CentOS 7 中推荐使用 NetworkManager 命令行工具 nmcli

# 查看连接名称
nmcli con show

# 设置静态 IP(假设连接名为 ens33)
nmcli con mod ens33 ipv4.addresses 192.168.1.100/24
nmcli con mod ens33 ipv4.gateway 192.168.1.1
nmcli con mod ens33 ipv4.dns "8.8.8.8 8.8.4.4"
nmcli con mod ens33 ipv4.method manual
nmcli con up ens33

防火墙管理

firewalld 是 CentOS 7 默认防火墙。

firewall-cmd --state                    # 状态
firewall-cmd --list-all                 # 查看所有规则
firewall-cmd --add-service=http --permanent   # 永久添加服务
firewall-cmd --add-port=8080/tcp --permanent  # 开放端口
firewall-cmd --reload                   # 重载生效
firewall-cmd --remove-service=http --permanent

临时添加可省略 --permanent,重启后失效。

磁盘与文件系统管理

查看磁盘

lsblk                    # 列出块设备
df -h                    # 查看挂载与使用量
fdisk -l                 # 查看分区表

添加新磁盘并挂载

  1. 使用 fdisk /dev/sdb 创建分区。
  2. 格式化:mkfs.xfs /dev/sdb1
  3. 创建挂载点:mkdir /data
  4. 临时挂载:mount /dev/sdb1 /data
  5. 永久挂载:编辑 /etc/fstab,添加:
/dev/sdb1  /data  xfs  defaults  0 0
  1. 验证:mount -a

LVM 逻辑卷管理(选学)

LVM 提供了灵活的磁盘扩展能力。

pvcreate /dev/sdb1           # 创建物理卷
vgcreate vg_data /dev/sdb1   # 创建卷组
lvcreate -L 10G -n lv_data vg_data   # 创建逻辑卷
mkfs.xfs /dev/vg_data/lv_data
mount /dev/vg_data/lv_data /data

扩容逻辑卷:

lvextend -L +5G /dev/vg_data/lv_data
xfs_growfs /data

系统监控与性能调优

常用监控命令

top                               # 实时进程监控
htop                              # 更友好的 top(需安装)
free -h                           # 内存使用
iostat -x 1                       # 磁盘 I/O 统计(sysstat 包)
vmstat 1                          # 虚拟内存统计
sar -u 1 10                       # CPU 历史负载

常用调优

  • 调整内核参数:编辑 /etc/sysctl.conf,例如:
net.core.somaxconn = 1024
vm.swappiness = 10

应用:sysctl -p

  • 文件描述符限制:/etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535

安全加固基础

SELinux

CentOS 默认启用 SELinux,增强安全性但不熟悉时可先临时关闭(不推荐生产环境直接禁用)。

getenforce                       # 查看状态
setenforce 0                     # 临时设为宽容模式
# 永久禁用需修改配置文件 /etc/selinux/config 并重启

SSH 安全

编辑 /etc/ssh/sshd_config

Port 2222                     # 修改默认端口
PermitRootLogin no            # 禁止 root 登录
PasswordAuthentication no     # 仅允许密钥登录(配置密钥后使用)

重启 SSH 服务:systemctl restart sshd

自动更新

yum install -y yum-cron
systemctl enable yum-cron --now

配置文件 /etc/yum/yum-cron.conf 可设置仅下载或自动安装。

定时任务

使用 crontab 管理计划任务。

crontab -l                     # 查看当前用户任务
crontab -e                     # 编辑

格式:分 时 日 月 周 命令

# 每天凌晨 2 点备份 /data
0 2 * * * /usr/local/bin/backup.sh

任务日志在 /var/log/cron

故障排查思路

  1. 查看系统负载:uptimetop
  2. 检查磁盘空间:df -hdu -sh /*
  3. 分析日志:journalctl -xetail -f /var/log/messages
  4. 网络连通性:pingtraceroutess -tunlp
  5. 服务状态:systemctl status <service>

结语

通过本教程,你已掌握 CentOS 系统管理的基础到进阶知识。CentOS 作为 RHEL 的免费替代,拥有广泛的社区支持和丰富的文档资源。持续实践和查阅官方文档将帮助你成为专业的 Linux 运维工程师。