前言

CentOS 7 作为企业级 Linux 服务器的主流发行版,凭借稳定、兼容、开源的特性,长期占据云计算、Web 服务、数据库运维的核心地位。相较于 CentOS 6,CentOS 7 最大的变革是采用systemd替代传统 SysVinit,搭配 firewalld 防火墙、nmcli 网络管理、YUM/DNF 包管理等全新工具,系统管理范式全面升级。

本文从初始化配置、用户权限、服务管理、磁盘存储、网络配置、安全加固、性能调优、日志监控八大维度,整理 CentOS 7 系统管理核心知识点与实战命令,兼顾零基础入门与企业级运维需求,内容严谨、可直接落地生产环境。

一、系统初始化:新装 CentOS 7 必做配置

新装系统后,优先完成基础配置,为后续运维奠定稳定基础。

1.1 主机名与时区配置

bash

运行

# 永久修改主机名
hostnamectl set-hostname centos7-server
# 查看主机名状态
hostnamectl status

# 同步时区(上海)
timedatectl set-timezone Asia/Shanghai
# 开启NTP时间同步
timedatectl set-ntp true
# 查看时间状态
timedatectl

1.2 YUM 源优化(国内镜像加速)

默认官方源速度较慢,替换为阿里云 / 网易镜像:

bash

运行

# 备份原有源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
# 下载阿里云CentOS 7源
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
# 安装EPEL扩展源(必备第三方软件源)
yum install -y epel-release
# 清空并更新缓存
yum clean all && yum makecache

1.3 关闭不必要服务(最小化安装优化)

bash

运行

# 关闭NetworkManager(可选,服务器推荐静态网络)
systemctl stop NetworkManager && systemctl disable NetworkManager
# 关闭防火墙(生产环境按需开启,调试阶段可临时关闭)
systemctl stop firewalld && systemctl disable firewalld
# 临时关闭SELinux(生产环境建议配置规则,而非永久关闭)
setenforce 0
# 永久关闭SELinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

二、用户与权限管理:最小权限原则

Linux 系统安全的核心是用户权限隔离,严格遵循 “非必要不使用 root”。

2.1 用户 / 组管理核心命令

bash

运行

# 创建用户(指定家目录、shell)
useradd -m -d /home/dev -s /bin/bash dev
# 设置密码
passwd dev
# 删除用户(保留家目录)
userdel dev
# 删除用户并清理家目录
userdel -r dev

# 创建用户组
groupadd devgroup
# 将用户加入组
usermod -aG devgroup dev
# 查看用户所属组
id dev

2.2 sudo 权限配置(普通用户提权)

避免直接使用 root,配置 sudo 允许普通用户执行管理员命令:

bash

运行

# 编辑sudo配置文件(推荐visudo,语法检查)
visudo
# 添加配置(dev用户拥有所有权限,无需密码)
dev ALL=(ALL) NOPASSWD: ALL

2.3 密码安全策略

bash

运行

# 编辑密码策略文件
vi /etc/login.defs
# 配置密码有效期(天)
PASS_MAX_DAYS 90
# 密码最小长度
PASS_MIN_LEN 8
# 过期前7天提醒
PASS_WARN_AGE 7

三、systemd 服务管理:CentOS 7 核心变革

CentOS 7 全面采用systemd管理系统服务,替代 service、chkconfig 命令,并行启动、依赖管理、日志整合是核心优势。

3.1 服务管理核心命令

bash

运行

# 启动/停止/重启服务
systemctl start nginx
systemctl stop nginx
systemctl restart nginx

# 设置开机自启/禁用
systemctl enable nginx
systemctl disable nginx

# 查看服务状态
systemctl status nginx
# 查看所有已启动服务
systemctl list-units --type=service
# 查看开机自启服务
systemctl list-unit-files --type=service | grep enabled

3.2 运行级别(target)切换

CentOS 7 用 target 替代传统 runlevel,常用两种模式:

  • 多用户命令行:multi-user.target(服务器默认)
  • 图形界面:graphical.target

bash

运行

# 查看当前运行级别
systemctl get-default
# 设置默认命令行模式
systemctl set-default multi-user.target
# 临时切换图形界面
systemctl isolate graphical.target

3.3 自定义 systemd 服务

以自定义 Java 应用服务为例,创建/etc/systemd/system/app.service

ini

[Unit]
Description=Java Application
After=network.target

[Service]
User=dev
WorkingDirectory=/opt/app
ExecStart=/usr/bin/java -jar app.jar
Restart=always

[Install]
WantedBy=multi-user.target

bash

运行

# 重载服务配置
systemctl daemon-reload
# 启动自定义服务
systemctl start app

四、磁盘与文件系统管理:存储运维核心

服务器磁盘管理直接影响数据安全与性能,重点掌握分区、格式化、挂载、LVM

4.1 磁盘分区(fdisk)

bash

运行

# 查看磁盘列表
fdisk -l
# 分区/dev/sdb
fdisk /dev/sdb
# 按n新建分区→p主分区→1→回车默认起止扇区→w保存

4.2 格式化与挂载

bash

运行

