手把手教你用Netplan搞定Ubuntu Server双网卡配置(含静态IP与DHCP)
发布时间:2026/6/8 4:56:16
分类:文化教育
浏览:1234
)
深度解析Ubuntu Server双网卡配置Netplan实战指南在服务器运维和DevOps领域网络配置始终是基础却至关重要的环节。随着Ubuntu从18.04 LTS开始全面采用Netplan作为默认网络配置工具传统的/etc/network/interfaces方式已成为历史。Netplan以其简洁的YAML语法和强大的后端抽象能力支持systemd-networkd和NetworkManager为多网卡配置提供了更优雅的解决方案。本文将聚焦一个典型的生产环境场景为Ubuntu Server配置双网卡其中一个接口如ens33使用静态IP接入内网管理网络另一个接口ens34通过DHCP获取外网地址。这种架构既能保证管理通道的稳定性又能灵活适应外部网络变化常见于企业服务器、云主机和家庭实验室环境。1. 环境准备与基础概念在开始配置前我们需要明确几个关键点。首先Netplan的配置文件存放在/etc/netplan/目录下文件命名遵循XX-描述性名称.yaml的格式其中XX是两位数字决定了配置的应用顺序。对于多网卡场景合理的文件命名能确保网络接口按预期顺序初始化和配置。通过以下命令查看现有网络接口ip -c a典型输出可能如下1: lo: LOOPBACK,UP,LOWER_UP mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever 2: ens33: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 00:0c:29:3b:58:1e brd ff:ff:ff:ff:ff:ff inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic ens33 valid_lft 86300sec preferred_lft 86300sec 3: ens34: BROADCAST,MULTICAST mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 00:0c:29:3b:58:28 brd ff:ff:ff:ff:ff:ff注意在生产环境中建议先通过ip link set dev 接口名 down临时禁用接口避免配置过程中网络中断影响现有服务。2. 双网卡配置实战2.1 创建主配置文件进入配置目录并创建第一个网卡配置文件sudo nano /etc/netplan/01-internal-static.yaml以下是内网静态IP配置示例network: version: 2 renderer: networkd ethernets: ens33: addresses: - 192.168.1.100/24 routes: - to: 192.168.1.0/24 via: 192.168.1.1 metric: 100 nameservers: addresses: [8.8.8.8, 1.1.1.1] dhcp4: no optional: false关键参数说明参数说明示例值addressesIP地址及子网掩码CIDR格式192.168.1.100/24routes自定义路由表to指定目标网络via为网关metric路由优先级数值越小优先级越高dhcp4是否启用DHCPv4false表示静态IP2.2 配置DHCP接口创建第二个网卡配置文件sudo nano /etc/netplan/02-external-dhcp.yamlDHCP配置相对简单network: version: 2 renderer: networkd ethernets: ens34: dhcp4: true dhcp6: false optional: true提示将DHCP接口标记为optional: true可避免系统因DHCP获取失败而长时间等待这在笔记本等移动设备上特别有用。3. 高级路由配置当系统存在多个网络接口时默认路由的管理尤为关键。以下配置示例确保外网接口ens34作为默认网关network: version: 2 renderer: networkd ethernets: ens34: dhcp4: true routes: - to: default via: 自动获取 metric: 50路由策略要点metric值决定优先级数值越小优先级越高策略路由可通过routing-policy实现基于源地址的路由选择持久化路由Netplan配置会覆盖手动添加的临时路由验证路由表ip route show4. 配置验证与故障排除Netplan提供了完善的测试和应用机制试运行模式会超时回滚sudo netplan try --timeout 30直接应用配置sudo netplan apply调试模式显示详细处理过程sudo netplan --debug apply常见问题排查命令检查网络接口状态networkctl list查看特定接口详情networkctl status ens33检查DHCP获取情况journalctl -u systemd-networkd -f当遇到配置错误时Netplan通常会给出明确的YAML解析错误提示。特别注意YAML对缩进敏感必须使用空格而非Tab每个层级需要正确对齐冒号后需有空格5. 生产环境最佳实践在多网卡服务器部署中以下几点经验值得注意接口命名稳定性使用udev规则或netplan的match功能确保接口名称持久化示例network: version: 2 renderer: networkd ethernets: eth-internal: match: macaddress: 00:0c:29:3b:58:1e set-name: eth-internal addresses: [192.168.1.100/24]冗余与绑定Netplan支持多种网络绑定模式bonds: bond0: interfaces: [ens33, ens34] parameters: mode: 802.3ad mii-monitor-interval: 100配置片段管理使用include指令组织复杂配置通过//添加YAML注释说明关键配置项版本控制集成将/etc/netplan/纳入Git等版本控制系统部署前使用netplan generate验证配置有效性6. 性能调优与安全加固针对高负载服务器环境可考虑以下优化网络参数调优ethernets: ens33: mtu: 9000 offload: rx: on tx: on sg: on tso: on gso: on gro: on安全增强配置ethernets: ens33: accept-ra: false ipv6-privacy: true dhcp4-overrides: use-dns: false use-domains: falseQoS策略示例network: version: 2 renderer: networkd ethernets: ens33: routes: - to: 0.0.0.0/0 via: 192.168.1.1 on-link: true routing-policy: - from: 192.168.1.100 table: 100 tc: qdiscs: - kind: fq_codel root: true在实际部署中我们发现Netplan的YAML配置虽然初期学习曲线略陡但一旦掌握后其配置效率和可维护性远超传统方式。特别是在需要批量部署相同网络配置的服务器集群中Netplan配置文件的复用性表现出色。