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 最小化安装与基础包管理
通过yum
或dnf
(CentOS 8+)进行包管理,推荐使用最小化安装以减少攻击面。
# 安装常用工具包
yum install -y vim wget curl net-tools
1.2.2 网络配置
静态IP配置示例(/etc/sysconfig/network-scripts/ifcfg-ens33
):
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
重启网络服务:
systemctl restart network
二、系统管理与服务配置
2.1 用户与权限管理
2.1.1 创建普通用户并加入sudo组
useradd -m adminuser
passwd adminuser # 设置密码
usermod -aG wheel adminuser # CentOS 7
# 或 usermod -aG wheel adminuser # CentOS 8+
2.1.2 SSH密钥认证配置
生成密钥对并上传至服务器:
ssh-keygen -t rsa
ssh-copy-id adminuser@服务器IP
修改/etc/ssh/sshd_config
禁用密码认证:
PasswordAuthentication no
ChallengeResponseAuthentication no
2.2 服务管理工具
2.2.1 Systemd基础操作
systemctl start nginx # 启动服务
systemctl enable nginx # 开机自启
systemctl status nginx # 查看状态
journalctl -u nginx -f # 实时日志
2.2.2 定时任务(Cron)
编辑用户cron表:
crontab -e
示例:每天凌晨3点备份/var/www
目录:
0 3 * * * tar -czf /backup/www_$(date +\%Y\%m\%d).tar.gz /var/www
三、企业级应用部署
3.1 Web服务部署(Nginx + PHP)
3.1.1 安装与配置
yum install -y nginx php php-fpm
修改Nginx配置(/etc/nginx/conf.d/default.conf
):
server {
listen 80;
root /var/www/html;
index index.php;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
启动服务:
systemctl start nginx php-fpm
3.2 数据库管理(MySQL/MariaDB)
3.2.1 安装与安全配置
yum install -y mariadb-server
systemctl start mariadb
mysql_secure_installation # 设置root密码、移除匿名用户等
3.2.2 远程访问配置
登录MySQL后执行:
CREATE USER 'remoteuser'@'%' IDENTIFIED BY '密码';
GRANT ALL PRIVILEGES ON *.* TO 'remoteuser'@'%';
FLUSH PRIVILEGES;
修改/etc/my.cnf
绑定所有IP:
[mysqld]
bind-address = 0.0.0.0
四、安全加固与性能优化
4.1 安全防护措施
4.1.1 防火墙配置(Firewalld)
firewall-cmd --permanent --add-service=http # 允许HTTP
firewall-cmd --permanent --add-port=8080/tcp # 允许自定义端口
firewall-cmd --reload
4.1.2 失败登录限制(Fail2Ban)
安装并配置/etc/fail2ban/jail.local
:
[sshd]
enabled = true
maxretry = 3
bantime = 86400
4.2 性能调优
4.2.1 内核参数优化(/etc/sysctl.conf
)
net.ipv4.tcp_syncookies = 1
net.core.somaxconn = 4096
vm.swappiness = 10
应用配置:
sysctl -p
4.2.2 磁盘I/O优化
使用deadline
调度器(适用于SSD):
echo deadline > /sys/block/sdX/queue/scheduler
五、故障排查与日志分析
5.1 常见问题处理
5.1.1 服务启动失败
检查日志:
journalctl -xe # 系统日志
/var/log/messages # 系统消息
/var/log/nginx/error.log # Nginx错误日志
5.1.2 网络连通性问题
使用mtr
诊断网络延迟:
yum install -y mtr
mtr 8.8.8.8
5.2 日志集中管理(ELK Stack)
5.2.1 Filebeat配置示例
/etc/filebeat/filebeat.yml
:
filebeat.inputs:
- type: log
paths:
- /var/log/nginx/*.log
output.elasticsearch:
hosts: ["elasticsearch:9200"]
六、进阶学习资源
总结
本教程从环境搭建到企业级应用部署,系统覆盖了CentOS的核心知识点。通过实践建议(如最小化安装、SSH密钥认证、防火墙规则)和故障排查方法,帮助读者构建安全、高效的Linux服务器环境。建议结合官方文档持续学习,并参与社区讨论以解决实际问题。
发表评论
登录后可评论,请前往 登录 或 注册