CentOS 7 系统介绍:从安装到基本配置 – wiki基地


CentOS 7 系统介绍:从安装到基本配置

引言

在企业级服务器和开发环境中,Linux 操作系统扮演着至关重要的角色。而在众多 Linux 发行版中,CentOS 7 凭借其稳定性、可靠性和强大的社区支持,曾长期占据着重要的地位。CentOS (Community ENTerprise Operating System) 是一个基于 Red Hat Enterprise Linux (RHEL) 源代码重新编译而成的免费发行版,它继承了 RHEL 的企业级特性,但不包含 Red Hat 的商业支持。

虽然 CentOS 项目的重心已转向 CentOS Stream,并且 CentOS 7 自身的生命周期已近尾声(计划于 2024 年 6 月 30 日停止维护),但由于其广泛的应用基础和成熟的生态系统,许多现有的系统和技术资料仍然基于 CentOS 7。因此,了解 CentOS 7 的安装和基本配置对于维护现有系统或学习企业级 Linux 环境仍然具有重要意义。

本文将详细介绍 CentOS 7 的特性,并提供一份从零开始的安装指南,以及安装完成后进行基本系统配置的步骤,帮助读者快速上手 CentOS 7 系统。

第一部分:CentOS 7 系统介绍

CentOS 7 发布于 2014 年,基于 RHEL 7 版本。相对于之前的 CentOS 6 (基于 RHEL 6),CentOS 7 引入了许多重要的新技术和改进:

  1. Systemd: 取代了 SysVinit,成为默认的初始化系统和服务管理器。Systemd 提供了更快的启动速度、更好的服务依赖管理和强大的日志系统 (journald)。
  2. XFS 文件系统: 成为默认文件系统(对于根分区),在大容量存储和性能方面表现更优。
  3. Firewalld: 取代了 iptables,成为默认的防火墙管理工具,提供了更灵活、动态的防火墙规则配置。
  4. 网络管理: 使用 NetworkManager 和 nmcli 工具进行网络配置,简化了有线和无线网络的管理。
  5. 内核版本: 通常搭载较新版本的 Linux 内核,支持更多硬件。
  6. LVM 快照和文件系统管理: 改进了逻辑卷管理工具,支持更多的存储技术。
  7. 云环境优化: 对在虚拟机和云环境中运行进行了优化。
  8. 软件包管理: 依然使用 YUM (Yellowdog Updater, Modified) 作为主要的软件包管理器,但底层库有所更新。

这些特性使得 CentOS 7 成为一个现代化、功能丰富的服务器操作系统,适用于网站托管、数据库服务器、应用服务器、虚拟化平台等多种应用场景。它的长期支持周期(虽然即将结束)和与 RHEL 的高度兼容性,使其成为许多企业和个人用户的首选。

第二部分:CentOS 7 安装准备

在开始安装 CentOS 7 之前,需要做一些准备工作:

  1. 获取 CentOS 7 ISO 镜像文件:

    • 访问 CentOS 官方镜像站点(或其他开源镜像站点)。
    • 下载 CentOS 7 的 ISO 文件。通常选择 “DVD ISO” 版本,它包含了完整的安装环境和大部分常用软件包,无需联网即可完成基本安装。文件名类似 CentOS-7-x86_64-DVD-xxxx.iso
    • 根据您的硬件架构选择合适的版本,x86_64 是当前主流的 64 位架构。
  2. 创建可引导的安装介质:

    • 将下载的 ISO 文件写入 U 盘或 DVD 光盘。
    • 使用 U 盘(推荐):
      • 在 Linux 系统下,可以使用 dd 命令:
        bash
        sudo dd if=/path/to/CentOS-7-x86_64-DVD-xxxx.iso of=/dev/sdX bs=4M status=progress

        请将 /path/to/CentOS-7-x86_64-DVD-xxxx.iso 替换为你的 ISO 文件路径,将 /dev/sdX 替换为你的 U 盘设备名称(务必确认设备名称,否则可能擦除硬盘数据!通常是 /dev/sdb, /dev/sdc 等,可以通过 lsblkfdisk -l 查看)。
      • 在 Windows 系统下,可以使用 Rufus、Etcher 或 UltraISO 等工具将 ISO 写入 U 盘。
    • 使用 DVD 光盘: 使用刻录软件将 ISO 文件作为镜像刻录到 DVD 光盘。
  3. 确定安装硬件要求:

    • CPU: 64 位兼容处理器。
    • RAM: 最小 1GB,建议 2GB 或更多,特别是安装带 GUI 的版本或用作服务器。
    • 硬盘空间: 最小 20GB,建议 40GB 或更多,特别是如果选择安装许多软件包或需要存放大量数据。
    • 网络连接: 如果需要下载额外软件包或进行联网安装,需要有可用的网络连接(有线或无线)。
  4. 备份重要数据: 如果要在现有系统上安装 CentOS 7,或者安装在有其他操作系统的硬盘上,请务必提前备份所有重要数据,以防意外发生。

  5. 设置 BIOS/UEFI: 将计算机设置为从你创建的安装介质(U 盘或 DVD)启动。进入计算机的 BIOS 或 UEFI 设置界面,找到启动顺序 (Boot Order) 选项,将 U 盘或光驱设备调整到首位。

