0

Ubuntu netplan静态IP配置实例:从入门到生产环境的完整实战指南

2026.05.23 | youres | 23次围观

在Ubuntu系统中,网络配置经历了从/etc/network/interfaces到netplan的演变。如果你还在用老办法配静态IP,是时候了解一下netplan了——它用YAML格式声明网络状态,语法简洁,结构清晰,不管是入门还是生产环境都能应付得来。

什么是netplan?为什么用它?

netplan是Ubuntu 18.04 LTS之后默认的网络配置工具。它的工作方式很直接:你写一个YAML配置文件,netplan根据这份配置生成对应的网络管理器的配置,让systemd-networkd或NetworkManager去实际执行。

这样做的好处是统一了配置入口——不管你用哪个后端,配置文件格式是一样的。对于习惯用YAML的人来说,netplan比传统的ifcfg方式友好得多。

netplan配置文件基础结构

netplan的配置文件放在/etc/netplan/目录下,文件名通常是00-installer-config.yaml。下面是一个最简单的静态IP配置示例:

network:
  version: 2
  renderer: networkd
  ethernets:
    ens33:
      addresses:
        - 192.168.1.100/24
      gateway4: 192.168.1.1
      nameservers:
        addresses:
          - 8.8.8.8
          - 8.8.4.4

逐行解释一下:

  • version: 2 表示使用netplan配置格式版本2
  • renderer 指定后端,服务器环境通常用networkd
  • ethernets 下面跟网卡名,ens33需要替换成你实际的网卡名
  • addresses 用CIDR格式写IP地址
  • gateway4 是IPv4网关
  • nameservers 配置DNS服务器

查找网卡名:第一步必须做的事

配置之前,你得先确认网卡的真实名称。Ubuntu 18.04之后网卡命名规则变了,不再是固定的eth0,需要用命令查:

ip a

会看到类似这样的输出:

1: lo: <LOOPBACK,UP> lo
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP>
    link/ether 00:0c:29:6b:4a:3e brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.101/24 brd 192.168.1.255

这里网卡名是ens33,当前分配了192.168.1.101/24。记住这个名字,后面配置时要替换进去。

单网卡静态IP配置实例

假设你的服务器信息如下:

  • 网卡:ens33
  • IP:192.168.1.100/24
  • 网关:192.168.1.1
  • DNS:223.5.5.5(阿里DNS)
network:
  version: 2
  renderer: networkd
  ethernets:
    ens33:
      addresses:
        - 192.168.1.100/24
      gateway4: 192.168.1.1
      nameservers:
        addresses:
          - 223.5.5.5
          - 119.29.29.29

保存到/etc/netplan/01-netcfg.yaml,然后执行:

sudo netplan generate
sudo netplan apply

如果配置有问题导致网络断开,用IPMI或VNC先连上服务器改回来。生产环境建议先在测试机验证。

双网卡配置:同时配内网和外网

生产环境中服务器通常有两个网卡——一个走内网,一个走公网。netplan支持在一个文件里声明多个网卡:

network:
  version: 2
  renderer: networkd
  ethernets:
    ens33:
      addresses:
        - 10.0.0.100/24
      routes:
        - to: 0.0.0.0/0
          via: 10.0.0.1
      nameservers:
        addresses:
          - 223.5.5.5
    ens34:
      addresses:
        - 192.168.1.100/24

这里ens33走内网网关10.0.0.1,而ens34不需要默认路由。注意用routes替代了gateway4,因为在多网卡场景下指定默认路由需要精确控制。

DHCP配置:快速上手

如果你只需要DHCP自动获取IP,配置更简单:

network:
  version: 2
  renderer: networkd
  ethernets:
    ens33:
      dhcp4: yes

执行sudo netplan apply后,网卡会自动获取IP地址。

常用配置参数汇总

下面整理了netplan静态IP配置中频率最高的参数:

参数说明示例
addresses静态IP地址(CIDR格式)["192.168.1.100/24"]
gateway4IPv4默认网关192.168.1.1
dhcp4是否启用DHCPyes / no
nameservers.addressesDNS服务器列表["8.8.8.8","223.5.5.5"]
nameservers.searchDNS搜索域["local"]
routes.to目标网络0.0.0.0/0
routes.via下一跳地址192.168.1.1
routes.metric路由优先级(数值越小越优先)100

配置生效后如何验证

执行完netplan apply后,用以下命令验证网络是否正常:

# 查看IP配置
ip a show ens33

# 查看路由表
ip route show

# 测试网关连通性
ping -c 3 192.168.1.1

# 测试DNS解析
ping -c 3 baidu.com

四步全部通过,说明静态IP配置成功。如果ping不通,先检查IP和网关是否写对,再检查防火墙规则。

配置出错如何回退

netplan的配置会覆盖系统原有的网络配置。如果apply之后网络不通,先切回命令行手动配置:

sudo ip addr add 192.168.1.100/24 dev ens33
sudo ip route add default via 192.168.1.1 dev ens33

临时恢复网络后,再去修改YAML文件,修改正确后再次apply。

多路由优先级配置实例

有些场景下需要精细控制路由优先级,比如服务器有多条出口:

network:
  version: 2
  renderer: networkd
  ethernets:
    ens33:
      addresses:
        - 192.168.1.100/24
      routes:
        - to: 0.0.0.0/0
          via: 192.168.1.1
          metric: 100
    ens34:
      addresses:
        - 10.0.0.100/24
      routes:
        - to: 10.0.0.0/16
          via: 10.0.0.1
          metric: 200

通过metric参数控制优先级,数值越小优先级越高。在有多网卡的服务器上,这个配置很实用。

结尾

netplan把Ubuntu的网络配置统一到了YAML这个入口上,语法简洁、可读性强,熟练之后比传统的interfaces方式效率高很多。记住几个要点:网卡名用ip a确认,配置文件在/etc/netplan/,改完后必须执行netplan apply才能生效。生产环境部署前,建议先在测试机验证完整流程。


相关推荐:

版权声明

本文仅代表个人观点。
本文系AI辅助作者原创,未经许可,转载请保留原文链接。

发表评论