Ubuntu 配了 netplan 固定 IP,apply 后旧 IP 还在,怎么切过来?

netplan apply 之后旧 IP 还在,多数不是配置写错了,而是旧 IP 的来源不在 netplan 管辖之内。Ubuntu 服务器上 netplan 只是「声明层」,真正接管网卡的是它背后的 NetworkManager(或 systemd-networkd)。如果这块网卡以前用图形界面或 nmcli 配过,NetworkManager 里会存着一份旧的连接档案,netplan apply 只管 netplan 配置文件里声明的连接,旧档案仍在接管网卡,旧 IP 就一直挂着。

处理步骤

  1. ip addr show 确认网卡现状:是新旧两个 IP 并存,还是只有旧 IP 在;
  2. nmcli connection show 列出 NetworkManager 保存的所有连接档案,找到 DEVICE 列正接管这块网卡的那一条(名字通常是「有线连接 1」这类);
  3. nmcli connection down "档案名" 把旧档案停掉——网卡回到无配置状态;
  4. 再执行一次 netplan apply(拿不准可以用 netplan try,它给一个确认窗口,出问题自动回滚,远程改网卡配置时更稳妥);
  5. ip addr show 复核只剩新 IP,ip route 确认默认网关也换了;
  6. 顽固残留可以把旧档案直接删掉:nmcli connection delete "档案名"——删之前把里面的参数记下来,留个回退依据。

为什么会这样

netplan 的配置文件(/etc/netplan/ 下的 yaml)里有一项 renderer,声明这块网卡交给谁去落地——服务器桌面环境装了 NetworkManager 时,历史遗留的连接档案就存在那里,netplan 不会主动去清它们。于是出现「声明层说该是 A,执行层还留着 B」的双头局面,网卡上两个 IP 轮流坐庄也就不奇怪了。理解了这个分层,nmcli connection show 的输出就很好读:DEVICE 列非空的档案,就是正在接管网卡的那一份。

相关提示

  • 远程改网卡配置是高危操作,动手前先留好带外通道或控制台通道,SSH 断了还有路进去;
  • Ubuntu 的 netplan 与 RHEL 系的 ifcfg/连接档案是两套体系,混着管一块网卡就会出现这种「两个来源抢一块卡」的局面,原则是一块卡只归一套配置管;
  • 多网卡服务器(云主机双网卡、业务/管理分离场景)逐块核对,改完一块验证一块,不要攒到最后一起 apply;
  • 改完务必从另一台机器实际连一次验证,本机看得见 IP 不等于链路通。

服务器网卡配置整理这类活儿涉及业务窗口,需要帮企业做同类变更可以联系我们。


企业存储选型参考|贵州诚鑫致达科技

企业数据存储与备份,可参考群晖在售机型:DS425+(4 盘位起步)· RS2423+(12 盘位机架式进阶)。企业存储规划与后续运维,搜「诚鑫致达」能找到我们。