第三部分:CentOS 7 安装过程

一切准备就绪后,就可以开始安装 CentOS 7 了。插入 U 盘或 DVD,启动计算机。

  1. 启动安装程序:

    • 计算机从安装介质启动后,会出现一个启动菜单界面。
    • 选择第一个选项 Install CentOS 7 并按回车键。
    • 安装程序会加载必要的内核和文件系统,进入图形安装界面(Anaconda)。
  2. 语言选择:

    • 首先选择安装过程中使用的语言。选择 中文(简体),然后点击 继续(C)
  3. 安装信息摘要 (Anaconda Hub):

    • 这是一个中心控制面板,你可以配置所有安装相关的设置。主要包含以下几个区域:

    • 本地化 (LOCALIZATION):

      • 日期和时间: 点击进入,在地图上选择你的时区,或手动设置。点击 完成(D)
      • 键盘: 默认为英语,如果需要可以添加或更改键盘布局。通常保留默认即可。点击 完成(D)
      • 语言支持: 默认为中文(简体)和英文,通常无需更改。点击 完成(D)
    • 软件 (SOFTWARE):

      • 安装源: 默认为本地安装介质(自动检测)。通常无需更改。
      • 软件选择: 这是重要的一步,决定了安装哪些软件包集合。
        • 点击进入,左侧是基础环境 (Base Environment),右侧是附加组件 (Add-Ons for Selected Environment)。
        • 常见的选择:
          • 最小安装 (Minimal Install):只安装最少的必需软件包,适合作为服务器,所有配置通过命令行完成。
          • 计算节点 (Compute Node):用于高性能计算环境。
          • 基础设施服务器 (Infrastructure Server):包含一些基础服务工具。
          • 文件及打印服务器 (File and Print Server):包含 Samba 和 CUPS。
          • 带 GUI 的服务器 (Server with GUI):安装了基本的图形界面(GNOME Classic)和服务器工具,适合需要在服务器上偶尔使用图形界面进行管理的用户。
          • GNOME 桌面 (GNOME Desktop):完整的桌面环境,适合工作站或个人使用。
          • KDE 桌面 (KDE Plasma Workspaces):另一种桌面环境。
        • 根据你的需求选择一个基础环境,然后在右侧选择需要的附加组件(例如,如果选择“最小安装”,可以在附加组件中选择“开发工具”、“安全性工具”等)。
        • 对于大多数服务器用途,最小安装 是推荐选项。如果对 Linux 不熟悉或需要在图形界面下操作,可以选择 带 GUI 的服务器
        • 选择完毕后,点击 完成(D)
    • 系统 (SYSTEM):

      • 安装位置: 这是最关键的一步,决定了系统安装到哪个硬盘以及如何分区。
        • 点击进入。
        • 首先选择你要安装系统的硬盘(通常是 /dev/sda 或类似的名称)。
        • 分区选项:
          • 自动配置分区 (Automatically configure partitioning):安装程序会自动为你创建标准分区布局(/、/home、swap 等),通常使用 LVM。这是最简单的方式,适合新手或快速安装。
          • 我要配置分区 (I will configure partitioning):手动分区。点击后需要点击“完成”,然后进入手动分区界面。
        • 手动分区 (Manual Partitioning):
          • 选择 标准分区 (Standard Partition)LVM 精简配置 (LVM Thin Provisioning)Btrfs 等。通常选择 LVM标准分区。LVM 提供更大的灵活性,如创建快照、动态调整分区大小等。
          • 点击左下角的 + 按钮创建分区。
          • 为每个分区指定“挂载点” (Mount Point) 和“期望容量” (Desired Capacity)。
          • 必需的分区:
            • /boot:存放引导文件,通常需要 500MB – 1GB,文件系统类型通常是 Ext4 或 XFS。
            • /:根分区,存放操作系统核心文件和程序,是必需的。分配大部分剩余空间。
            • swap:交换分区,用于在物理内存不足时作为虚拟内存。大小通常建议为物理内存的 1-2 倍(如果内存大于 8GB,可以适当减小)。选择文件系统类型为 swap
          • 可选的分区:
            • /home:存放用户的主目录,建议单独分区,方便数据备份和系统重装。
            • /var:存放经常变化的文件,如日志、缓存、邮件等,在大负载服务器上建议单独分区。
            • /tmp:临时文件存放点。
          • 创建完所有必要分区后,点击 完成(D)。安装程序会提示你接受分区方案或进行修改。确认无误后,点击 接受更改(A)
      • 网络和主机名:
        • 点击进入。
        • 左侧显示可用的网络接口(如 enp0s3, eth0 等)。选择一个接口,将右上角的开关拨到 开(O)
        • 点击 配置(C) 按钮,在 IPv4 设置中选择 手动,然后点击 添加(A) 按钮配置静态 IP 地址、子网掩码、网关和 DNS 服务器。或者保持 DHCP 自动获取地址(取决于你的网络环境)。
        • 在左下角的“主机名”文本框中设置你的计算机名称,例如 server.example.com
        • 配置完成后,点击 完成(D)
      • 安全性策略: 默认为关闭。如果你的组织有特定的安全策略(SCAP Profile),可以在这里选择应用。通常保持默认。
    • 用户设置 (USER SETTINGS):

      • ROOT 密码: 非常重要! 点击进入,为 root 用户设置一个强密码。root 用户拥有系统的最高权限。务必记住这个密码。输入两次密码,点击 完成(D)
      • 用户创建: 强烈建议创建一个普通用户用于日常操作。 点击进入,填写用户名、全名,并设置密码。勾选 将此用户作为管理员 可以让该用户通过 sudo 命令执行管理员任务(等同于将其加入 wheel 用户组)。设置好后点击 完成(D)
  4. 开始安装:

    • 所有安装信息都配置完毕且没有黄色警告图标后,开始安装(B) 按钮会变为可点击状态。
    • 点击 开始安装(B)
  5. 安装过程:

    • 安装程序开始复制文件和安装软件包。这个过程需要一些时间,取决于你的硬件性能和选择的软件包数量。
    • 在安装过程中,你可以回到“用户设置”去设置 root 密码和创建用户(如果之前跳过了)。
  6. 完成安装:

    • 安装完成后,界面会提示 CentOS 7 已成功安装并可以使用!
    • 点击右下角的 重启(R) 按钮。
    • 重要: 在系统重启前,请移除安装介质(U 盘或 DVD),否则系统可能会再次从安装介质启动。
  7. 首次启动和登录:

    • 系统重启后,会首先进入引导程序 (GRUB)。通常会自动选择第一个启动项(即 CentOS Linux)。
    • 系统启动进入命令行界面或图形登录界面(取决于你选择的软件环境)。
    • 如果你安装了图形界面,会看到登录屏幕,输入你创建的普通用户名和密码登录。
    • 如果你安装的是最小安装,会看到命令行登录提示 localhost login:,输入用户名(root 或你创建的普通用户)和密码登录。

