加油
努力

运行环境迁移时,CentOS 8.0和7.6在网络配置方面有何区别?

在进行运行环境迁移,特别是从 CentOS 7.6 迁移到 CentOS 8.0 时,网络配置方面存在一些关键区别。这些变化主要体现在网络管理工具、配置文件格式、默认服务和命名约定等方面。以下是详细的对比:


1. 网络管理工具的变化

特性 CentOS 7.6 CentOS 8.0
默认网络管理器 NetworkManager(可选)
传统使用 network.service(基于 ifcfg-* 文件)
默认启用并推荐使用 NetworkManager
network.service 已被弃用(从 RHEL/CentOS 8 开始)
命令行工具 system-config-network, nmtui, nmcli 主要使用 nmclinmtui
system-config-network 被移除

说明:CentOS 8 中传统的 network.service(即 /etc/sysconfig/network-scripts/ifcfg-* 配置方式)虽然仍可用,但已被标记为废弃(deprecated),官方推荐全面转向 NetworkManager


2. 配置文件位置与格式

项目 CentOS 7.6 CentOS 8.0
网络接口配置文件 /etc/sysconfig/network-scripts/ifcfg-<interface>
例如:ifcfg-ens33
同样支持该路径下的文件(兼容),但建议通过 nmcliNetworkManager 的 keyfile 存储(如 /etc/NetworkManager/system-connections/
推荐的配置方式 编辑 ifcfg-* 文件 使用 nmcli 命令或图形界面配置,避免手动编辑文件

⚠️ 注意:在 CentOS 8 中,若使用 NetworkManager,直接修改 ifcfg-* 文件可能导致配置不一致,应优先使用 nmcli


3. 网络接口命名规则

项目 CentOS 7.6 CentOS 8.0
默认网卡命名 支持传统 eth0(可通过内核参数启用)
默认使用 一致性网络设备命名(Consistent Network Device Naming),如 ens33, enp0s3
继续使用一致性命名(如 ens33
更严格地遵循 systemd 命名规则

🔧 可通过内核参数(如 biosdevname=0net.ifnames=0)恢复 eth0 命名,但不推荐。


4. 命令行工具使用差异

CentOS 7.6 常见操作:

# 启动/重启网络服务
systemctl restart network

# 查看 IP
ip addr show

# 修改 ifcfg 文件后重载
ifdown eth0 && ifup eth0

CentOS 8.0 推荐操作:

# 使用 nmcli 管理连接
nmcli connection show
nmcli connection up "System ens33"
nmcli connection modify "System ens33" ipv4.addresses 192.168.1.100/24
nmcli connection down "System ens33" && nmcli connection up "System ens33"

# 重启 NetworkManager(相当于“重启网络”)
systemctl restart NetworkManager

📌 提示:不要随意重启 NetworkManager 服务,可能影响 SSH 连接。


5. DHCP vs 静态 IP 配置示例对比

CentOS 7.6 (/etc/sysconfig/network-scripts/ifcfg-ens33):

DEVICE=ens33
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8

CentOS 8.0(使用 nmcli 设置静态 IP):

nmcli connection modify "System ens33" 
    ipv4.method manual 
    ipv4.addresses 192.168.1.100/24 
    ipv4.gateway 192.168.1.1 
    ipv4.dns "8.8.8.8"

然后重新激活连接:

nmcli connection down "System ens33"
nmcli connection up "System ens33"

6. 防火墙与网络服务集成

  • CentOS 8 使用 firewalld 作为默认防火墙(与 CentOS 7 相同),但更紧密集成 NetworkManager
  • 区域(zone)管理通过 firewall-cmd,且接口绑定区域由 NetworkManager 自动处理。

7. 其他注意事项

项目 说明
ifconfig 命令 在 CentOS 8 中默认不再安装(属于 net-tools 包),推荐使用 ip addrss
hostnamectl 两个版本都支持,用于设置主机名
DNS 配置 更多由 NetworkManager 管理,写入 /etc/resolv.conf(可能由 systemd-resolved 控制)

✅ 迁移建议

  1. 评估当前网络配置方式:确认是否使用 network.serviceNetworkManager
  2. 逐步迁移到 nmcli:避免直接编辑 ifcfg-* 文件,改用 nmcli 管理。
  3. 测试前备份配置:迁移前备份 /etc/sysconfig/network-scripts/ 和 NetworkManager 配置。
  4. 更新自动化脚本:将 ifup/ifdownservice network restart 替换为 nmcli 命令。
  5. 检查云环境兼容性:在 AWS、OpenStack 等环境中,通常已适配 NetworkManager

总结

方面 CentOS 7.6 CentOS 8.0
网络服务 network.service(主) NetworkManager(主,network.service 废弃)
配置方式 手动编辑 ifcfg-* 推荐 nmcli / nmtui
工具支持 ifconfig, service network restart ip, nmcli, systemctl restart NetworkManager
兼容性 支持传统命名 一致性命名为主

🔄 迁移核心:从“文件驱动 + network.service”向“声明式 + NetworkManager”转变。


如有进一步需求(如批量迁移脚本、Ansible playbook 示例),可继续提问。

云服务器