nmcli connection reload && nmcli connection up "连接名"可不重启NetworkManager、不中断SSH地秒级刷新IP配置;需先用nmcli connection show --active确认连接名,含空格须加英文双引号,验证时查ip addr、ip route和/etc/resolv.conf。

在 Linux 中不重启网络服务就能刷新 IP,关键在于用好 NetworkManager 的动态重载机制。只要系统启用了 NetworkManager(现代桌面版和多数新版服务器默认启用),就完全不用动 systemctl restart network 或 systemctl restart networking,也不会中断 SSH 连接。
确认你用的是 NetworkManager 管理网络
运行以下命令检查:
-
nmcli -t -f NAME,DEVICE,TYPE,STATE connection show --active—— 若有输出且 TYPE 是 ethernet/wifi、STATE 是 activated,说明当前连接正由 NetworkManager 管理 -
systemctl is-active NetworkManager—— 返回 active 即表示服务正在运行
如果返回 inactive 或命令报错 Command 'nmcli' not found,说明系统走的是传统配置文件(如 ifcfg-* 或 interfaces)路径,此时无法用 nmcli 刷新,需改用对应发行版的 reload 方式(如 ifdown && ifup 或 netplan apply)。
用 nmcli reload + up 一键生效新 IP
这是最稳妥、不中断连接的刷新方式,全程秒级完成:
- 先查清目标连接名:
nmcli connection show --active | grep ethernet或nmcli device status,找到 CONNECTION 列的名称(如 "Wired connection 1") - 若已通过
nmcli connection modify修改过 ipv4.addresses / ipv4.gateway / ipv4.dns 等参数,直接执行:nmcli connection reload && nmcli connection up "Wired connection 1" - 注意:连接名含空格必须加英文双引号;设备名(如 eth0)不用出现,nmcli 操作的是“连接”而非网卡设备
为什么不能用 down/up?
虽然 nmcli connection down && up 看似直观,但它会强制断开链路层连接:
- 远程 SSH 场景下极易失连,尤其在虚拟化或云主机中
- 而
reload + up会让 NetworkManager 内部判断是否需要重建链路——多数情况下复用现有连接,保持 TCP 会话稳定 - 修改仅涉及 IP、路由、DNS 等三层配置时,reload + up 几乎总是无缝的
验证新配置是否真正生效
别只看 nmcli 输出,要实测三层关键项:
- 查 IP:
ip addr show dev $(nmcli -g connection.interface-name connection show "Wired connection 1") - 查默认路由:
ip route | grep '^default' - 查 DNS:
grep nameserver /etc/resolv.conf,确认与nmcli connection show "Wired connection 1" | grep ipv4.dns一致


