第四部分:CentOS 7 基本配置

安装完成后,进行一些基本的系统配置是非常必要的。以下是一些常见的初始配置步骤:

  1. 登录系统:

    • 使用 root 用户或具有管理员权限的普通用户登录系统。如果使用普通用户,在需要管理员权限的命令前加上 sudo
  2. 更新系统:

    • 这是安装后的首要任务,确保所有已安装的软件包都是最新版本,修复潜在的安全漏洞和 bug。
    • 打开终端(如果是最小安装,已经在终端下)。
    • 切换到 root 用户(如果当前不是):su - 然后输入 root 密码。或者使用 sudo
    • 执行更新命令:
      bash
      sudo yum update -y

      yum 是 CentOS 7 的软件包管理器。update 命令检查并下载更新。-y 参数表示对所有提示自动回答“是”。
    • 等待更新完成。更新后可能需要重启系统使某些更改生效(尤其是内核更新后)。
  3. 配置网络:

    • 如果在安装时使用了 DHCP 自动获取 IP,且需要固定 IP,或者安装时没有配置网络,则需要手动配置。
    • 查看当前网络状态:
      bash
      ip addr show
      nmcli device status
    • 配置静态 IP(命令行):
      • 找到你的网络接口名称(如 enp0s3eth0),通常在 ip addr show 命令输出中看到。
      • 编辑对应的配置文件:
        bash
        sudo vi /etc/sysconfig/network-scripts/ifcfg-enp0s3 # 替换为你的接口名称
      • 修改或添加以下行:
        ini
        TYPE="Ethernet"
        BOOTPROTO="static" # 改为 static
        DEFROUTE="yes"
        PEERDNS="yes"
        PEERROUTES="yes"
        IPV4_FAILURE_FATAL="no"
        IPV6INIT="yes"
        IPV6_AUTOCONF="yes"
        IPV6_DEFROUTE="yes"
        IPV6_PEERDNS="yes"
        IPV6_PEERROUTES="yes"
        IPV6_FAILURE_FATAL="no"
        NAME="enp0s3" # 接口名称,务必正确
        UUID="..." # 保留原有的 UUID
        DEVICE="enp0s3" # 接口名称,务必正确
        ONBOOT="yes" # 开机启动时激活网络接口
        IPADDR="你的静态IP地址" # 例如:192.168.1.100
        NETMASK="你的子网掩码" # 例如:255.255.255.0
        GATEWAY="你的网关地址" # 例如:192.168.1.1
        DNS1="首选DNS服务器地址" # 例如:8.8.8.8
        DNS2="备用DNS服务器地址" # 例如:8.8.4.4
      • 保存并关闭文件(在 vi 中按 Esc,输入 :wq,回车)。
      • 重启网络服务使配置生效:
        bash
        sudo systemctl restart network
      • 验证网络连通性:ping www.baidu.comping 8.8.8.8
  4. 配置防火墙 (Firewalld):

    • CentOS 7 默认使用 firewalld。了解如何管理防火墙规则至关重要。
    • 检查防火墙状态:
      bash
      sudo systemctl status firewalld
    • 查看当前区域及开放的服务/端口:
      bash
      sudo firewall-cmd --get-active-zones
      sudo firewall-cmd --zone=public --list-services # 查看 public 区域开放的服务
      sudo firewall-cmd --zone=public --list-ports # 查看 public 区域开放的端口
    • 开放 SSH 服务(默认在安装时已开放,但检查一下):
      bash
      sudo firewall-cmd --zone=public --add-service=ssh --permanent
      sudo firewall-cmd --reload # 重新加载防火墙规则使永久更改生效
    • 开放 HTTP/HTTPS 服务(如果需要运行 Web 服务器):
      bash
      sudo firewall-cmd --zone=public --add-service=http --permanent
      sudo firewall-cmd --zone=public --add-service=https --permanent
      sudo firewall-cmd --reload
    • 开放指定端口(例如开放 TCP 的 8080 端口):
      bash
      sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
      sudo firewall-cmd --reload
    • 禁用防火墙(不推荐,仅用于测试):
      bash
      sudo systemctl stop firewalld
      sudo systemctl disable firewalld # 禁止开机启动

      启用防火墙:
      bash
      sudo systemctl enable firewalld
      sudo systemctl start firewalld
  5. 启用并配置 SSH 服务:

    • SSH (Secure Shell) 是远程管理服务器的标准方式。CentOS 7 默认安装了 OpenSSH 服务器。
    • 检查 SSH 服务状态:
      bash
      sudo systemctl status sshd
    • 确保 SSH 服务开机自启:
      bash
      sudo systemctl enable sshd
    • 配置 SSH 服务器(可选但推荐增强安全):
      • 编辑 SSH 配置文件:
        bash
        sudo vi /etc/ssh/sshd_config
      • 禁用 root 用户直接登录(推荐): 找到或添加 PermitRootLogin no
      • 更改默认 SSH 端口(可选,增加扫描难度): 找到或添加 Port 你的端口号(例如 Port 2222)。如果更改了端口,记得在防火墙中开放新端口并删除旧端口的规则。
      • 禁止密码登录,只允许密钥登录(更安全): 找到或添加 PasswordAuthentication no,并确保 PubkeyAuthentication yes。需要预先配置好 SSH 密钥。
      • 保存并关闭文件。
      • 重启 SSH 服务使配置生效:
        bash
        sudo systemctl restart sshd
    • 从客户端连接: 使用 SSH 客户端(如 PuTTY on Windows, ssh command on Linux/macOS)连接到服务器的 IP 地址或主机名,以及指定的端口(如果更改了)。
  6. 配置用户和 sudo 权限:

    • 如果安装时创建了普通用户并勾选了管理员权限,则该用户已在 wheel 用户组中,可以使用 sudo
    • 创建新用户:
      bash
      sudo adduser 新用户名
      sudo passwd 新用户名 # 为新用户设置密码
    • 将用户添加到 wheel 组以获得 sudo 权限:
      bash
      sudo usermod -aG wheel 新用户名
    • 删除用户:
      bash
      sudo userdel -r 用户名 # -r 选项同时删除用户主目录
    • 使用 visudo 配置 sudo(不推荐直接编辑 /etc/sudoers 文件):
      bash
      sudo visudo

      找到类似 %wheel ALL=(ALL) ALL 的行,确保没有被注释掉(行首没有 #)。这一行允许 wheel 组的成员以任何用户身份在任何终端执行任何命令。
  7. 配置时间同步:

    • 服务器时间的准确性非常重要。CentOS 7 默认使用 chrony 进行时间同步。
    • 检查 chrony 服务状态:
      bash
      sudo systemctl status chronyd
    • 确保 chrony 开机自启:
      bash
      sudo systemctl enable chronyd
    • 检查时间同步状态和同步源:
      bash
      sudo chronyc sources

      如果需要更改同步源,编辑 /etc/chrony.conf 文件,修改或添加 server 行。
    • 立即同步时间(如果差异较大):
      bash
      sudo chronyd -q 'pool ntp.aliyun.com iburst' # 使用阿里云的 NTP 服务器,例如
      sudo systemctl restart chronyd
  8. 了解 SELinux:

    • SELinux (Security-Enhanced Linux) 是一种强制访问控制 (MAC) 安全机制,提供比传统自主访问控制 (DAC) 更细粒度的权限管理。它在 CentOS 7 中默认启用并设置为 enforcing 模式。
    • 检查 SELinux 状态:
      bash
      getenforce # 显示 Enforcing, Permissive 或 Disabled
      sestatus # 显示更详细的状态信息
    • 临时设置为 Permissive 模式(允许但记录违规):
      bash
      sudo setenforce 0
    • 临时设置为 Enforcing 模式(强制执行策略):
      bash
      sudo setenforce 1
    • 永久更改 SELinux 模式: 编辑 /etc/sysconfig/selinux 文件,修改 SELINUX= 行的值(enforcing, permissive, disabled)。更改后需要重启系统生效。
    • 通常情况下,建议保持 SELinux 在 enforcing 模式。如果遇到与 SELinux 相关的权限问题,可以先临时设置为 permissive 模式测试,查看日志 (/var/log/audit/audit.log 或使用 journalctl -xe) 获取 SELinux 拒绝的信息,然后使用 sealertaudit2allow 工具生成或查找相应的 SELinux 策略规则来解决问题,而不是直接禁用 SELinux。

第五部分:进一步学习

完成以上基本配置后,你的 CentOS 7 系统就可以投入使用了。但 Linux 的世界远不止于此。以下是一些建议的进一步学习方向:

  • 文件系统结构: 了解根目录下各个目录(/etc, /var, /home, /usr, /opt 等)的作用。
  • 软件包管理: 深入学习 yum 命令的更多用法(搜索、安装指定版本、组安装等)。
  • 系统服务管理: 深入学习 systemctl 命令,管理服务的启动、停止、重启、查看状态、设置开机自启等。
  • 日志管理: 学习使用 journalctl 查看系统日志。
  • 常用工具: 学习使用 grep, awk, sed, find, tar, vim 等命令行工具。
  • 权限管理: 深入理解 Linux 文件权限 (rwx) 和所有者/组。
  • 进程管理: 学习使用 ps, top, htop, kill 等命令。
  • 定期维护: 学习如何设置定时任务 (cron),进行日志轮替 (logrotate),以及进行系统监控。
  • 虚拟化和容器化: 了解 KVM 虚拟化技术和 Docker 容器技术。
  • 自动化: 学习使用 Ansible, Puppet, Chef 等配置管理工具。

结论

CentOS 7 作为一个稳定、可靠且功能强大的 Linux 发行版,为服务器和开发环境提供了坚实的基础。本文详细介绍了 CentOS 7 的特点,并提供了从下载安装介质、创建启动盘、逐步完成图形安装到进行网络配置、防火墙设置、SSH 访问、用户管理和时间同步等一系列基本配置的完整流程。掌握这些基础知识和操作,将为你驾驭 CentOS 7 系统打下坚实的基础。虽然 CentOS 7 的生命周期即将结束,但学习其背后基于 RHEL 体系的技术(如 systemd, firewalld, yum 等)对于后续学习 RHEL 8/9、CentOS Stream 8/9 或 Rocky Linux/AlmaLinux 等 RHEL 克隆版本仍然具有极高的价值。希望本文能帮助你顺利开启 CentOS 7 的探索之旅。


发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部