Linux route 命令实战示例

LinuxLinuxBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

在本实验中,你将学习如何使用 Linux 的 route 命令来管理网络中的静态和动态路由。实验内容涵盖了 route 命令的用途和语法、如何配置静态路由以及如何管理动态路由。你将通过示例了解如何查看路由表、添加新的静态路由以及删除现有路由。本实验为从事 Linux 网络管理的网络管理员和开发人员提供了实用的知识。

Linux 命令速查表


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/RemoteAccessandNetworkingGroup(["Remote Access and Networking"]) linux/RemoteAccessandNetworkingGroup -.-> linux/ifconfig("Network Configuring") linux/RemoteAccessandNetworkingGroup -.-> linux/ip("IP Managing") subgraph Lab Skills linux/ifconfig -.-> lab-422896{{"Linux route 命令实战示例"}} linux/ip -.-> lab-422896{{"Linux route 命令实战示例"}} end

理解 route 命令的用途和语法

在这一步中,你将学习 Linux 中 route 命令的用途和语法。route 命令用于查看和操作 IP 路由表,路由表负责确定网络流量到达目的地的路径。

首先,让我们了解 route 命令的基本语法:

sudo route [command] [destination] [gateway] [metric]

以下是每个参数的含义:

  • command:要执行的操作,例如 adddelshow
  • destination:路由适用的网络或主机。
  • gateway:数据包应转发到的网关或下一跳路由器。
  • metric:路由的成本或优先级,用于路由决策。

现在,让我们通过一些示例来了解 route 命令的实际用法。

要查看当前的路由表,可以使用 show 命令:

sudo route -n show

示例输出:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.17.0.1      0.0.0.0         UG    100    0        0 eth0
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 eth0

这显示了默认网关(0.0.0.0)和本地网络路由(172.17.0.0)。

要添加新的静态路由,可以使用 add 命令:

sudo route add -net 192.168.1.0 netmask 255.255.255.0 gw 10.0.0.1

这将添加一条到 192.168.1.0/24 网络的路由,网关为 10.0.0.1

要删除一条路由,可以使用 del 命令:

sudo route del -net 192.168.1.0 netmask 255.255.255.0

这将删除到 192.168.1.0/24 网络的路由。

使用 route 命令配置静态路由

在这一步中,你将学习如何使用 route 命令配置静态路由。静态路由是手动定义的路由,它们会被添加到路由表中,并优先于动态路由。

让我们从向路由表添加一条静态路由开始:

sudo route add -net 192.168.2.0 netmask 255.255.255.0 gw 10.0.0.2

这条命令添加了一条到 192.168.2.0/24 网络的静态路由,网关为 10.0.0.2

你可以通过运行 route -n 命令来验证新添加的路由:

sudo route -n

示例输出:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.17.0.1      0.0.0.0         UG    100    0        0 eth0
10.0.0.2        0.0.0.0         255.255.255.255 UH    0      0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.2.0     10.0.0.2        255.255.255.0   UG    0      0        0 eth0
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 eth0

你可以看到到 192.168.2.0/24 网络的新静态路由,网关为 10.0.0.2

为了使静态路由在重启后仍然有效,你可以将其添加到 /etc/network/interfaces 文件中:

sudo nano /etc/network/interfaces

在文件中添加以下内容:

up route add -net 192.168.2.0 netmask 255.255.255.0 gw 10.0.0.2

这将确保在网络接口启动时自动添加静态路由。

使用 route 命令管理动态路由

在这一步中,你将学习如何使用 route 命令管理动态路由。动态路由协议(如 OSPF 或 BGP)会根据网络变化自动更新路由表,从而更容易维护复杂的网络拓扑。

让我们从使用 add default 命令添加默认路由开始:

sudo route add default gw 10.0.0.1

这条命令添加了一条默认路由,它将用于任何不匹配路由表中更具体路由的流量。

你可以通过运行 route -n 命令来验证新添加的默认路由:

sudo route -n

示例输出:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.0.0.1        0.0.0.0         UG    0      0        0 eth0
10.0.0.2        0.0.0.0         255.255.255.255 UH    0      0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.2.0     10.0.0.2        255.255.255.0   UG    0      0        0 eth0
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 eth0

你可以看到网关为 10.0.0.1 的新默认路由。

要删除动态路由,可以使用 del 命令:

sudo route del default

这将从路由表中删除默认路由。

总结

在本实验中,你首先学习了 Linux 中 route 命令的用途和语法,该命令用于查看和操作 IP 路由表。你探索了基本的命令结构,并学习了如何使用 show 命令查看当前的路由表。你还学习了如何使用 adddel 命令分别添加和删除静态路由。接下来,你重点学习了如何配置静态路由,这些是手动定义的路由,优先于动态路由。你通过 route 命令练习了添加、修改和删除静态路由。最后,你探索了动态路由的管理,学习了如何使用 route 命令与动态路由协议交互并相应地更新路由表。

Linux 命令速查表