Ubuntu 网络配置:基于 Netplan 的完整指南
概述
在 Ubuntu 系统中,网络配置工具历经迭代,自 Ubuntu 17.10(Artful Aardvark) 起,Netplan 正式取代传统的 ifupdown(如 ifconfig、/etc/network/interfaces),成为默认的网络配置工具。它通过简洁的 YAML 配置文件定义网络接口参数,再借助 systemd-networkd 或 NetworkManager 等后端渲染器应用配置,大幅简化了复杂网络环境的设置流程,尤其适合服务器场景下的静态 IP 配置、路由管理等需求。
一、核心配置文件路径
Netplan 的配置文件默认存放于 /etc/netplan/ 目录下,文件名通常以数字前缀开头(用于定义配置优先级),常见命名如 50-cloud-init.yaml(云环境部署默认生成)或 01-network-manager-all.yaml(桌面版默认)。
编辑配置文件需使用管理员权限,推荐用 vi 或 nano 打开:
sudo vi /etc/netplan/50-cloud-init.yaml
二、静态 IP 配置示例(YAML 语法)
以下是典型的有线网卡(接口名 enp0s5)静态 IP 配置,包含 IP 地址、默认网关、DNS 服务器等关键参数。需注意 YAML 语法对缩进严格敏感(建议用 2 个空格缩进,不可用 Tab):
network:
version: 2 # 固定配置版本号,当前主流为 version 2
renderer: networkd # 指定后端渲染器:server 用 networkd,桌面版建议用 NetworkManager
ethernets: # 配置有线网卡(无线网卡需用 wifis 字段)
enp0s5: # 网卡接口名(可通过 `ip addr` 命令查看)
dhcp4: no # 禁用 IPv4 动态获取(开启为 yes)
addresses: # 配置静态 IPv4 地址(格式:IP/子网掩码)
- 10.211.55.100/24
routes: # 配置默认网关
- to: default # 表示“所有默认流量”
via: 10.211.55.1 # 网关地址(需与本地网段匹配)
nameservers: # 配置 DNS 服务器(优先用公共 DNS 如 8.8.8.8、114.114.114.114)
addresses:
- 8.8.8.8
- 114.114.114.114 # 可选:添加备用 DNS 提高稳定性
三、配置生效与验证
Netplan 提供两种应用配置的方式,推荐先通过 try 命令测试(避免配置错误导致网络中断),确认无误后再正式应用。
1. 测试配置(安全模式)
sudo netplan try
执行后会临时应用配置,并提示 “按 Enter 确认,或等待 120 秒自动回滚”。若测试期间网络正常(如能 ping 通网关或外网),按 Enter 保存配置;若网络中断,无需操作,系统会自动恢复原配置。
2. 正式应用配置
测试无误后,执行以下命令永久应用配置(无需重启系统):
sudo netplan apply
3. 验证配置结果
通过以下命令确认网络参数是否生效:
- 查看 IP 地址:ip addr show enp0s5(确认静态 IP 已正确分配)
- 测试网关连通性:ping 10.211.55.1(网关地址需与配置一致)
- 测试外网连通性:ping 8.8.8.8(验证 DNS 与路由是否正常)
- 查看 DNS 配置:cat /etc/resolv.conf(确认 DNS 服务器已正确写入)
四、常见注意事项
- 网卡接口名确认:若不确定网卡名,执行 ip addr 或 ip link 查看,避免因接口名错误导致配置失效(如 enp0s3、eth0 等,不同机器可能不同)。
- YAML 语法规范:冒号 : 后需加空格(如 dhcp4: no 而非 dhcp4:no),列表项(如 addresses、nameservers)需用 - 开头并正确缩进,语法错误会导致配置无法加载。
- 桌面版与服务器版差异:桌面版 Ubuntu 默认用 NetworkManager 管理网络(图形化界面),配置时需将 renderer 设为 NetworkManager;服务器版无图形界面,默认用 networkd,无需修改。
- 多网卡配置:若需配置多个网卡,在 ethernets 下新增接口配置即可(如新增 enp0s6 字段,格式与 enp0s5 一致)。
通过以上步骤,即可在 Ubuntu 系统中快速完成基于 Netplan 的网络配置,适用于服务器部署、开发环境搭建等场景。