Linux 中的路由添加命令
本教程介绍了路由命令以及如何在 Linux 中使用它来管理不同网络之间的连接。
本文档允许您通过路由方法(静态、默认和动态)和命令行技术(IP 和路由添加)连接网络。
在 Linux Hint,我们通过为有经验的用户开门见山地提供实际示例,并通过示例向新用户彻底解释每个步骤来优化新用户和有经验的用户的内容。我们的教程要求我们在实际示例之前先从理论内容开始。如果您是一位了解路由的经验丰富的用户,并且只需要学习实用说明,只需向下滚动到实用部分或按此处。
本教程中描述的所有步骤都包含屏幕截图,使每个 Linux 用户都可以轻松了解它们的应用方式。
路由表简介
路由表是网络指令,我们在其中指定网络设备如何访问不同的网络。例如,如果我们有网络 192.168.0.0 和网络 10.0.0.0,我们可以使用路由表来允许两个网络的连接。为了实现连接,我们指定数据包必须通过路由表的路径(路由)。例如,我们的路由表可以确定需要到达哪些路由器才能与不同的网络进行通信。
您正在查找的命令,route add,是与路由表交互的命令,是添加正确路由以到达目的地或多个目的地的命令。您可以添加多个网关来访问不同的网络,具体取决于所选的路由方法(如下所述)。
同样重要的是要知道那些允许两个网络之间连接的网络设备称为“网关”。网关必须有两个网卡,每个网卡都连接到我们想要在它们之间连接的网络。
静态路由、默认路由、动态路由
实现网络路由有三种不同的方法:静态、默认和动态。根据网络拓扑和知识,每种方法都有优点和缺点。本文下面对此进行了解释。
静态路由
静态路由是最具体的路由。静态路由意味着两个网络都必须配置其网络设备(一一配置),指示每个网络中的每个设备必须遵循的完整路径(路由)才能到达另一个网络。必须了解的是,使用静态路由时,所有设备(例如计算机)都必须手动配置。
假设您有两个不同的网络,每个网络都有其路由器:网络 192.168.1.x 和网络 10.0.0.1。 192.168.1.0(网络 A)和 10.0.0.1(网络 B)想要在它们之间建立连接。
假设来自网络 A 的客户端想要连接到网络 B。在这种情况下,他必须在路由表中指定网络目的地 (B) 以及它到达网络 B 所需经过的所有路由器(网关)。 B想要连接到网络A,每个网络B客户端也必须相互配置。没有自动反向连接。
这意味着,如果我们有一个网络,每个网络都有一个路由器和一个中间第三个路由器,我们需要配置客户端 PC,指定本地路由器与下一个路由器(中间路由器)通信所需的网络接口或网络地址和网络掩码,第三个)。由于中间路由器不直接连接到目标网络,因此客户端还必须将中间路由器必须遵循的下一个路由器添加到路由表中,直到到达目标网络。最后一个路由器不需要配置,因为它已经直接连接到目标网络。
如前所述,路由设备必须有两个网卡或接口才能与两个网络进行通信。
我们以下图为例。如果NETWORK 1 中的计算机想要使用静态路由连接到NETWORK 2 中的计算机,则NETWORK 1 中的计算机必须在两个出口接口(ROUTER 1 和 中间路由器)需要使用的路由表来连接到下一个路由器,直到到达最终目的地。
使用静态路由时,计算机还必须定义连接到中间路由器的传出接口以及中间路由器需要使用的接口来连接到属于 NETWORK 2 的路由器。但是,NETWORK 2 路由器不需要在路由表中指定,因为它已经直接连接到目的地。
如果来自 NETWORK 2 的客户端想要连接到 NETWORK 1(反向),则还需要添加反向路由或路径(包括其路由器,但不包括NETWORK 1路由器,即已连接到网络 1)。
静态路由是最快、最安全的路由方法。它之所以快,是因为客户端向路由设备提供完整路径,而路由器必须通过其他方法自己学习。
而且它是安全的,因为系统管理员完全了解网络拓扑,并且数据包精确地通过定义的路由(路径)。
静态路由最显着的缺点是必须手动配置每个客户端,这对于大型网络来说不实用。
之所以称为“静态”,是因为每个客户端都预先定义了路由。
默认路由
静态路由要求客户端添加到目的地的完整路径,而默认路由只需要将本地路由器之后的第二跳添加到路由表中。第二个路由器在没有网络表指示的情况下将数据包发送到下一跳或路由器,希望它能够解析目的地或将数据包转发到可能可以确定目标的另一个路由器。除非某些路由器无法将数据包路由到另一台设备,否则会重复此过程,直到解决了目标为止。在这种情况下,数据包将被丢弃。
默认路由不一定取代静态或动态路由,但在未通过静态或动态路由定义目的地的情况下仍然是最后的资源。事实上,默认路由也被称为“最后的资源”。有时,您只能使用默认网关,例如,当我们连接到互联网时。然后,连接继续动态。
动态路由
动态路由是指没有路由表,路由器与其他路由器交换或共享所有信息。他们通过共享信息来了解网络拓扑。如前所述,对于静态路由,如果路径中定义的某个路由器不可用,则数据包将被丢弃。与静态路由相反,在这种情况下,动态路由会寻找替代路由,因为它没有预定义的路由。
Route命令实用介绍
在添加或删除路由表之前,让我们看看如何打印现有路由。您可以通过使用超级用户权限运行IP 路由或路由命令来完成此操作,如下所示。
注意:要使用 sudo route add 命令,您必须安装 net-tools 软件包。
上面的屏幕截图显示,默认网关是我的路由器,IP 地址为 192.168.0.1,通过 wlp3s0 设备连接并从 DHCP 获取 IP 地址。
第二行和第三行无关。第二行是在 IP 分配问题的情况下生成的,内核分配了第三行。
如果您的计算机上安装了net-tools包,您还可以运行以下命令来查看现有的表。
Linux中静态路由的Route Add命令
因此,如果我的IP地址是192.168.0.103,并且我想连接到网络192.168.1.0,该网络是通过IP地址为192.168.3.0的路由器(有两个接口)连接的,请运行如下图所示的命令:
您可以使用IP 命令通过以下语法执行相同的操作。
Linux 中定义默认网关的路由添加命令
如果您想使用route add 命令添加默认网关,语法如下所示。
如果我想添加默认网关来访问互联网,并且我的路由器的 IP 地址为 192.168.0.1,我将执行以下命令:
可以使用如下所示的 IP 命令完成相同的操作:
让你的改变持久
您在路由表中所做的所有更改都将在重新启动或网络服务重新启动时自动删除。
运行以下命令以使路由表更改在 Debian 或 Ubuntu 上保持不变。
在上一个屏幕截图中显示的屏幕末尾添加以下行。
在CentOS系统中,您需要编辑/etc/sysconfig/network-scripts文件并添加以下行:
在 Linux 中删除路由表
如果要删除默认网关,可以运行以下命令(基于前面的示例):
或者
两种方法都是可以接受的。
结论
正如您所看到的,只要您具备基本的网络知识,理解路由表就很容易。从中层来看,没有任何借口可以回避这个话题。如果您尝试连接到一个网络,但无法通过 DHCP 为您分配 IP 地址,而需要您使用正确的 IP 地址和正确的路由表来完全配置您的设备,这可能会拯救您。必须指出的是,路由添加命令已被IP 路由添加命令取代。但是,大多数系统管理员仍然使用属于 net-tools 软件包的第一个命令(我建议您安装它),其中包括其他功能,例如 ifconfig 命令。许多用户认为网络工具方法更容易。尽管 IP 命令实现了附加功能,但其他人也更喜欢它。重要的是这两种方法都是可以接受的并且给出相同的结果。您不需要学习它们,只要知道如何阅读它们的手册页即可。
路由命令手册页:https://man7.org/linux/man-pages/man8/route.8.html
IP 路由手册页:https://man7.org/linux/man-pages/man8/ip-route.8.html
非常感谢您阅读这篇解释路由表并使用“route add”命令的文章。持续关注我们,获取更专业的Linux教程。