nmcli d reapply 是 CentOS 8+ 唯一支持在线热更新网卡配置的命令,可在不中断连接、不丢包、不重置流量前提下实时应用 IP/DNS/路由/MTU 等修改,需设备状态为 connected 且已绑定活跃 connection,执行前须先 modify 配置、再 reload、最后 reapply。

nmcli device reapply 是 CentOS 8+ 中唯一支持“在线热更新”网卡配置的命令,它能在不中断现有连接、不丢包、不重置 TCP/UDP 流量的前提下,将已修改的 connection 配置(如 IP、DNS、路由、MTU 等)实时应用到正在运行的网卡设备上。
适用前提:确保设备处于 connected 状态且被 NetworkManager 纳管
执行前必须满足两个条件:
- 网卡设备在
nmcli d输出中状态为 connected(不是 disconnected/unmanaged/unavailable) - 该设备已绑定一个活跃的 connection(即
nmcli c show中对应 connection 显示为带颜色的“活跃”)
若状态异常,先修复纳管关系:nmcli n on(开启 NetworkManager)nmcli d connect ens33(强制接管并连接设备)
操作流程:修改 → 重载 → 热应用
三步缺一不可,顺序不能颠倒:
CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离
- 修改配置(例如改 DNS 或静态 IP):
nmcli c modify ens33 ipv4.dns "8.8.8.8,114.114.114.114" - 重载配置(使修改进入 NM 内存,但不生效):
nmcli c reload - 热更新到运行中的设备(关键一步):
nmcli d reapply ens33
执行成功后,原有 SSH 连接、HTTP 请求、长连接等均保持畅通,ss -tuln 和 ip a 可立即看到新配置生效。
哪些配置支持热更新?哪些不支持?
支持热更新(无需 down/up):
IP 地址(IPv4/IPv6)、子网掩码、网关、DNS、搜索域、MTU、ARP 超时、IPv6 RA 设置、自定义路由(通过 ipv4.routes)
不支持热更新(必须 nmcli c down & up):
接口名称(ifname)、连接类型(ethernet/Wi-Fi)、BOOTPROTO 切换(manual ↔ auto)、MAC 地址伪造(cloned-mac-address)、802.1X 认证参数
验证是否真正“无损”
可结合以下命令交叉确认:
- 检查连接持续性:
ping -c 5 192.168.1.1 && echo "OK"(执行 reapply 前后都跑一次) - 查看设备变更时间:
nmcli d show ens33 | grep "reapply\|timestamp"(输出含 “reapply succeeded” 即成功) - 抓包验证零丢包:
tcpdump -i ens33 icmp -c 10在 reapply 执行瞬间连续运行,应无中断
该机制依赖于 Linux 内核的 `RTM_NEWADDR` / `RTM_NEWROUTE` 等 netlink 消息异步下发,不触碰底层设备链路层状态,因此天然具备无损特性。

















