logo

CentOS学习教程:从入门到精通的系统指南

作者:蛮不讲李2025.09.17 11:11浏览量:2

简介:本文为开发者及系统管理员提供完整的CentOS学习路径,涵盖基础操作、服务配置、安全优化及故障排查等核心模块。通过理论解析与实战案例结合,帮助读者快速掌握CentOS系统管理的核心技能。

CentOS学习教程:从入门到精通的系统指南

一、CentOS基础与环境搭建

1.1 CentOS版本选择与特性对比

CentOS作为RHEL(Red Hat Enterprise Linux)的开源衍生版,以其稳定性、安全性和企业级支持著称。当前主流版本包括CentOS 7(长期支持版,2024年6月30日停止维护)和CentOS Stream(滚动更新版,与RHEL同步开发)。

  • CentOS 7:适合传统企业环境,兼容性优秀,适合生产环境部署。
  • CentOS Stream:适合开发者测试最新功能,但需注意滚动更新可能带来的兼容性问题。
    建议:生产环境优先选择CentOS 7,开发测试环境可尝试CentOS Stream。

1.2 安装与初始化配置

1.2.1 最小化安装与基础包管理

通过yumdnf(CentOS 8+)进行包管理,推荐使用最小化安装以减少攻击面。

  1. # 安装常用工具包
  2. yum install -y vim wget curl net-tools

1.2.2 网络配置

静态IP配置示例(/etc/sysconfig/network-scripts/ifcfg-ens33):

  1. TYPE=Ethernet
  2. BOOTPROTO=static
  3. NAME=ens33
  4. DEVICE=ens33
  5. ONBOOT=yes
  6. IPADDR=192.168.1.100
  7. NETMASK=255.255.255.0
  8. GATEWAY=192.168.1.1
  9. DNS1=8.8.8.8

重启网络服务:

  1. systemctl restart network

二、系统管理与服务配置

2.1 用户与权限管理

2.1.1 创建普通用户并加入sudo组

  1. useradd -m adminuser
  2. passwd adminuser # 设置密码
  3. usermod -aG wheel adminuser # CentOS 7
  4. # 或 usermod -aG wheel adminuser # CentOS 8+

2.1.2 SSH密钥认证配置

生成密钥对并上传至服务器:

  1. ssh-keygen -t rsa
  2. ssh-copy-id adminuser@服务器IP

修改/etc/ssh/sshd_config禁用密码认证:

  1. PasswordAuthentication no
  2. ChallengeResponseAuthentication no

2.2 服务管理工具

2.2.1 Systemd基础操作

  1. systemctl start nginx # 启动服务
  2. systemctl enable nginx # 开机自启
  3. systemctl status nginx # 查看状态
  4. journalctl -u nginx -f # 实时日志

2.2.2 定时任务(Cron)

编辑用户cron表:

  1. crontab -e

示例:每天凌晨3点备份/var/www目录:

  1. 0 3 * * * tar -czf /backup/www_$(date +\%Y\%m\%d).tar.gz /var/www

三、企业级应用部署

3.1 Web服务部署(Nginx + PHP)

3.1.1 安装与配置

  1. yum install -y nginx php php-fpm

修改Nginx配置(/etc/nginx/conf.d/default.conf):

  1. server {
  2. listen 80;
  3. root /var/www/html;
  4. index index.php;
  5. location ~ \.php$ {
  6. fastcgi_pass 127.0.0.1:9000;
  7. include fastcgi_params;
  8. fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  9. }
  10. }

启动服务:

  1. systemctl start nginx php-fpm

3.2 数据库管理(MySQL/MariaDB)

3.2.1 安装与安全配置

  1. yum install -y mariadb-server
  2. systemctl start mariadb
  3. mysql_secure_installation # 设置root密码、移除匿名用户等

3.2.2 远程访问配置

登录MySQL后执行:

  1. CREATE USER 'remoteuser'@'%' IDENTIFIED BY '密码';
  2. GRANT ALL PRIVILEGES ON *.* TO 'remoteuser'@'%';
  3. FLUSH PRIVILEGES;

修改/etc/my.cnf绑定所有IP:

  1. [mysqld]
  2. bind-address = 0.0.0.0

四、安全加固与性能优化

4.1 安全防护措施

4.1.1 防火墙配置(Firewalld)

  1. firewall-cmd --permanent --add-service=http # 允许HTTP
  2. firewall-cmd --permanent --add-port=8080/tcp # 允许自定义端口
  3. firewall-cmd --reload

4.1.2 失败登录限制(Fail2Ban)

安装并配置/etc/fail2ban/jail.local

  1. [sshd]
  2. enabled = true
  3. maxretry = 3
  4. bantime = 86400

4.2 性能调优

4.2.1 内核参数优化(/etc/sysctl.conf

  1. net.ipv4.tcp_syncookies = 1
  2. net.core.somaxconn = 4096
  3. vm.swappiness = 10

应用配置:

  1. sysctl -p

4.2.2 磁盘I/O优化

使用deadline调度器(适用于SSD):

  1. echo deadline > /sys/block/sdX/queue/scheduler

五、故障排查与日志分析

5.1 常见问题处理

5.1.1 服务启动失败

检查日志:

  1. journalctl -xe # 系统日志
  2. /var/log/messages # 系统消息
  3. /var/log/nginx/error.log # Nginx错误日志

5.1.2 网络连通性问题

使用mtr诊断网络延迟:

  1. yum install -y mtr
  2. mtr 8.8.8.8

5.2 日志集中管理(ELK Stack)

5.2.1 Filebeat配置示例

/etc/filebeat/filebeat.yml

  1. filebeat.inputs:
  2. - type: log
  3. paths:
  4. - /var/log/nginx/*.log
  5. output.elasticsearch:
  6. hosts: ["elasticsearch:9200"]

六、进阶学习资源

  1. 官方文档
  2. 书籍推荐
    • 《CentOS系统管理与运维实战》
    • 《Linux系统管理技术手册》
  3. 社区支持

总结

本教程从环境搭建到企业级应用部署,系统覆盖了CentOS的核心知识点。通过实践建议(如最小化安装、SSH密钥认证、防火墙规则)和故障排查方法,帮助读者构建安全、高效的Linux服务器环境。建议结合官方文档持续学习,并参与社区讨论以解决实际问题。

相关文章推荐

发表评论