CentOS系统实战指南:从入门到进阶的学习教程
2025.09.17 11:11浏览量:6简介:本文为CentOS系统学习者提供系统性指导,涵盖基础操作、服务管理、安全加固及性能优化等核心模块,通过理论解析与实战案例帮助读者快速掌握企业级Linux运维技能。
一、CentOS系统基础与安装配置
1.1 CentOS版本选择与特性对比
CentOS作为RHEL的开源衍生版,分为CentOS Stream(滚动更新)和CentOS Linux(传统版本)。当前推荐使用CentOS Stream 9(基于RHEL 9源码),其优势在于持续获取最新功能更新,适合开发测试环境。传统企业环境仍可选择CentOS 7(最终支持至2024年6月),但需注意其已停止官方更新。
1.2 最小化安装与配置优化
通过anaconda安装界面选择”Minimal Install”可减少不必要的软件包。安装后需立即执行:
# 更新系统并安装基础工具dnf update -y && dnf install -y epel-release vim wget curl net-tools# 配置网络(以静态IP为例)cat > /etc/sysconfig/network-scripts/ifcfg-ens192 <<EOFBOOTPROTO=staticIPADDR=192.168.1.100NETMASK=255.255.255.0GATEWAY=192.168.1.1DNS1=8.8.8.8ONBOOT=yesEOFsystemctl restart network
1.3 基础环境标准化
创建标准化用户环境:
# 添加sudo权限用户useradd -m admin && passwd adminecho "admin ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/admin# 配置SSH安全sed -i 's/^#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_configsed -i 's/^#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_configsystemctl restart sshd
二、核心服务管理实战
2.1 Web服务部署(Nginx+PHP)
# 安装Nginx与PHPdnf install -y nginx php php-fpm# 配置PHP-FPMsed -i 's/^user = apache/user = nginx/' /etc/php-fpm.d/www.confsed -i 's/^group = apache/group = nginx/' /etc/php-fpm.d/www.confsystemctl enable --now php-fpm nginx# 测试页面echo "<?php phpinfo(); ?>" > /usr/share/nginx/html/info.php
2.2 数据库集群搭建(MySQL 8.0)
# 添加MySQL仓库并安装dnf install -y https://dev.mysql.com/get/mysql80-community-release-el9-3.noarch.rpmdnf install -y mysql-community-server# 主从复制配置# 主库配置cat >> /etc/my.cnf <<EOF[mysqld]server-id=1log-bin=mysql-binbinlog-format=ROWEOFsystemctl start mysqld# 获取临时密码并修改grep 'temporary password' /var/log/mysqld.logmysql_secure_installation
2.3 自动化运维工具链
- Ansible:通过
dnf install -y ansible-core安装后,创建inventory文件:
```ini
[webservers]
192.168.1.101
192.168.1.102
[webservers:vars]
ansible_user=admin
ansible_ssh_private_key_file=~/.ssh/id_rsa
- **Prometheus监控**:使用Podman部署容器化监控:```bashpodman run -d --name prometheus -p 9090:9090 \-v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \prom/prometheus
三、安全加固深度实践
3.1 防火墙高级配置
# 启用firewalld并配置规则systemctl enable --now firewalldfirewall-cmd --permanent --add-service={http,https,ssh}firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="3306" accept'firewall-cmd --reload
3.2 审计与日志管理
配置auditd监控关键文件:
# 添加监控规则cat > /etc/audit/rules.d/sshd.rules <<EOF-w /etc/ssh/sshd_config -p wa -k sshd_config-w /etc/passwd -p wa -k passwd_changesEOFsystemctl restart auditd# 日志轮转配置cat > /etc/logrotate.d/nginx <<EOF/var/log/nginx/*.log {dailymissingokrotate 14compressdelaycompressnotifemptycreate 0640 nginx admsharedscriptspostrotate[ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`endscript}EOF
3.3 漏洞修复流程
建立月度更新机制:
# 创建更新脚本cat > /usr/local/bin/update-system.sh <<'EOF'#!/bin/bashdnf update -y --securityif dnf updateinfo list --security | grep -q "CVE"; thenecho "Security updates applied" | mail -s "System Update Report" admin@example.comfiEOFchmod +x /usr/local/bin/update-system.shecho "0 3 * * 1 /usr/local/bin/update-system.sh" | crontab -
四、性能调优方法论
4.1 内核参数优化
# 配置sysctl参数cat > /etc/sysctl.d/99-network.conf <<EOFnet.ipv4.tcp_fin_timeout = 30net.ipv4.tcp_tw_reuse = 1net.core.somaxconn = 4096vm.swappiness = 10EOFsysctl -p /etc/sysctl.d/99-network.conf
4.2 存储性能优化
- XFS文件系统调优:
```bash创建LVM卷并格式化
pvcreate /dev/sdb
vgcreate vg00 /dev/sdb
lvcreate -l 100%FREE -n lv_data vg00
mkfs.xfs -n ftype=1 /dev/vg00/lv_data
挂载时启用性能选项
mount -o noatime,nobarrier /dev/vg00/lv_data /data
#### 4.3 监控告警体系部署Node Exporter+Grafana监控:```bash# 安装Node Exporterpodman run -d --name node-exporter -p 9100:9100 \-v "/:/host:ro,rslave" \prom/node-exporter --path.rootfs=/host# Grafana配置(需单独安装)cat > /etc/grafana/provisioning/datasources/prometheus.yaml <<EOFapiVersion: 1datasources:- name: Prometheustype: prometheusurl: http://localhost:9090access: proxyisDefault: trueEOF
五、进阶技能拓展
5.1 容器化技术集成
# 安装Podman并运行容器dnf install -y podmanpodman run -d --name web -p 8080:80 docker.io/library/nginx:alpine# 构建自定义镜像cat > Dockerfile <<EOFFROM alpine:latestRUN apk add --no-cache nginxCOPY index.html /var/www/html/CMD ["nginx", "-g", "daemon off;"]EOFpodman build -t my-nginx .
5.2 自动化编排(Kubernetes基础)
# 安装Minikubecurl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64install minikube-linux-amd64 /usr/local/bin/minikubeminikube start --driver=podman# 部署测试应用kubectl create deployment nginx --image=nginx:alpinekubectl expose deployment nginx --port=80 --type=NodePort
5.3 灾备方案设计
实施全量+增量备份策略:
# 使用rsync进行增量备份cat > /usr/local/bin/backup.sh <<'EOF'#!/bin/bashTARGET_DIR="/backup/$(date +%Y%m%d)"mkdir -p "$TARGET_DIR"rsync -avz --delete --link-dest=/backup/latest /etc /home /var/www "$TARGET_DIR"ln -sfn "$TARGET_DIR" /backup/latestfind /backup -maxdepth 1 -type d -mtime +30 -exec rm -rf {} \;EOF
六、学习资源推荐
- 官方文档:Red Hat官方文档(需注意CentOS Stream与RHEL的差异)
- 实践平台:使用Vagrant创建多节点测试环境:
Vagrant.configure("2") do |config|config.vm.box = "generic/centos9s"config.vm.provider "virtualbox" do |vb|vb.memory = "2048"endconfig.vm.provision "shell", path: "bootstrap.sh"end
- 社区支持:CentOS官方论坛、Stack Overflow的Linux标签
本教程通过系统性知识框架与可复用的配置模板,帮助读者构建从基础运维到高级架构设计的完整能力体系。建议结合实际业务场景进行模块化学习,每个章节完成后通过systemctl status、journalctl -xe等命令验证配置效果,逐步积累企业级Linux系统管理经验。

发表评论
登录后可评论,请前往 登录 或 注册