netplan.md 3.1 KB

title: netplan author: Gamehu date: 2025-08-29 16:56:08 tags:

  • netplan categories:
  • 工作 ---
    Linux netplan
  • 初创团队,各方面有限,我们是saas+硬件,但是我们只有单个公网IP、一个一级域名,所以为了短时间适配生产、研发、测试三个环境,同时支持SaaS+硬件通信,我们需要做前端入口的流量管理,团队的小伙伴选择了OPNsense。 这一篇是我为了了解该技术方案而简单整理的。

解决Ubuntu Server 24.04删除网卡后的Netplan问题

引言

在Ubuntu Server 24.04中,Netplan是默认的网络配置工具,使用YAML文件管理网络设置。最近,我在虚拟机中配置了双网卡(一张内网,一张外网),但删除一张网卡后,网络无法正常工作。经过调试,我通过手动更新Netplan配置文件解决了问题,以下是我的经验分享。

问题描述

我的虚拟机最初配置了两张网卡:enp0s3(外网,静态IP)用于访问外部网络,enp0s8(内网,DHCP)用于本地通信。删除enp0s8后,运行netplan apply没有生效,ip a显示enp0s3未正确分配IP。日志(journalctl -u systemd-networkd)提示Netplan仍尝试配置已删除的网卡。

4: ens38: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 00:30:26:8c:78:57 brd ff:ff:ff:ff:ff:ff

解决方案

以下是解决步骤:

  1. 启动网卡

    ip link set ens38 up
    
  2. 检查现有Netplan配置
    查看/etc/netplan/目录中的配置文件(通常为00-installer-config.yaml)。原始配置如下:

    network:
     version: 2
     ethernets:
       enp0s3:
         dhcp4: no
         addresses: [172.162.1.100/24]
         gateway4: 172.162.1.1
         nameservers:
           addresses: [8.8.8.8, 8.8.4.4]
       enp0s8:
         dhcp4: yes
    
  3. 更新配置文件
    删除enp0s8相关配置,仅保留enp0s3。修改后的文件如下:

    network:
     version: 2
     ethernets:
       enp0s3:
         dhcp4: no
         addresses: [172.162.1.100/24]
         gateway4: 172.162.1.1
         nameservers:
           addresses: [8.8.8.8, 8.8.4.4]
    

注意:确保YAML缩进为2个空格,避免格式错误。

  1. 验证并应用配置
    检查配置语法:

    sudo netplan --debug apply
    

    确认无错误后,应用配置:

    sudo netplan apply
    
  2. 测试网络
    验证接口状态和连通性:

    ip a
    ping 8.8.8.8
    
  3. 检查日志
    如果仍不生效,查看日志:

    journalctl -u systemd-networkd
    

总结

删除虚拟机网卡后,Netplan不会自动更新配置,需手动移除无效网卡的配置条目。关键是检查YAML文件、确保格式正确,并使用netplan --debug apply定位问题。在多网卡场景下,建议定期验证网卡名称(ip link)和配置文件一致性。遇到类似问题?欢迎留言分享你的经验!