CentOS 7.6 和 8.2 在网络配置与防火墙管理上存在显著差异,主要体现在网络管理工具、默认防火墙实现以及服务管理方式三个方面。以下是核心区别的详细对比:
1. 网络管理工具的变化
这是两者最直观的区别,反映了从传统 SysVinit 向 Systemd 生态的演进。
| 特性 | CentOS 7.6 (Legacy) | CentOS 8.2 (Modern) |
|---|---|---|
| 主要工具 | network-scripts (ifcfg-*) + systemctl start network |
NetworkManager (推荐) / nmcli |
| 配置文件位置 | /etc/sysconfig/network-scripts/ifcfg-<iface> |
/etc/NetworkManager/system-connections/<name>.nmconnection |
| 命令行接口 | ip addr, ip route, ifup/ifdown (脚本式) |
nmcli (统一 CLI), nmtui (TUI) |
| 状态检查 | service network status |
nmcli general status |
| 兼容性说明 | 默认启用 network.service |
已移除 network-scripts 包(需手动安装才能使用旧配置) |
- 关键影响:在 CentOS 8 中,传统的
/etc/sysconfig/network-scripts/目录下的配置文件不再被默认支持。如果直接复制 7.x 的配置文件到 8.x,它们通常不会生效。必须使用nmcli重新配置或使用nmtui图形界面进行设置。
2. 防火墙管理的底层实现
虽然用户层面的命令相似,但底层的守护进程和规则引擎发生了根本性变化。
| 特性 | CentOS 7.6 | CentOS 8.2 |
|---|---|---|
| 默认防火墙软件 | iptables (通过 firewalld 管理) |
nftables (通过 firewalld 管理) |
| 后端技术 | iptables 规则集 | nftables 集合表 (Set/Table) |
| 防火墙服务 | firewalld (Systemd 服务) |
firewalld (Systemd 服务) |
| 配置文件路径 | /etc/firewalld/ (zone, service xml) |
/etc/firewalld/ (结构基本一致) |
| 命令差异 | iptables -L -n 查看底层规则 |
nft list ruleset 查看底层规则 |
| 性能与扩展性 | 规则链较长时效率较低 | 基于集合表,处理大量规则更高效 |
- 关键点:尽管底层从
iptables迁移到了nftables,但firewalld的用户空间接口(CLI 和 API)保持了高度兼容。这意味着你在 CentOS 7 上使用的firewall-cmd --add-service=http --permanent命令在 CentOS 8 上依然有效且行为一致。 - 注意:如果你习惯直接使用
iptables命令操作底层规则,在 CentOS 8 中这些命令可能无法正常工作或已被弃用,应转而使用nft命令或坚持使用firewall-cmd。
3. 具体操作示例对比
网络配置示例
-
CentOS 7:
# 编辑静态 IP 配置 vi /etc/sysconfig/network-scripts/ifcfg-eth0 # 重启网络服务 systemctl restart network -
CentOS 8:
# 使用 nmcli 添加连接 (推荐) nmcli con add type ethernet con-name "eth0" ifname eth0 ipv4.addresses "192.168.1.10/24" ipv4.gateway "192.168.1.1" ipv4.dns "8.8.8.8" ipv4.method manual # 或者修改现有连接 nmcli con mod "eth0" ipv4.addresses "192.168.1.10/24" # 激活连接 nmcli con up "eth0"
防火墙开放端口示例
-
CentOS 7 & 8 (通用):
# 永久开放 HTTP 服务 firewall-cmd --permanent --add-service=http # 重载配置使更改生效 firewall-cmd --reload注:在 CentOS 8 中,若需查看底层规则,需使用
nft list ruleset而非iptables -L。
总结与建议
- 配置迁移:从 CentOS 7 升级到 8 后,不要直接依赖旧的
ifcfg-文件。请学习并使用nmcli或nmtui来管理网络,这是未来的标准。 - 防火墙策略:你的防火墙管理逻辑(如开放端口、区域划分)无需大幅修改,因为
firewalld的抽象层保持不变。只需记住底层规则引擎已从iptables变为nftables。 - 脚本兼容性:如果你运行了依赖
service network restart或iptables -A的自动化脚本,在 CentOS 8 上需要重写为调用nmcli和nft/firewall-cmd。
简而言之,CentOS 8.2 在保持防火墙管理逻辑一致性的同时,彻底革新了网络接口的配置方式,以适应更现代化的 Linux 系统架构。
CLOUD技术笔记