CentOS 实战指南

FreeGuideOnline 最新 2026-07-15

bash

Linux 示例

sudo dd if=/path/to/CentOS-Stream-9.iso of=/dev/sdX bs=4M status=progress


3. **安装过程要点**  
- 启动后选择 `Install CentOS Stream 9`。
- **语言**:建议选择英语以避免终端的乱码问题,桌面环境可保留中文。
- **磁盘分区**:新手可选择“自动分区”,并勾选“我希望让其他磁盘空间可用”。生产环境建议手动分区,至少分 `/boot`(1GB)、`/`(剩余空间)、`swap`(内存 2 倍)。
- **软件选择**:最小化安装即可,稍后按需添加。
- **网络与主机名**:打开以太网开关,设置主机名(如 `server.local`)。
- **Root 密码**:务必设置强密码。
- 完成安装后重启。

### 基础系统配置

#### 网络配置与 SSH 服务

最小化安装后,首先需确认网络连通性并开启远程管理。

```bash
# 查看 IP 地址
ip addr show

# 若无 IP,则 DHCP 自动获取或手动配置
nmcli con modify ens160 ipv4.addresses 192.168.1.100/24
nmcli con modify ens160 ipv4.gateway 192.168.1.1
nmcli con modify ens160 ipv4.dns 8.8.8.8
nmcli con modify ens160 ipv4.method manual
nmcli con up ens160

# 启动 SSH 并设置开机自启
systemctl enable --now sshd

更新系统与常用软件

保持系统在最新状态:

dnf check-update
sudo dnf upgrade -y

安装基础工具集:

sudo dnf install -y vim bash-completion wget curl net-tools

创建普通用户与 sudo 权限

不建议直接使用 root 进行日常操作,创建新用户并加入 wheel 组:

useradd -m -G wheel john
passwd john

注销 root,重新以 john 身份登录后,可通过 sudo 执行管理任务。

防火墙与 SELinux 管理

CentOS 默认开启 firewalld 和 SELinux,这是重要的安全防线。

  • 防火墙

    # 查看状态
    sudo firewall-cmd --state
    
    # 开放服务(如 http)
    sudo firewall-cmd --permanent --add-service=http
    sudo firewall-cmd --reload
    
    # 开放自定义端口(如 8080/tcp)
    sudo firewall-cmd --permanent --add-port=8080/tcp
    sudo firewall-cmd --reload
    
  • SELinux: 安装 policycoreutils-python-utils 获得 semanage 工具。

    # 查看当前模式
    getenforce
    
    # 临时切换为 Permissive(调试用)
    sudo setenforce 0
    
    # 永久关闭(不推荐)需修改 /etc/selinux/config
    # SELINUX=disabled
    

    一般保持 Enforcing 并合理设置上下文。

软件包管理实战

DNF 基本用法

dnf 替代了旧版 yum,语法类似但更高效。

# 搜索软件
dnf search keyword

# 安装软件
sudo dnf install package_name

# 移除软件
sudo dnf remove package_name

# 查看已安装
dnf list installed

# 查看软件信息
dnf info package_name

使用 EPEL 与 Remi 第三方仓库

许多非官方软件需要额外仓库。

# 安装 EPEL (Extra Packages for Enterprise Linux)
sudo dnf install epel-release

# 对于需要最新 PHP 等情况,可启用 Remi 仓库
sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-9.rpm
sudo dnf module list php
sudo dnf module enable php:remi-8.2 -y
sudo dnf install php

文件与权限管理

常见目录结构

  • /home:普通用户主目录
  • /root:root 用户主目录
  • /etc:系统配置文件
  • /var:日志、数据库等可变数据
  • /tmp:临时文件,重启可能清空

权限与所有权命令

# 修改所有者
chown user:group file

# 修改权限(八进制)
chmod 755 script.sh

# 递归修改目录权限
chmod -R 640 /var/www/html

软硬链接

  • 硬链接:拥有相同 inode,不可跨文件系统,不能链接目录。
  • 符号链接(软链接):类似快捷方式,可跨文件系统。
ln source target      # 硬链接
ln -s source target   # 符号链接

用户与组管理

# 添加用户
useradd -m username

# 设置密码
passwd username

# 修改用户信息
usermod -aG wheel username   # 追加附加组
usermod -L username          # 锁定账户

# 删除用户
userdel -r username          # 同时删除主目录

# 组管理
groupadd devteam
gpasswd -a username devteam  # 将用户加入组

进程与服务管理

systemd 基本操作

CentOS 以 systemd 作为初始化系统,所有服务通过 systemctl 管理。

# 启动/停止/重启
sudo systemctl start nginx
sudo systemctl stop nginx
sudo systemctl restart nginx

# 查看状态
systemctl status nginx

# 设置开机启动
sudo systemctl enable nginx
sudo systemctl disable nginx

# 查看所有服务
systemctl list-unit-files --type=service

进程监控

ps aux                       # 查看所有进程
top                          # 实时动态查看
htop                         # 更友好的 top(需安装)

# 查看系统负载
uptime
w

磁盘与存储管理

查看磁盘使用

df -h        # 文件系统磁盘空间
du -sh /var  # 目录大小统计
lsblk        # 列出块设备

挂载新磁盘

  1. 查看新磁盘标识 lsblk,假设为 /dev/sdb
  2. 分区(可选 fdisk /dev/sdb 创建分区,比如 /dev/sdb1)。
  3. 格式化:sudo mkfs.xfs /dev/sdb1(推荐 XFS)。
  4. 创建挂载点并临时挂载:
    sudo mkdir /data
    sudo mount /dev/sdb1 /data
    
  5. 永久挂载:编辑 /etc/fstab,添加:
    /dev/sdb1  /data  xfs  defaults  0 0
    

日志管理与排查

使用 journalctl

# 查看所有日志
journalctl

# 查看特定服务日志
journalctl -u sshd

# 查看本次启动日志
journalctl -b

# 实时跟踪
journalctl -f

传统日志文件仍位于 /var/log/,如 messagessecurecron 等。

常见服务部署范例

快速搭建 Web 服务 (Nginx + 防火墙开放)

sudo dnf install nginx -y
sudo systemctl enable --now nginx
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload

访问服务器 IP 即可看到 Nginx 欢迎页,网站文件默认在 /usr/share/nginx/html/

搭建 MySQL/MariaDB 数据库

sudo dnf install mariadb-server -y
sudo systemctl enable --now mariadb

# 安全初始化
sudo mysql_secure_installation

根据向导设置 root 密码、移除匿名用户等。

安全加固建议

  • 禁用 root 直接 SSH 登录:修改 /etc/ssh/sshd_configPermitRootLogin no,重启 sshd。
  • 配置 SSH 密钥登录,禁用密码认证。
  • 定期更新系统:sudo dnf upgrade --refresh
  • 开启自动安全更新:
    sudo dnf install dnf-automatic -y
    sudo systemctl enable --now dnf-automatic.timer