CentOS 7 vs 8 vs 9 Shell 脚本与系统工具对比

🧠 CentOS 7 vs 8 vs 9 Shell 脚本与系统工具对比

标签:#CentOS #Shell脚本对比 #运维 #云原生 #容器兼容性

适用人群:系统运维人员、容器/云原生开发者、Linux 学习者


🧭 目录导航

  • [🎯 核心差异概览](#🎯 核心差异概览)
  • [📦 包管理器(yum / dnf)对比](#📦 包管理器(yum / dnf)对比)
  • [🔗 网络配置工具对比](#🔗 网络配置工具对比)
  • [🔥 防火墙工具对比](#🔥 防火墙工具对比)
  • [⚙️ systemd 管理对比](#⚙️ systemd 管理对比)
  • [🐳 容器兼容性对比](#🐳 容器兼容性对比)
  • [☁️ 云原生适配能力](#☁️ 云原生适配能力)
  • [🧬 Kernel 核心功能变化](#🧬 Kernel 核心功能变化)
  • [🧪 Shell 脚本示例对比](#🧪 Shell 脚本示例对比)
  • [📌 总结](#📌 总结)

🎯 核心差异概览

版本 包管理器 防火墙默认 网络配置 系统服务 内核版本 支持生命周期
CentOS 7 yum iptablesfirewalld ifcfg 传统文件 systemd 3.10.x 2024-06 已结束
CentOS 8 dnf + yum 兼容 firewalld nmcli + nmtui systemd 4.18.x 2021 停止维护
CentOS Stream 9 dnf nftables nmcli systemd 5.14+(RHEL 9) 持续滚动更新中

📦 包管理器(yum / dnf)对比

功能 CentOS 7 CentOS 8 CentOS 9
默认工具 yum(基于 Python 2) dnf(兼容 yum) dnf(纯 DNF,yum 是软链接)
缓存命令 yum clean all dnf clean all dnf clean all
构建缓存 yum makecache dnf makecache dnf makecache
安装命令 yum install pkg dnf install pkg dnf install pkg

🔧 脚本差异

bash 复制代码
# CentOS 7 安装 wget
yum install -y wget

# CentOS 8+
dnf install -y wget

🔗 网络配置工具对比

工具 CentOS 7 CentOS 8 CentOS 9
网卡配置文件 /etc/sysconfig/network-scripts/ifcfg-XXX 同上(兼容) ❌ 已弃用 ifcfg,全面使用 NetworkManager
命令行工具 nmcli 可用 nmcli, nmtui nmcli, nmtui

🔧 查看 IP 示例

bash 复制代码
# 通用命令
ip addr show

# CentOS 7 传统查看
cat /etc/sysconfig/network-scripts/ifcfg-eth0

# CentOS 9 推荐使用 nmcli
nmcli device show

🔥 防火墙工具对比

功能 CentOS 7 CentOS 8 CentOS 9
默认防火墙 iptables/firewalld firewalld(基于 nftables) nftables
命令行工具 iptables, firewall-cmd 同上 nft(推荐)

🔧 端口开放脚本对比

bash 复制代码
# CentOS 7 / 8 开放端口
firewall-cmd --zone=public --add-port=22/tcp --permanent
firewall-cmd --reload

# CentOS 9 使用 nft(或兼容 firewall-cmd)
nft add rule inet filter input tcp dport 22 accept

⚙️ systemd 管理对比

所有版本都使用 systemd,但脚本上统一如下:

bash 复制代码
# 启动服务
systemctl start nginx

# 开机自启
systemctl enable nginx

# 查看状态
systemctl status nginx

✅ 建议统一写法适配三版本。


🐳 容器兼容性对比

特性 CentOS 7 CentOS 8 CentOS 9 / Stream 9
Docker 支持 ✅ 官方支持(旧版) ❌ 官方仓库无 Docker ❌ 不推荐 Docker,推荐 Podman
podman 支持 ✅(推荐) ✅ 默认容器运行时
cgroup 版本 cgroup v1 cgroup v1 cgroup v2

☁️ 云原生适配能力

特性 CentOS 7 CentOS 8 CentOS 9 / Stream
Podman/Kube 支持 ⛔️ 需手动安装 ✅ 官方支持 ✅ 官方支持
systemd 容器集成 部分支持 ✅ 完整 ✅ 完整
云厂商适配(阿里云、腾讯云) ✅ 镜像可用 ✅ 镜像可用 ✅ 镜像 + 云原生优化

🧬 Kernel 核心功能变化

Kernel 功能 CentOS 7 (3.10) CentOS 8 (4.18) CentOS 9 (5.14+)
eBPF 支持 ❌ 部分(需 backport) ✅ 正式支持 ✅ 增强支持(云原生利器)
SELinux 性能 一般 提升 显著提升
cgroup v2 ✅ 默认
io_uring ✅ 支持高性能 IO

🧪 Shell 脚本示例对比

以下是用于"安装 wget 并配置国内源"的对比:

CentOS 7 脚本:

bash 复制代码
yum install -y wget
cd /etc/yum.repos.d/
mkdir backup && mv *.repo backup/
wget -O CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all && yum makecache

CentOS 8 脚本:

bash 复制代码
dnf install -y wget
cd /etc/yum.repos.d/
mkdir backup && mv *.repo backup/
wget -O CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo
dnf clean all && dnf makecache

CentOS 9 / Stream 脚本:

bash 复制代码
dnf install -y wget
cd /etc/yum.repos.d/
mkdir backup && mv *.repo backup/
wget -O CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-9.repo
dnf clean all && dnf makecache

📌 总结

维度 CentOS 7 CentOS 8 CentOS 9 / Stream
适合入门 ✅ 稳定,兼容性好 ⛔️ 已停止维护 ⛔️ 滚动更新不建议新手
容器支持 Docker Podman(需手动) Podman 默认
云原生友好 ✅✅
建议用途 传统服务器、学习 本地测试环境 云原生开发、K8s 容器

🔖 关注专栏《版本那些事》获取更多运维干货!