Ubuntu Netplan 配置永久静态路由实战记录
一次简单的路由配置解决跨网段访问问题前言在维护内网服务器时经常会遇到需要访问多个网段的情况。默认情况下服务器只能访问与自己同一网段的设备。今天我就遇到了这样的需求一台 IP 为10.0.3.206/16的 Ubuntu 服务器需要访问10.2.0.0/16网段的设备。本文将完整记录使用 Netplan 配置永久静态路由的过程供有类似需求的朋友参考。环境信息项目信息操作系统Ubuntu使用 Netplan 管理网络服务器 IP10.0.3.206/16网卡接口enp2s0目标网段10.2.0.0/16下一跳网关10.0.32.30网络拓扑简图[10.2.0.0/16 网段] │ ▼ [网关 10.0.32.30] │ ▼ [服务器 10.0.3.206/16] ← 本机第一步查看当前路由表首先确认当前网络状态iproute输出如下10.0.0.0/16 dev enp2s0 proto kernel scope link src 10.0.3.206可以看到服务器目前只能访问10.0.0.0/16网段没有到达10.2.0.0/16的路由。第二步定位 Netplan 配置文件Netplan 是 Ubuntu 17.10 起引入的网络配置工具使用 YAML 格式的配置文件。配置文件通常位于/etc/netplan/目录下ls/etc/netplan/输出50-cloud-init.yaml查看当前配置sudocat/etc/netplan/50-cloud-init.yaml原始配置如下已做脱敏处理network:version:2renderer:networkdethernets:enp2s0:dhcp4:noaddresses:[10.0.3.206/16]# routes:# - to: default# via: 10.0.0.2# nameservers:# addresses: [114.114.114.114, 8.8.8.8]可以看到默认网关和 DNS 都被注释掉了当前是纯静态 IP 配置。第三步添加静态路由编辑配置文件sudonano/etc/netplan/50-cloud-init.yaml在routes:下添加目标路由注意 YAML 缩进network:version:2renderer:networkdethernets:enp2s0:dhcp4:noaddresses:[10.0.3.206/16]routes:-to:10.2.0.0/16via:10.0.32.30# - to: default# via: 10.0.0.2# nameservers:# addresses: [114.114.114.114, 8.8.8.8]关键点to目标网段使用 CIDR 格式via下一跳网关地址必须与本机 IP 在同一网段缩进使用空格Netplan 严格要求建议用 2 个空格第四步应用配置执行以下命令使配置生效sudonetplan applynetplan apply会验证 YAML 语法生成对应的后端配置如/run/systemd/network/下的文件重启网络服务加载新配置第五步验证配置是否生效查看路由表iproute现在应该能看到新增的路由条目10.0.0.0/16 dev enp2s0 proto kernel scope link src 10.0.3.206 10.2.0.0/16 via 10.0.32.30 dev enp2s0 proto staticproto static表示这是一条手动添加的静态路由。连通性测试ping10.2.0.1成功响应PING 10.2.0.1 (10.2.0.1) 56(84) bytes of data. 64 bytes from 10.2.0.1: icmp_seq1 ttl64 time0.509 ms 64 bytes from 10.2.0.1: icmp_seq2 ttl64 time0.263 ms 64 bytes from 10.2.0.1: icmp_seq3 ttl64 time0.310 ms --- 10.2.0.1 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss✅ 路由配置成功常见问题与排障1. 网关不可达如果添加路由后无法 ping 通目标首先检查网关是否可达ping10.0.32.30如果网关不通说明网关地址有误或网络链路有问题。2. YAML 语法错误netplan apply会报语法错误常见原因缩进使用了 Tab 而非空格冒号后面缺少空格列表项-缩进不对可以用以下命令检查配置sudonetplan try这个命令会测试配置并在 120 秒后自动回滚防止配置错误导致 SSH 断连。3. 路由不生效重启后路由丢失确认配置在routes:下且没有被注释。也可以用以下命令排查# 查看 Netplan 生成的 systemd-networkd 配置cat/run/systemd/network/10-netplan-enp2s0.network# 检查 networkd 状态systemctl status systemd-networkd拓展添加多条路由如果有多个网段需要访问继续在routes:下追加即可routes:-to:10.2.0.0/16via:10.0.32.30-to:172.16.0.0/12via:10.0.32.254-to:192.168.0.0/16via:10.0.32.1补充临时路由 vs 永久路由类型命令特点临时路由sudo ip route add 10.2.0.0/16 via 10.0.32.30立即生效重启后丢失适合测试永久路由写入/etc/netplan/*.yaml重启后依然存在适合生产环境建议先用临时路由测试连通性确认无误后再写入配置文件。总结在 Ubuntu 中使用 Netplan 配置永久静态路由的核心步骤只有四步查看ip route确认当前路由表编辑修改/etc/netplan/下的 YAML 配置文件应用sudo netplan apply验证ip route和ping测试整个过程简单直接但需要注意 YAML 的格式规范。相比传统的/etc/network/interfaces方式Netplan 的配置更加结构化和清晰适合现代 Linux 运维场景。参考文献Netplan 官方文档Ubuntu 网络配置指南本文记录于 2026年6月适用于 Ubuntu 17.10 及以上版本。