CentOS系统实战指南:从入门到进阶的学习教程
2025.09.17 11:11浏览量:0简介:本文为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 <<EOF
BOOTPROTO=static
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
ONBOOT=yes
EOF
systemctl restart network
1.3 基础环境标准化
创建标准化用户环境:
# 添加sudo权限用户
useradd -m admin && passwd admin
echo "admin ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/admin
# 配置SSH安全
sed -i 's/^#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
sed -i 's/^#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
systemctl restart sshd
二、核心服务管理实战
2.1 Web服务部署(Nginx+PHP)
# 安装Nginx与PHP
dnf install -y nginx php php-fpm
# 配置PHP-FPM
sed -i 's/^user = apache/user = nginx/' /etc/php-fpm.d/www.conf
sed -i 's/^group = apache/group = nginx/' /etc/php-fpm.d/www.conf
systemctl 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.rpm
dnf install -y mysql-community-server
# 主从复制配置
# 主库配置
cat >> /etc/my.cnf <<EOF
[mysqld]
server-id=1
log-bin=mysql-bin
binlog-format=ROW
EOF
systemctl start mysqld
# 获取临时密码并修改
grep 'temporary password' /var/log/mysqld.log
mysql_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部署容器化监控:
```bash
podman run -d --name prometheus -p 9090:9090 \
-v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \
prom/prometheus
三、安全加固深度实践
3.1 防火墙高级配置
# 启用firewalld并配置规则
systemctl enable --now firewalld
firewall-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_changes
EOF
systemctl restart auditd
# 日志轮转配置
cat > /etc/logrotate.d/nginx <<EOF
/var/log/nginx/*.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
create 0640 nginx adm
sharedscripts
postrotate
[ -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/bash
dnf update -y --security
if dnf updateinfo list --security | grep -q "CVE"; then
echo "Security updates applied" | mail -s "System Update Report" admin@example.com
fi
EOF
chmod +x /usr/local/bin/update-system.sh
echo "0 3 * * 1 /usr/local/bin/update-system.sh" | crontab -
四、性能调优方法论
4.1 内核参数优化
# 配置sysctl参数
cat > /etc/sysctl.d/99-network.conf <<EOF
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_tw_reuse = 1
net.core.somaxconn = 4096
vm.swappiness = 10
EOF
sysctl -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 Exporter
podman 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 <<EOF
apiVersion: 1
datasources:
- name: Prometheus
type: prometheus
url: http://localhost:9090
access: proxy
isDefault: true
EOF
五、进阶技能拓展
5.1 容器化技术集成
# 安装Podman并运行容器
dnf install -y podman
podman run -d --name web -p 8080:80 docker.io/library/nginx:alpine
# 构建自定义镜像
cat > Dockerfile <<EOF
FROM alpine:latest
RUN apk add --no-cache nginx
COPY index.html /var/www/html/
CMD ["nginx", "-g", "daemon off;"]
EOF
podman build -t my-nginx .
5.2 自动化编排(Kubernetes基础)
# 安装Minikube
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
install minikube-linux-amd64 /usr/local/bin/minikube
minikube start --driver=podman
# 部署测试应用
kubectl create deployment nginx --image=nginx:alpine
kubectl expose deployment nginx --port=80 --type=NodePort
5.3 灾备方案设计
实施全量+增量备份策略:
# 使用rsync进行增量备份
cat > /usr/local/bin/backup.sh <<'EOF'
#!/bin/bash
TARGET_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/latest
find /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"
end
config.vm.provision "shell", path: "bootstrap.sh"
end
- 社区支持:CentOS官方论坛、Stack Overflow的Linux标签
本教程通过系统性知识框架与可复用的配置模板,帮助读者构建从基础运维到高级架构设计的完整能力体系。建议结合实际业务场景进行模块化学习,每个章节完成后通过systemctl status
、journalctl -xe
等命令验证配置效果,逐步积累企业级Linux系统管理经验。
发表评论
登录后可评论,请前往 登录 或 注册