全球服务器测评

Ubuntu服务器网络配置使用Netplan实现DHCP自动获取与静态IP固定部署

在Linux服务器运维工作中,网络配置属于最基础也是最重要的管理内容之一。无论是企业内部业务系统、云服务器环境、网站托管平台,还是数据库服务器部署,都需要依赖稳定可靠的网络连接才能正常运行。

对于长期使用CentOS系统的运维人员来说,早期网络配置通常依赖ifconfig、network-scripts以及相关配置文件进行管理。然而从Ubuntu 18.04开始,Canonical正式引入Netplan作为默认网络管理工具,并逐渐取代传统网络配置方式。如今Ubuntu 20.04、Ubuntu 22.04、Ubuntu 24.04等主流版本均采用Netplan管理网络接口。

很多刚接触Ubuntu服务器的用户,在第一次修改IP地址时往往会感到不适应。以前修改一个配置文件即可完成操作,现在却需要了解YAML语法、renderer机制以及网络服务之间的关系。如果操作不当,甚至可能导致服务器失联。

本文将围绕Netplan的工作原理、DHCP配置方法、静态IP设置方法、DNS配置技巧、网络故障排查以及生产环境最佳实践进行详细讲解,帮助运维人员全面掌握Ubuntu服务器网络管理。

为什么Ubuntu开始使用Netplan

在理解配置方法之前,需要先了解Netplan存在的意义。

早期Linux发行版使用大量不同的网络管理工具,不同发行版之间的配置方式差异较大。例如:

CentOS使用network-scripts;

Debian使用interfaces;

Ubuntu桌面版使用NetworkManager;

Ubuntu服务器版使用systemd-networkd。

这种碎片化管理方式增加了运维难度。

Netplan本质上是一层抽象配置框架。

管理员只需要编写统一格式的YAML配置文件,Netplan会自动生成对应的底层配置,并交给NetworkManager或systemd-networkd执行。

这种设计带来了多个优势。

首先是统一管理。

无论服务器版还是桌面版,都采用相同配置逻辑。

其次是配置简洁。

传统配置文件往往需要填写大量参数,而Netplan使用YAML结构化语法,逻辑更加清晰。

最后是自动适配。

同一份配置文件可以适配不同网络后端,大大提升了兼容性。

查看当前网络环境

修改网络之前,首先应该确认服务器当前状态。

查看网卡信息:

ip addr

查看路由信息:

ip route

查看DNS配置:

resolvectl status

查看网络接口名称:

ip link show

常见输出如下:

ens33
ens160
eth0
enp1s0

需要注意的是,新版本Ubuntu已经不再采用传统eth0命名方式,而是采用Predictable Network Interface Names机制。

因此实际网卡名称可能与教程中的示例不同。

Netplan配置文件位置

Netplan配置文件统一存放在:

/etc/netplan/

查看目录内容:

ls /etc/netplan/

常见文件名称包括:

00-installer-config.yaml
01-network-manager-all.yaml
50-cloud-init.yaml

云服务器最常见的是:

50-cloud-init.yaml

打开配置文件:

sudo nano /etc/netplan/50-cloud-init.yaml

或者:

sudo vim /etc/netplan/50-cloud-init.yaml

修改前建议先备份。

sudo cp 50-cloud-init.yaml 50-cloud-init.yaml.bak

这样即使配置错误,也能够快速恢复。

DHCP自动获取IP配置方法

DHCP是最常见的网络获取方式。

路由器或DHCP服务器会自动向客户端分配:

IP地址;

子网掩码;

网关;

DNS服务器。

这种方式适用于:

办公网络;

家庭网络;

测试环境;

自动化部署环境。

典型配置如下:

network:
  version: 2
  renderer: networkd

  ethernets:
    ens33:
      dhcp4: true

参数说明:

version表示Netplan配置版本;

renderer表示底层网络服务;

ethernets表示有线网络;

ens33表示网卡名称;

dhcp4表示启用IPv4 DHCP。

保存后执行:

sudo netplan generate

检查语法:

sudo netplan try

如果网络正常:

sudo netplan apply

查看获取到的IP:

ip addr

查看默认路由:

ip route

如果能够看到自动分配的地址,说明DHCP配置成功。

DHCP同时指定DNS服务器

有些情况下不希望使用运营商DNS。

例如:

Google DNS

Cloudflare DNS

阿里DNS

腾讯DNS

可以在DHCP基础上覆盖DNS配置。

示例:

network:
  version: 2
  renderer: networkd

  ethernets:
    ens33:
      dhcp4: true

      nameservers:
        addresses:
          - 8.8.8.8
          - 8.8.4.4

应用配置:

sudo netplan apply

验证:

resolvectl status

配置静态IP地址

服务器生产环境通常使用固定IP。

因为数据库、网站、监控系统以及防火墙策略都依赖稳定地址。

静态IP配置示例:

