如何在 Ubuntu 22.04 Jammy Jellyfish Linux 上使用 netplan 添加静态路由
本教程的目的是介绍在 Ubuntu 22.04 Jammy Jellyfish 上通过 Netplan 添加新静态路由的分步说明。
当您的计算机需要向两个或多个网络发送流量时,静态路由是必要的。这对于家庭网络来说并不常见,但在办公室、学校等场所相当常见。
通常,所有网络流量都会路由到默认网关,默认网关是一个路由器,然后将确定下一步将数据发送到哪里。添加更多静态路由时,会添加更多网关。这就像告诉您的计算机将发往某个网络的数据发送到与默认路由器不同的路由器。
在本教程中您将学习:
如何添加永久静态路由
如何应用新的 netplan 配置
如何从命令行检查静态路由
如何在 Ubuntu 22.04 上使用 Netplan 添加静态路由分步说明
第一步是打开命令行终端并使用
nano
或您喜欢的文本编辑器以 root 权限打开主 netplan 配置文件:$ sudo nano /etc/netplan/50-cloud-init.yaml
我们建议在继续之前运行以下命令来显示当前配置的路由。记下某处的输出,因为如果我们需要进行任何故障排除,它会在稍后派上用场。
$ ip route s default via 10.0.2.2 dev enp0s3 proto dhcp metric 100 10.0.2.0/24 dev enp0s3 proto kernel scope link src 10.0.2.15 metric 100 169.254.0.0/16 dev enp0s3 scope link metric 1000
找到与您要添加静态路由的网络接口相关的配置节。在此示例中,我们将通过接口
enp0s3上的网络网关
192.168.1.100
添加到目标网络子网172.16.0.0/24
的静态路由代码>.您可以复制并粘贴此示例并根据需要进行编辑:# This file is generated from information provided by # the datasource. Changes to it will not persist across an instance. # To disable cloud-init's network configuration capabilities, write a file # /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following: # network: {config: disabled} network: ethernets: enp0s3: dhcp4: false addresses: [192.168.1.202/24] nameservers: addresses: [8.8.8.8,8.8.4.4,192.168.1.1] routes: - to: 172.16.0.0/24 via: 192.168.1.100 version: 2
完成所有必要的更改以添加静态路由和所有新的 netplan 配置后,退出文件并保存更改。然后,使用以下命令应用配置:
$ sudo netplan apply
检查 Ubuntu 22.04 系统上所有可用的静态路由:
$ ip route s default via 10.0.2.2 dev enp0s3 proto static metric 100 10.0.2.2 dev enp0s3 proto static scope link metric 100 169.254.0.0/16 dev enp0s3 scope link metric 1000 172.16.0.0/24 via 192.168.1.100 dev enp0s3 proto static metric 100 192.168.1.0/24 dev enp0s3 proto kernel scope link src 192.168.1.202 metric 100
您应该会看到在 Netplan 配置中配置的静态路由,我们已在上面的输出中以粗体文本显示该路由。
应用此配置可能还会使您的默认路由消失,这就是我们在测试此配置时发生的情况。如果您无法再访问互联网或与之前可访问的网络断开连接,这一点应该会立即引起注意。如果是这种情况,请使用从步骤 2 中的输出中获得的信息将默认路由添加回 Netplan 配置中。对于我们来说,我们需要将默认网关设置为
10.0.2.2
。该配置如下所示:# This file is generated from information provided by # the datasource. Changes to it will not persist across an instance. # To disable cloud-init's network configuration capabilities, write a file # /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following: # network: {config: disabled} network: ethernets: enp0s3: dhcp4: false addresses: [192.168.1.202/24] nameservers: addresses: [8.8.8.8,8.8.4.4,192.168.1.1] routes: - to: 172.16.0.0/24 via: 192.168.1.100 - to: default via: 10.0.2.2 version: 2
结束语
在本教程中,您了解了如何通过应用 Netplan 配置向 Ubuntu 22.04 Jammy Jellyfish 添加新的静态路由。我们已经向您展示了添加新静态路由和维护与路由不匹配的所有其他流量的默认网关所需的 YAML 语法。