跳转到内容
搜索 Rocky Linux 文档

    浏览当前文档目录

    安装后第一小时:Rocky 9 的 7 项核对(附实测输出)

    系统刚装完、还没跑业务,是改配置成本最低的时候。这 7 项核对完,后面装服务、开端口、排障都会少踩坑。能容器实测的给实测输出;依赖 systemd / SELinux 运行态的,明确标「需在真实系统执行」。

    Terminal window
    cat /etc/rocky-release
    dnf repolist --enabled
    Rocky Linux release 9.3 (Blue Onyx)
    repo id repo name
    appstream Rocky Linux 9 - AppStream
    baseos Rocky Linux 9 - BaseOS
    extras Rocky Linux 9 - Extras

    默认只启用这三个源,CRB 没有启用。需要 glibc-static、*-devel 这类包时,临时 --enablerepo=crb 即可,不必永久打开。

    Terminal window
    ls -l /etc/localtime
    timedatectl status
    lrwxrwxrwx. 1 root root 25 ... /etc/localtime -> ../usr/share/zoneinfo/UTC

    容器里 /etc/localtime 指向 UTC,timedatectl 不可用(无 systemd)。在真实系统上执行 timedatectl set-timezone Asia/Shanghai,并确认 systemctl status chronyd 为 active。

    Terminal window
    cat /etc/hostname
    hostnamectl

    容器里 /etc/hostname 是随机容器 ID;真实系统用 hostnamectl set-hostname app01.example.com,改完 hostname -f 应返回 FQDN。

    Terminal window
    getenforce
    sestatus | head -5

    需在真实系统执行:容器没有 SELinux 运行态,getenforce 会返回 Disabled 或命令不存在。Rocky 9 安装后默认是 enforcing,不要在部署时用 setenforce 0 掩盖问题,而是用 ausearch/sealert 定位。

    Terminal window
    firewall-offline-cmd --get-default-zone
    firewall-offline-cmd --zone=public --list-services
    public
    cockpit dhcpv6-client ssh

    默认 zone 是 public,只放行 cockpit、dhcpv6-client、ssh。开服务时要记得放行端口:/firewalld-zones/。

    Terminal window
    sudo dnf install -y yum-utils
    sudo dnf -y update
    sudo needs-restarting -r
    No core libraries or services have been updated since boot-up.
    Reboot should not be necessary.

    needs-restarting -r 退出码 0 表示不用重启,1 表示需要。它由 yum-utils 提供(不是 dnf-plugins-core)。

    Terminal window
    dnf list installed | wc -l
    rpm -q firewalld chrony

    需在真实系统执行:容器是精简 rootfs,包数与「最小化安装」不可比。真实的最小化安装通常约 400–600 个包,且不一定预装 firewalld/chrony;用上面的 rpm -q 确认,缺了就 dnf install -y firewalld chrony 并 systemctl enable --now。

    对一台新装的 Rocky 9 逐条执行并记录结果:

    1. dnf repolist --enabled → 恰为 baseos/appstream/extras(CRB 未启用)
    2. timedatectl status | grep "Time zone" → 与你期望的时区一致
    3. hostname -f → 返回 FQDN(不是 localhost)
    4. getenforce → Enforcing
    5. firewall-cmd --zone=public --list-services → 只有 cockpit/dhcpv6-client/ssh
    6. needs-restarting -r; echo $? → 0
    7. rpm -q firewalld chrony → 两个都有输出