Ubuntu 24.04下如何彻底移除指定网络接口(涉及Netplan与Cloud-init问题)
看起来你遇到了Ubuntu 24.04里网络接口顽固残留的头疼问题——明明删了Netplan配置、卸了cloud-init,重启后那个enP26388s1还是冒出来,甚至直接删除接口还提示不支持。我来帮你一步步解决这个事儿:
第一步:先搞清楚这个接口的“真实身份”
首先得确认这个enP26388s1到底是物理网卡的别名、虚拟接口,还是系统识别出的重复命名。咱们跑两个命令看看:
- 查看接口详细信息:
ip link show enP26388s1,注意看输出里的link/etherMAC地址,和eth0对比是不是完全一致; - 扫描硬件网卡:
sudo lshw -C network,看看有没有两个同名或同MAC的网卡条目,确认它是不是同一个物理设备的重复识别。
如果是同一个物理网卡的不同命名,那问题大概率出在网卡命名规则或者udev配置上;如果是虚拟接口,那可能是cloud-init或者其他服务残留的配置。
第二步:彻底清理Cloud-init的残留
虽然你已经卸载了cloud-init,但它可能留下了不少配置文件,这些文件重启后可能会重新生成接口配置。咱们把残留彻底清掉:
- 彻底卸载cloud-init(连配置文件一起删):
sudo apt purge cloud-init && sudo apt autoremove --purge - 删除cloud-init的残留目录:
sudo rm -rf /etc/cloud /var/lib/cloud
第三步:确保Netplan里完全没有这个接口的配置
检查/etc/netplan目录下的所有yaml文件(不止50-cloud-init.yaml),确保没有任何关于enP26388s1的配置条目。确认后,重新生成并应用Netplan配置:
sudo netplan generate && sudo netplan apply
第四步:修正Udev网卡命名规则
Ubuntu现在用udev来管理网卡命名,有时候会出现同一个物理网卡被识别出多个名字的情况。咱们可以通过两种方式处理:
方式一:删除重复的udev规则
查看是否存在网卡持久化规则文件:/etc/udev/rules.d/70-persistent-net.rules,如果里面有enP26388s1的条目,直接删掉对应的行,保存后重启机器。
方式二:强制使用传统网卡命名(可选)
如果不想用复杂的网卡命名,咱们可以强制系统回到eth0这种传统命名方式,这样就能避免重复命名的问题:
- 编辑
/etc/default/grub文件,找到GRUB_CMDLINE_LINUX这一行,添加net.ifnames=0 biosdevname=0,修改后看起来像这样:GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0" - 更新grub配置:
sudo update-grub - 重启机器,此时网卡会统一用
eth0这种命名,enP26388s1就不会再出现了。
第五步:禁用接口自动启用(兜底方案)
如果以上步骤都没解决,咱们可以设置开机自动禁用这个接口:
- 创建一个systemd服务文件
/etc/systemd/system/disable-enP26388s1.service,内容如下:[Unit] Description=Disable enP26388s1 interface After=network.target [Service] Type=oneshot ExecStart=/usr/sbin/ip link set enP26388s1 down RemainAfterExit=yes [Install] WantedBy=multi-user.target - 启用这个服务:
sudo systemctl enable disable-enP26388s1.service
这样每次开机后,系统都会自动把这个接口禁用掉。
最后重启机器,再用ip link show检查,那个烦人的enP26388s1应该就彻底消失或者被禁用了。
备注:内容来源于stack exchange,提问作者Shaun Forsyth




