ubuntu 20.04/24.04多网卡netplan配置需按用途区分网卡、禁用dhcp、用routes替代gateway4、单默认路由、严格yaml缩进;确认网卡名后,通过netplan try/apply生效并ip route/nslookup验证。

在 Ubuntu 系统(尤其是 20.04 及更新版本,含 24.04)中,通过 Netplan 的 YAML 配置文件精准定义多网卡 IP 参数,核心在于:每个网卡独立声明、路由按需分配、DNS 统一或分设、严格遵循 YAML 语法。不是简单复制粘贴,而是按角色区分网卡用途(如内网通信、外网出口、管理通道),再逐项配置。
确认所有网卡名称并区分用途
运行 ip -br link show up 或 ip addr,列出当前启用的以太网接口(如 ens33、enp0s8、eno1)。不要依赖旧名 eth0 —— 新系统普遍使用可预测命名规则。记下每个网卡的物理连接场景,例如:
- ens33 接公司内网交换机(仅访问 192.168.10.0/24)
- enp0s8 接宽带路由器(需上网、设默认网关)
- eno1 专用于运维管理(固定 IP 10.0.100.50/24,不配默认路由)
编写多网卡 YAML 配置文件(/etc/netplan/*.yaml)
进入 /etc/netplan/ 目录,用 sudo nano 01-multi-nic.yaml 创建新配置(推荐数字前缀+描述性文件名)。关键结构如下:
- 根层级写 network:,缩进两个空格后写 version: 2
- 指定 renderer: networkd(服务器环境更稳定;桌面版若需 WiFi 或热插拔,可用 NetworkManager)
- ethernets: 下逐个定义网卡,每块网卡名顶格对齐,其子项统一缩进两个空格
- 每块网卡必须设 dhcp4: false,禁用 DHCP
- addresses: 使用列表格式(- 192.168.10.10/24),支持多个 IP(如同时配 IPv4 和 IPv6)
- 只允许一个网卡配置 to: default 路由(即默认网关),其他网卡用具体目标网段(如 to: 192.168.20.0/24)
- DNS 可全局写在根层级 nameservers:,也可为单网卡单独配(优先级更高)
典型双网卡静态配置示例(含内外网分离)
以下配置让 enp0s8 负责上网,ens33 仅通内网,互不干扰:
使用ydata-profiling(前身为pandas-profiling)生成全面的数据质量报告,包含相关性分析、缺失值模式和基数检测。导出交互式HTML仪表板和JSON摘要。
network:
version: 2
renderer: networkd
nameservers:
addresses: [114.114.114.114, 8.8.8.8]
ethernets:
enp0s8:
dhcp4: false
addresses: [203.0.113.45/24]
routes:
- to: default
via: 203.0.113.1
metric: 100
nameservers:
addresses: [203.0.113.1]
ens33:
dhcp4: false
addresses: [192.168.10.10/24]
routes:
- to: 192.168.20.0/24
via: 192.168.10.1
- to: 10.0.0.0/8
via: 192.168.10.1
注意:gateway4 已弃用,Ubuntu 24.04 必须用 routes 定义网关;metric 值越小越优先,避免多默认路由冲突。
安全应用配置并验证结果
保存文件后,执行三步检查:
- sudo netplan generate:检查语法是否合法,无输出即通过
- sudo netplan try:临时应用,120 秒内无操作自动回滚,适合远程操作
- sudo netplan apply:正式生效(若用 try 成功,可跳过此步)
验证命令:
- ip addr show 确认各网卡 IP 是否正确绑定
- ip route show 查看路由表,确认 default 是否指向预期网卡
- ping -I ens33 192.168.10.1 指定源接口测试连通性
- nslookup ubuntu.com 验证 DNS 解析是否走对了 nameservers