# 格式化为ext4文件系统
mkfs.ext4 /dev/sdb1
# 创建挂载点
mkdir /data
# 临时挂载
mount /dev/sdb1 /data
# 永久挂载(写入fstab,重启生效)
echo "/dev/sdb1 /data ext4 defaults 0 0" >> /etc/fstab
# 验证fstab配置(避免配置错误无法开机)
mount -a

4.3 LVM 逻辑卷管理(弹性扩容必备)

LVM 支持在线扩容、快照、数据迁移,企业级服务器首选:

bash

运行

# 1. 创建物理卷PV
pvcreate /dev/sdb1
# 2. 创建卷组VG
vgcreate vg_data /dev/sdb1
# 3. 创建逻辑卷LV(分配20G)
lvcreate -L 20G -n lv_data vg_data
# 4. 格式化并挂载
mkfs.ext4 /dev/vg_data/lv_data
mount /dev/vg_data/lv_data /data
# 5. 在线扩容(新增10G)
lvextend -L +10G /dev/vg_data/lv_data
# 同步文件系统大小
resize2fs /dev/vg_data/lv_data

五、网络配置:静态 IP 与防火墙

CentOS 7 默认使用NetworkManager+nmcli管理网络,支持图形 / 命令行配置。

5.1 静态 IP 配置(网卡文件修改)

编辑网卡配置文件(以 ens33 为例):vi /etc/sysconfig/network-scripts/ifcfg-ens33

ini

TYPE=Ethernet
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=223.5.5.5
DNS2=114.114.114.114

bash

运行

# 重启网络服务
systemctl restart network
# 查看IP
ip addr

5.2 firewalld 防火墙配置

CentOS 7 默认防火墙为firewalld,替代 iptables:

bash

运行

# 启动并开机自启
systemctl start firewalld && systemctl enable firewalld

# 开放80端口(永久)
firewall-cmd --permanent --add-port=80/tcp
# 开放http服务
firewall-cmd --permanent --add-service=http
# 移除端口
firewall-cmd --permanent --remove-port=80/tcp
# 重载规则
firewall-cmd --reload
# 查看所有规则
firewall-cmd --list-all

六、安全加固:生产环境必备

服务器上线前必须完成安全加固,防范暴力破解、权限溢出、端口暴露等风险。

6.1 SSH 安全优化

bash

运行

vi /etc/ssh/sshd_config
# 禁止root远程登录(核心)
PermitRootLogin no
# 禁用密码登录(仅密钥,可选)
PasswordAuthentication no
# 限制登录用户
AllowUsers dev
# 重启SSH
systemctl restart sshd

6.2 系统安全基础配置

  1. 禁用不必要的系统用户与组
  2. 开启日志审计(auditd 服务)
  3. 定期更新系统补丁:yum update -y
  4. 安装 fail2ban 防范 SSH 暴力破解

bash

运行

yum install -y fail2ban
systemctl start fail2ban && systemctl enable fail2ban

七、性能调优:提升服务器效率

CentOS 7 默认配置偏向通用,针对业务场景调优可显著提升性能。

7.1 内核参数优化(sysctl)

编辑/etc/sysctl.conf,优化网络、内存、文件句柄:

ini

# 最大文件句柄数
fs.file-max = 65535
# 开启TCP SYN Cookie,防范DDoS
net.ipv4.tcp_syncookies = 1
# 优化内存交换(减少swap使用)
vm.swappiness = 10
# 优化TCP连接队列
net.core.somaxconn = 65535

bash

运行

# 生效配置
sysctl -p

7.2 系统资源监控

bash

运行

# 实时监控系统资源(top)
top
# 进程监控(htop,需安装)
yum install -y htop && htop
# 磁盘IO监控
iotop
# 网络流量监控
iftop

八、日志管理:故障排查核心

CentOS 7 用journald整合系统日志,替代传统 rsyslog(可兼容)。

8.1 journalctl 日志查看

bash

运行

# 查看所有日志
journalctl
# 查看内核日志
journalctl -k
# 查看指定服务日志
journalctl -u nginx
# 实时刷新日志
journalctl -f
# 查看最近100条日志
journalctl -n 100

8.2 传统日志文件(rsyslog)

bash

运行

# 系统日志
/var/log/messages
# 安全日志
/var/log/secure
# 启动日志
/var/log/dmesg

九、企业级运维最佳实践

  1. 最小化安装:仅安装必要组件,减少攻击面
  2. 权限最小化:普通用户 + sudo,禁止 root 直接登录
  3. 数据备份:关键配置、数据库定期备份,LVM 快照辅助
  4. 监控告警:部署 Zabbix/Prometheus,实时监控系统状态
  5. 标准化配置:使用 Ansible 自动化部署,统一环境配置
  6. 定期更新:每月更新安全补丁,避免漏洞风险

结语

CentOS 7 系统管理是 Linux 运维的核心技能,从基础命令到企业级实践,核心在于理解原理、规范操作、安全优先。本文覆盖生产环境 90% 以上常用场景,命令可直接复制使用,适合运维新手入门、资深工程师复盘。

尽管 CentOS 7 已停止官方维护,但存量服务器仍广泛使用,掌握其系统管理,是进阶 RHEL 8/9、Rocky Linux、AlmaLinux 的基础。持续实践、总结故障、优化流程,才能成为合格的 Linux 系统管理员。

更多推荐