CentOS宝典
CentOS简介与版本选择
1. CentOS是什么?
CentOS(Community Enterprise Operating System)是一个基于Red Hat Enterprise Linux(RHEL)源代码的开源操作系统,由社区驱动维护,它继承了RHEL的稳定性和安全性,同时提供免费使用和自由修改的特性,广泛应用于企业级服务器、云计算平台和科学计算等领域。
2. 版本选择
CentOS目前主要有两大分支:CentOS Stream和CentOS Linux(已停止更新,但旧版本仍被广泛使用),对于初学者而言,推荐关注CentOS Stream,因为它代表了最新的技术和包更新,是RHEL未来的预览版,为了稳定性和兼容性考虑,本文也会涉及CentOS 7/8(已停止更新,但教程具有参考价值)的内容。
安装CentOS
1. 准备安装介质
下载ISO镜像:访问CentOS官网下载对应版本的ISO镜像文件。
制作启动盘:使用如Rufus(Windows)、Etcher(跨平台)等工具将ISO文件写入U盘或DVD。
2. 安装过程
启动安装:将制作好的启动盘插入电脑,重启并选择从该设备启动。
语言选择:选择你的语言,然后点击“继续”。
安装信息配置:
时间和日期:设置正确的时区。
键盘布局:根据你的键盘类型选择。
安装源:确认或修改安装源(如网络安装或本地介质)。
软件选择:初学者可选择“带GUI的服务器”或“最小安装”,根据需要自定义安装的软件包。
安装位置:选择磁盘并配置分区(建议使用LVM,便于管理)。
网络和主机名:配置网络连接和设置主机名。
开始安装:点击“开始安装”,安装过程中可设置root密码和创建新用户。
重启并登录:安装完成后,重启系统并使用设置的用户名和密码登录。
基础配置与优化
1. 更新系统
安装完成后,首先更新系统和所有已安装的包以获取最新的安全补丁和功能。
sudo yum update y # CentOS 7/8 sudo dnf update y # CentOS Stream
2. 配置防火墙
CentOS默认使用firewalld作为防火墙管理工具。
sudo systemctl start firewalld # 启动防火墙 sudo systemctl enable firewalld # 设置开机自启
开放端口示例:
sudo firewallcmd permanent zone=public addport=80/tcp # HTTP服务 sudo firewallcmd reload # 重载防火墙配置
3. 配置SELinux
SELinux(SecurityEnhanced Linux)提供额外的安全层,查看SELinux状态:
getenforce
临时关闭SELinux(不推荐长期关闭):
sudo setenforce 0
永久关闭SELinux:
sudo vi /etc/selinux/config # 修改配置文件中的参数
4. 系统监控与日志
查看系统日志:使用journalctl
(CentOS 7.x需安装systemdjournal包),dmesg
等命令。
安装监控工具:如htop、iftop、nmon等,便于实时监控系统资源使用情况。
网络配置与管理
1. 配置静态IP
编辑网络配置文件(以CentOS 7为例,CentOS 8及以后版本可能有所不同):
sudo vi /etc/sysconfig/networkscripts/ifcfgens192 # ens192为你的网络接口名
修改或添加以下内容:
BOOTPROTO=static ONBOOT=yes IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=8.8.8.8 DNS2=8.8.4.4
重启网络服务:
sudo systemctl restart network
2. 网络调试与诊断
ping命令:测试网络连接。
traceroute/tracepath:追踪数据包路由路径。
netstat/ss:查看网络连接、路由表、接口统计等信息。
服务管理
CentOS使用systemd作为初始化系统和系统服务管理器。
启动服务:sudo systemctl start <服务名>
停止服务:sudo systemctl stop <服务名>
设置服务开机自启:sudo systemctl enable <服务名>
禁止服务开机自启:sudo systemctl disable <服务名>
查看服务状态:sudo systemctl status <服务名>
文件系统与权限管理
1. 文件系统结构
/
:根目录,所有文件和目录的起点。
/bin
:存放基本命令的二进制文件。
/etc
:存放系统配置文件。
/home
:普通用户的家目录。
/var
:存放经常变化的文件,如日志文件。
2. 文件权限与所有权
查看权限:使用ls l
命令。
修改权限:使用chmod
命令。
修改所有权:使用chown
命令。
软件包管理
YUM/DNF
搜索软件包:
sudo yum search <关键字> # CentOS 7 sudo dnf search <关键字> # CentOS Stream/8
安装软件包:
sudo yum install <包名> # CentOS 7 sudo dnf install <包名> # CentOS Stream/8
更新软件包:
sudo yum update <包名> # CentOS 7 sudo dnf update <包名> # CentOS Stream/8
卸载软件包:
sudo yum remove <包名> # CentOS 7 sudo dnf remove <包名> # CentOS Stream/8
用户与组管理
创建用户:sudo useradd <用户名>
,然后使用sudo passwd <用户名>
设置密码。
创建组:sudo groupadd <组名>
。
添加用户到组:sudo usermod aG <组名> <用户名>
。
安全加固
多台Tomcat服务器搭建:为了满足业务需求,可以在同一台CentOS服务器上搭建多个Tomcat服务器,具体步骤包括下载Tomcat压缩包、解压、配置环境变量、部署应用等。
Web服务器搭建:常用的Web服务器有Apache和Nginx,以Apache为例,可以通过安装httpd包来搭建Web服务器,并通过配置文件设置虚拟主机、SSL证书等。
数据库服务器搭建:MySQL是一种流行的关系型数据库管理系统,可以在CentOS上通过YUM/DNF安装MySQL服务器,并进行相应的配置和管理。
DNS服务器搭建:Bind是一款开源的DNS服务器软件,可以在CentOS上搭建DNS服务器,用于域名解析和转发。
LDAP地址簿服务器搭建:OpenLDAP是一款实现LDAP协议的开源软件,可以在CentOS上搭建LDAP服务器,用于集中管理和认证用户信息。
DHCP启动服务器搭建:DHCP(Dynamic Host Configuration Protocol)是一种动态分配IP地址的协议,可以在CentOS上搭建DHCP服务器,为局域网内的设备自动分配IP地址和其他网络参数。
MySQL数据库服务器设置:MySQL是一种流行的关系型数据库管理系统,可以在CentOS上通过YUM/DNF安装MySQL服务器,并进行相应的配置和管理。