CentOS 服务器部署与管理的核心要点,在于保障系统稳定性、规范服务管理以及强化安全防护。通常可以按照四个步骤来完成:第一步是选择合适的版本,CentOS 7更适合追求稳定的生产环境,而 CentOS Stream 9 更适合开发与测试场景;第二步是进行最小化安装,并合理规划磁盘分区。第三步是完成初始化配置,包括更新系统、安装常用工具、配置国内软件源、设置时区和主机名。第四步则是做好用户与 SSH 安全加固,禁用 root 远程登录,创建专用运维账户,配置 sudo 权限,并按需修改 SSH 端口。最后,建议统一通过 firewalld 和 systemd 来管理服务与端口,提高后期维护效率。

CentOS 服务器系统部署与管理,关键在于“稳定系统、规范服务、加强安全”。这并不是一次性完成的简单配置,而是从系统安装开始,逐步搭建一个可运行、可管理、可维护的服务器环境。下面从四个关键环节详细说明 CentOS 服务器部署怎么做、为什么要这样做,以及实际操作中哪些细节最容易出问题。
选对版本并完成最小化安装
CentOS 7(支持周期已延长至 2024 年 6 月)在很多生产环境中依然是相对稳妥的选择;而 CentOS Stream 9 更适合开发测试或持续迭代场景,不过需要注意,滚动更新机制可能会带来一定兼容性风险。无论最终选用哪个版本,都建议使用 Minimal ISO 最小化镜像安装——它体积更小、默认软件更少,可以有效减少攻击面,同时避免部署大量不必要的系统服务。
- 安装时建议手动分区:/(根分区)最好预留 50GB 以上(XFS 格式),/boot 保留 1GB,swap 建议设置为内存的 1–1.5 倍
- 网络配置选择“自动连接”,并勾选“系统启动时自动激活”,否则安装完成后可能无法联网
- 创建普通账户(如
admin),同时设置 root 密码——root 不建议日常使用,但必须保留且设置强密码
初始化配置:让系统真正可用
系统安装完成后不要立即上线,必须先做好基础初始化配置。如果这一步处理不到位,后续很容易出现服务无法启动、日志无法排查、网络连接异常等问题。
- 更新系统:
yum update -y(CentOS 7)或dnf upgrade -y(Stream 9) - 安装基础工具:
yum install -y vim wget curl net-tools epel-release - 配置国内镜像源(如阿里云):替换
/etc/yum.repos.d/CentOS-Base.repo,再执行yum makecache - 设置时区:
timedatectl set-timezone Asia/Shanghai - 修改主机名:
hostnamectl set-hostname srv-web01(不要使用下划线,部分 DNS 场景可能不兼容)
用户与远程访问必须加固
默认使用 root 账户加密码直接远程登录,是很多服务器被入侵的常见入口之一。所有 CentOS 服务器在正式上线前,都应完成 SSH 安全加固,尽量关闭高风险默认配置。
- 创建运维用户:
useradd -m -s /bin/bash webop,然后执行passwd webop设置密码 - 赋予 sudo 权限:
usermod -aG wheel webop(CentOS 7)或usermod -aG wheel webop(Stream 9) - 禁用 root 远程登录:编辑
/etc/ssh/sshd_config,确认包含以下两行:PermitRootLogin noPasswordAuthentication no - 修改 SSH 端口(可选但建议执行):将
Port 22改为Port 2222,并同步放行对应的防火墙端口 - 重启 SSH 服务使配置生效:
systemctl restart sshd
服务管理与防火墙:只开放必要端口,只运行必要服务
CentOS 默认使用 firewalld 和 systemd 管理防火墙与系统服务,建议直接使用这套官方方式,不要绕过它们去手动改 iptables 或依赖 rc.local——不仅维护成本更高,也更容易引发配置冲突。
- 启用防火墙:
systemctl enable --now firewalld - 仅开放必要端口:
firewall-cmd --permanent --add-service={http,https,ssh},然后执行--reload - 统一使用 systemctl 管理服务:
systemctl start nginx、systemctl enable httpd、systemctl status mariadb - 通过日志查看服务状态:
journalctl -u nginx -n 20(查看最近 20 行),journalctl -u nginx -f(实时跟踪日志) - 检查监听端口:
ss -tuln | grep :80,相较 netstat 更快也更准确
