Ubuntu 22.04系统下使用Netplan配置静态IP的完整指南

0 次阅读

Ubuntu 22.04采用Netplan作为默认网络配置工具,通过YAML配置文件管理网络接口、IP地址、网关以及DNS等参数。相比传统的ifconfig或/etc/network/interfaces方式,Netplan提供了更加统一、灵活的网络管理方案,尤其适合服务器环境中的静态IP配置。

对于需要固定访问地址的服务器、虚拟机、云主机以及局域网设备而言,配置静态IP能够避免DHCP地址变化导致的服务不可用问题。本文将详细介绍Ubuntu 22.04系统下使用Netplan配置静态IP的方法,包括配置文件结构、参数说明、应用配置以及常见故障排查。

Ubuntu 22.04网络配置机制简介

Ubuntu 22.04默认使用Netplan管理网络配置,Netplan负责读取位于/etc/netplan/目录下的YAML配置文件,并根据配置生成对应的网络服务配置。

常见的Netplan配置文件名称包括:

Bash
/etc/netplan/00-installer-config.yaml

或者:

Bash
/etc/netplan/50-cloud-init.yaml

不同安装方式可能生成不同文件名称,例如:

  • 桌面版Ubuntu通常由NetworkManager管理网络;

  • Server版本通常使用systemd-networkd;

  • 云服务器环境可能由cloud-init生成配置。

查看当前Netplan配置文件:

Bash
ls /etc/netplan/

查看当前网络状态:

Bash
ip addr

或者:

Bash
networkctl status

查看网卡名称

配置静态IP之前,需要确认系统中的网络接口名称。

执行:

Bash
ip link

示例输出:

1: lo: 
2: ens33: 

其中:

ens33

就是需要配置的网卡名称。

不同环境中的网卡名称可能不同:

  • ens33

  • ens160

  • eth0

  • enp3s0

  • eno1

Netplan配置必须使用实际存在的接口名称,否则配置不会生效。

也可以使用:

Bash
nmcli device status

查看NetworkManager管理的设备。

编辑Netplan配置文件

进入配置目录:

Bash
cd /etc/netplan/

使用编辑器打开配置文件:

Bash
sudo vim 00-installer-config.yaml

Ubuntu 22.04静态IP配置示例如下:

YAML
network:
  version: 2
  ethernets:
    ens33:
      dhcp4: false
      addresses:
        - 192.168.1.100/24
      routes:
        - to: default
          via: 192.168.1.1
      nameservers:
        addresses:
          - 8.8.8.8
          - 114.114.114.114

保存后退出。

Netplan静态IP参数详细说明

version参数

YAML
version: 2

表示使用Netplan第二版本配置格式。

Ubuntu 18.04及之后版本默认使用version 2。


网卡配置

YAML
ethernets:
  ens33:

表示配置以太网设备ens33

如果你的网卡名称不同,需要替换为实际名称。

例如:

YAML
enp0s3:

禁用DHCP

YAML
dhcp4: false

关闭IPv4自动获取地址。

如果设置为:

YAML
dhcp4: true

系统会通过DHCP服务器自动获取IP。

静态IP环境必须关闭DHCP。


设置静态IP地址

YAML
addresses:
  - 192.168.1.100/24

其中:

192.168.1.100

表示服务器IP地址。

/24

表示子网掩码:

255.255.255.0

常见对应关系:

CIDR子网掩码
/24255.255.255.0
/16255.255.0.0
/8255.0.0.0

配置默认网关

Ubuntu 22.04推荐使用routes配置:

YAML
routes:
  - to: default
    via: 192.168.1.1

其中:

192.168.1.1

就是网关地址。

旧版本Netplan可能使用:

YAML
gateway4: 192.168.1.1

虽然仍然兼容,但Ubuntu 22.04中已经不推荐继续使用。


配置DNS服务器

示例:

YAML
nameservers:
  addresses:
    - 8.8.8.8
    - 114.114.114.114

常用DNS:

Google DNS:

8.8.8.8
8.8.4.4

国内公共DNS:

114.114.114.114
223.5.5.5

配置DNS后,可以解决服务器无法解析域名的问题。

使用Netplan应用配置

修改完成后,需要让配置生效。

执行:

Bash
sudo netplan apply

如果配置没有错误,网络会立即切换到新的静态IP。

为了避免远程服务器配置错误导致断网,可以先使用:

Bash
sudo netplan try

