RHEL 9.4+中多网卡向新IP段无损迁移需采用“先建后切”策略:新建独立连接(如ens160-new),配置新IPv4地址、网关及DNS,禁用旧连接自动启动并启用新连接,分阶段激活验证连通性与路由后,再清理旧连接。

在 RHEL 9(特别是 9.4+)中,NetworkManager 的控制器-端口模型已统一为 port-type/controller 语义,取代旧版的 slave-type/master。多物理网卡向新 IP 段无损迁移的关键,是避免直接修改活跃连接导致路由中断或连接抖动——核心策略是“先建后切”,即新建配置、验证连通性、再停用旧连接。
确认当前连接与设备状态
执行以下命令获取准确上下文:
-
nmcli connection show --active查看当前生效的连接名(如ens160、enp1s0) -
nmcli device status确认物理接口名与状态(如ens160 connected) -
ip -br addr show核对当前各网卡实际分配的 IPv4 地址及作用域
为每张网卡创建独立的新连接配置
不复用原连接名,而是新建带明确标识的连接(例如 ens160-new),确保旧连接仍可回退:
- 复制旧连接基础配置:
nmcli connection clone ens160 ens160-new - 修改 IPv4 设置(以迁移到
10.20.30.100/24为例):nmcli connection modify ens160-new ipv4.addresses 10.20.30.100/24 ipv4.gateway 10.20.30.1 ipv4.method manual ipv4.dns "8.8.8.8,114.114.114.114" - 禁用自动连接旧连接,启用新连接:
nmcli connection modify ens160 autoconnect nonmcli connection modify ens160-new autoconnect yes
分阶段激活并验证新配置
避免所有网卡同时切换造成网络中断:
- 先重载配置:
nmcli connection reload - 单独启用一张新连接:
nmcli connection up ens160-new - 立即验证:
ping -c3 10.20.30.1、ip route | grep default确认默认路由指向新网关 - 确认业务可达(如 SSH 连接未断、服务端口响应正常)后再处理下一张网卡
清理与固化
全部切换完成后执行收尾操作:
- 停用并删除旧连接:
nmcli connection down ens160 && nmcli connection delete ens160 - 若需保留旧配置作备份,改名存档:
nmcli connection modify ens160 connection.id "ens160-backup-$(date +%Y%m%d)" - 重启 NetworkManager 仅在必要时(如策略变更后):
systemctl restart NetworkManager,通常 reload 已足够


















