别再为Ubuntu 18.04多网卡上网发愁了!保姆级netplan配置教程,永久设置有线/无线优先级 Ubuntu 18.04多网卡优先级管理Netplan实战指南在开发环境或服务器部署中我们常常遇到这样的场景一台Ubuntu 18.04主机需要同时通过有线网络连接内网资源又需要通过无线网络访问互联网。当系统同时激活多个网络接口时默认的路由选择机制可能导致网络访问异常——比如无法通过浏览器上网或者apt-get无法下载软件包。本文将深入解析如何通过Netplan实现网络接口的优先级管理确保关键流量始终走指定路径。1. 理解网络优先级的核心机制路由metric值是决定网络接口优先级的核心参数。这个1-9999的整数值代表了系统对某条路由路径的成本评估metric值越小优先级越高。当目标地址匹配多条路由时系统会自动选择metric最低的路径。在典型的双网卡场景中有线网络如eno1通常连接企业内网需要访问本地服务器和资源无线网络如wlp3s0连接互联网用于软件更新和外部访问若两者metric相同常见默认值100系统可能出现内网访问走无线网关导致延迟增加外网访问走有线网关造成连接失败接口间产生路由竞争引发间歇性断网通过route -n命令可查看当前路由表及metric分配$ route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0 eno1 0.0.0.0 10.0.0.1 0.0.0.0 UG 600 0 0 wlp3s0关键观察点默认路由0.0.0.0对应的Gateway和Metric值这决定了出口流量的实际路径2. Netplan配置基础解析作为Ubuntu 18.04及之后版本的默认网络配置工具Netplan采用YAML格式的配置文件取代了传统的/etc/network/interfaces。其核心优势在于声明式配置只需描述期望的网络状态无需编写复杂脚本后端无关支持networkd和NetworkManager两种渲染器原子应用通过netplan try提供配置回滚保护典型配置文件位于/etc/netplan/目录常见命名如50-cloud-init.yaml云环境01-netcfg.yaml物理机基础结构示例如下network: version: 2 renderer: networkd ethernets: eno1: dhcp4: true dhcp4-overrides: route-metric: 200 wifis: wlp3s0: dhcp4: true dhcp4-overrides: route-metric: 100 access-points: SSID: password: your_password3. 多网卡优先级配置实战3.1 静态IP与动态DHCP的metric设置根据网络环境不同metric配置存在两种典型模式场景A静态IP配置ethernets: eno1: dhcp4: false addresses: [192.168.1.100/24] routes: - to: 0.0.0.0/0 via: 192.168.1.1 metric: 150 nameservers: addresses: [8.8.8.8, 1.1.1.1]场景BDHCP覆盖配置ethernets: eno2: dhcp4: true dhcp4-overrides: route-metric: 200关键区别配置类型适用场景metric设置位置优先级静态IP固定网络环境routes条目下更高DHCP覆盖动态获取IPdhcp4-overrides下更低3.2 多接口复杂路由配置对于需要同时管理有线、无线及VPN等复杂场景可配置多层级路由network: version: 2 ethernets: eno1: dhcp4: false addresses: [192.168.1.50/24] routes: - to: 192.168.1.0/24 metric: 50 - to: 0.0.0.0/0 via: 192.168.1.1 metric: 200 eno2: dhcp4: true dhcp4-overrides: route-metric: 300 wifis: wlp3s0: dhcp4: true dhcp4-overrides: route-metric: 100 access-points: OfficeWiFi: password: securepassword此配置实现内网192.168.1.0/24流量强制走eno1最低metric 50互联网流量优先走无线metric 100eno1作为备用互联网出口metric 200eno2作为最低优先级备用metric 3004. 配置验证与故障排查应用配置的标准工作流# 语法检查 sudo netplan generate # 试运行120秒倒计时未确认则自动回滚 sudo netplan try # 正式应用 sudo netplan apply常见问题排查命令验证接口IP分配ip addr show检查路由表ip route show测试网关响应ping -I eno1 192.168.1.1 # 指定出口测试 traceroute 8.8.8.8查看DHCP获取信息journalctl -u systemd-networkd | grep -i dhcp调试技巧使用--debug参数获取详细日志sudo netplan --debug apply5. 高级配置技巧5.1 基于策略的路由当简单metric调整无法满足需求时可结合路由规则实现更精细控制network: version: 2 ethernets: eno1: routing-policy: - from: 192.168.1.0/24 table: 100 routes: - table: 100 to: 0.0.0.0/0 via: 192.168.1.1 metric: 1005.2 接口绑定与故障转移通过networkd的bonding模块实现链路冗余bonds: bond0: interfaces: [eno1, eno2] parameters: mode: active-backup primary: eno1 dhcp4: true dhcp4-overrides: route-metric: 1505.3 环境差异化配置利用Netplan的match功能实现硬件自适应network: version: 2 ethernets: id0: match: macaddress: 00:11:22:33:44:55 dhcp4: true dhcp4-overrides: route-metric: 2006. 持久化与版本管理为确保配置可靠性建议配置文件版本控制sudo cp /etc/netplan/50-cloud-init.yaml ~/netplan_backup/ sudo git -C /etc/netplan/ init生成差异报告sudo netplan get --origin-hint系统启动检查systemctl enable systemd-networkd-wait-online.service在长期使用中发现将Netplan配置纳入Ansible或Chef等配置管理系统能显著提高多主机环境的管理效率。一个实用的经验是任何手动修改后立即通过netplan generate验证语法避免重启时出现网络故障。