CentOS 7.6 和 8.2 在网络配置和防火墙管理方面有何区别?

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

总结与建议

  1. 配置迁移:从 CentOS 7 升级到 8 后,不要直接依赖旧的 ifcfg- 文件。请学习并使用 nmclinmtui 来管理网络,这是未来的标准。
  2. 防火墙策略:你的防火墙管理逻辑(如开放端口、区域划分)无需大幅修改,因为 firewalld 的抽象层保持不变。只需记住底层规则引擎已从 iptables 变为 nftables
  3. 脚本兼容性:如果你运行了依赖 service network restartiptables -A 的自动化脚本,在 CentOS 8 上需要重写为调用 nmclinft/firewall-cmd

简而言之,CentOS 8.2 在保持防火墙管理逻辑一致性的同时,彻底革新了网络接口的配置方式,以适应更现代化的 Linux 系统架构。

云服务器