network:
  version: 2
  renderer: networkd

  ethernets:
    ens33:
      dhcp4: false

      addresses:
        - 192.168.1.100/24

      routes:
        - to: default
          via: 192.168.1.1

      nameservers:
        addresses:
          - 8.8.8.8
          - 1.1.1.1

参数说明:

192.168.1.100为服务器IP;

24表示255.255.255.0子网掩码;

192.168.1.1为默认网关;

8.8.8.8和1.1.1.1为DNS服务器。

配置完成后执行:

sudo netplan apply

测试网络:

ping 8.8.8.8

测试域名解析:

ping google.com

如果两项均正常,则静态IP配置成功。

配置多个DNS服务器

为了提高解析稳定性,建议配置多个DNS。

例如:

nameservers:
  addresses:
    - 223.5.5.5
    - 223.6.6.6
    - 119.29.29.29
    - 8.8.8.8

这样当某个DNS不可用时,系统会自动切换。

对于网站服务器来说,可以有效降低解析失败风险。

配置多个IP地址

部分业务需要绑定多个IP。

例如:

多个网站;

邮件服务器;

代理服务;

负载均衡节点。

配置方式如下:

addresses:
  - 192.168.1.100/24
  - 192.168.1.101/24
  - 192.168.1.102/24

应用后查看:

ip addr

即可看到多个地址同时绑定到同一网卡。

配置双网卡网络

企业环境经常存在内外网隔离场景。

例如:

ens33连接公网;

ens34连接内网。

配置示例:

network:
  version: 2
  renderer: networkd

  ethernets:

    ens33:
      addresses:
        - 10.0.0.100/24
      routes:
        - to: default
          via: 10.0.0.1

    ens34:
      addresses:
        - 192.168.100.10/24

这样即可实现双网卡独立通信。

使用Netplan Try避免远程失联

远程修改网络最大的风险就是服务器断连。

推荐使用:

sudo netplan try

系统会进入测试模式。

如果配置有问题导致连接中断,120秒后自动回滚。

远程管理服务器时,这个功能非常重要。

能够避免因为配置错误而失去SSH连接。

YAML语法常见错误

大量Netplan故障实际上并非网络问题,而是YAML格式错误。

例如:

错误示例:

network:
version: 2
renderer: networkd

正确格式:

network:
  version: 2
  renderer: networkd

YAML严格依赖缩进。

建议统一使用两个空格。

不要混用Tab和空格。

检查配置:

sudo netplan generate

出现报错时优先检查缩进格式。

Netplan常见故障排查

无法获取IP地址

检查网卡名称:

ip link

确认配置文件中的网卡名称是否正确。

DNS无法解析

检查:

resolvectl status

查看DNS服务器是否生效。

尝试:

ping 8.8.8.8

如果能通而域名不通,通常是DNS问题。

网关配置错误

查看路由:

ip route

正常输出应包含:

default via 192.168.1.1

如果缺失默认路由,将无法访问外网。

Netplan配置报错

验证:

sudo netplan generate

系统会显示具体错误位置。

根据提示修正即可。

Cloud Server环境注意事项

阿里云、腾讯云、AWS、Google Cloud等云服务器通常使用Cloud-init自动生成网络配置。

配置文件一般为:

50-cloud-init.yaml

如果直接修改后发现重启失效,说明Cloud-init重新覆盖了配置。

可以创建:

/etc/cloud/cloud.cfg.d/99-disable-network-config.cfg

内容:

network:
  config: disabled

然后重新配置Netplan。

这样Cloud-init将不再自动修改网络配置。

生产环境网络配置建议

对于正式服务器,建议遵循以下原则。

第一,不要直接在业务高峰期修改网络。

第二,修改前必须备份配置文件。

第三,优先使用netplan try验证。

第四,DNS至少配置两个以上。

第五,重要服务器保留带外管理通道。

第六,记录每次变更日志。

第七,配置完成后进行连通性测试。

规范的变更流程能够显著降低运维事故发生概率。

随着Ubuntu逐渐成为云计算和服务器部署领域的重要操作系统,Netplan已经成为运维人员必须掌握的网络管理工具。从DHCP自动获取IP到静态地址部署,从DNS优化到多网卡配置,绝大多数网络管理需求都可以通过Netplan完成。

对于日常运维工作而言,真正重要的不仅仅是会写配置文件,更要理解网络参数之间的关系,掌握配置验证和故障排查方法。只有这样,在面对服务器迁移、业务扩容、网络调整以及云平台部署时,才能快速完成配置并保证业务稳定运行。

熟练掌握Netplan之后,Ubuntu服务器的网络管理将变得更加规范、高效,也能够为后续学习路由配置、VLAN部署、容器网络以及云原生网络架构打下扎实基础。

未经允许不得转载:全球服务器测评 » Ubuntu服务器网络配置使用Netplan实现DHCP自动获取与静态IP固定部署