🧠 CentOS 7 vs 8 vs 9 Shell 脚本与系统工具对比
标签:#CentOS #Shell脚本对比 #运维 #云原生 #容器兼容性
适用人群:系统运维人员、容器/云原生开发者、Linux 学习者
🧭 目录导航
- [🎯 核心差异概览](#🎯 核心差异概览)
- [📦 包管理器(yum / dnf)对比](#📦 包管理器(yum / dnf)对比)
- [🔗 网络配置工具对比](#🔗 网络配置工具对比)
- [🔥 防火墙工具对比](#🔥 防火墙工具对比)
- [⚙️ systemd 管理对比](#⚙️ systemd 管理对比)
- [🐳 容器兼容性对比](#🐳 容器兼容性对比)
- [☁️ 云原生适配能力](#☁️ 云原生适配能力)
- [🧬 Kernel 核心功能变化](#🧬 Kernel 核心功能变化)
- [🧪 Shell 脚本示例对比](#🧪 Shell 脚本示例对比)
- [📌 总结](#📌 总结)
🎯 核心差异概览
版本 | 包管理器 | 防火墙默认 | 网络配置 | 系统服务 | 内核版本 | 支持生命周期 |
---|---|---|---|---|---|---|
CentOS 7 | yum |
iptables ➜ firewalld |
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 容器 |
🔖 关注专栏《版本那些事》获取更多运维干货!