该命令会临时应用配置,并等待确认。

示例:

Do you want to keep these settings?

Press ENTER before the timeout to accept the new configuration

如果网络正常,按回车确认。

如果配置错误,系统会自动恢复旧配置。

验证静态IP是否生效

查看IP地址:

Bash
ip addr show ens33

正常情况下可以看到:

inet 192.168.1.100/24

检查默认路由:

Bash
ip route

输出类似:

default via 192.168.1.1 dev ens33

测试网关:

Bash
ping 192.168.1.1

测试公网连接:

Bash
ping 8.8.8.8

测试DNS:

Bash
ping www.baidu.com

如果IP可以访问但域名无法解析,通常是DNS配置问题。

Ubuntu 22.04配置多个IP地址

Netplan支持一个网卡绑定多个IP。

示例:

YAML
network:
  version: 2
  ethernets:
    ens33:
      dhcp4: false
      addresses:
        - 192.168.1.100/24
        - 192.168.1.101/24
      routes:
        - to: default
          via: 192.168.1.1
      nameservers:
        addresses:
          - 8.8.8.8

应用:

Bash
sudo netplan apply

查看:

Bash
ip addr

可以看到多个IPv4地址绑定到同一个接口。

配置静态IP时常见错误

1. YAML格式错误

Netplan严格依赖YAML缩进。

错误:

YAML
network:
version: 2
ethernets:
ens33:

正确:

YAML
network:
  version: 2
  ethernets:
    ens33:

注意:

  • 只能使用空格;

  • 不要使用Tab;

  • 层级缩进必须一致。

检查配置:

Bash
sudo netplan generate

如果有错误,会显示具体位置。


2. 网卡名称填写错误

例如配置:

YAML
ens33:

但实际网卡:

Bash
enp0s3

会导致配置无法生效。

查看:

Bash
ip link

确认名称。


3. 修改错误导致远程服务器断连

通过SSH连接服务器修改网络时,直接执行:

Bash
netplan apply

可能导致连接中断。

建议:

Bash
sudo netplan try

确认网络正常后再永久应用。


4. cloud-init覆盖Netplan配置

云服务器可能由cloud-init自动管理网络。

如果修改配置后重启失效,可以检查:

Bash
ls /etc/cloud/

关闭cloud-init网络管理:

创建文件:

Bash
sudo vim /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg

添加:

YAML
network:
  config: disabled

然后重新配置Netplan。

NetworkManager环境下配置静态IP

Ubuntu桌面版可能使用NetworkManager。

配置示例:

YAML
network:
  version: 2
  renderer: NetworkManager

指定NetworkManager作为后端。

应用:

Bash
sudo netplan apply

查看连接:

Bash
nmcli connection show

也可以通过图形界面:

设置 → 网络 → IPv4 → 手动

填写:

  • IP地址

  • 子网掩码

  • 网关

  • DNS

恢复DHCP自动获取IP

如果需要恢复自动获取地址,可以修改:

YAML
network:
  version: 2
  ethernets:
    ens33:
      dhcp4: true

然后执行:

Bash
sudo netplan apply

系统会重新通过DHCP获取地址。

Netplan配置最佳实践

在生产环境中配置静态IP时,建议遵循以下原则:

  1. 修改前备份配置文件:

Bash
sudo cp /etc/netplan/00-installer-config.yaml ~/netplan-backup.yaml
  1. 使用netplan try测试配置。

  2. 确认IP地址没有冲突。

  3. 保留正确DNS配置。

  4. 远程服务器操作时准备备用访问方式。

  5. 使用版本控制管理重要服务器配置。

常用Netplan命令汇总

查看配置:

Bash
ls /etc/netplan/

生成配置:

Bash
sudo netplan generate

测试配置:

Bash
sudo netplan try

应用配置:

Bash
sudo netplan apply

查看网络状态:

Bash
networkctl status

查看IP:

Bash
ip addr

查看路由:

Bash
ip route

总结

Ubuntu 22.04通过Netplan实现静态IP配置,核心流程包括确认网卡名称、修改YAML配置文件、设置IP地址、网关和DNS,然后使用netplan apply使配置生效。

相比传统网络配置方式,Netplan具有结构清晰、兼容性强、适合自动化管理等优势,非常适用于服务器、虚拟化环境以及云计算场景。掌握Netplan配置方法,可以快速完成Ubuntu系统网络规划,并有效解决IP固定、远程访问以及服务部署中的网络问题。