在Linux中什么是路由和路由表?
路由过程意味着IP数据包通过网络从一个点传输到另一点。当您向某人发送电子邮件时,实际上是在将一系列IP数据包或数据报从您的系统传输到其他人的计算机。从您的计算机发送的数据包会通过多个网关或路由器到达目标计算机系统。同样的方法适用于所有Internet协议,例如HTTP,IRC和FTP等。
在所有Linux和UNIX系统中,有关如何转发IP数据包的信息都存储在内核结构中。这些结构称为路由表。当您希望系统与其他计算机通信时,可能需要配置这些路由表。首先,重要的是要学习如何在Linux系统上查看这些路由表。
在本文中,我们将说明如何通过以下三个常用命令在Ubuntu中查看路由表:
- netstat命令
- 路线命令
- ip route命令
我们已经在Ubuntu 18.04 LTS系统上运行了本文中提到的命令和过程。
我们使用Ubuntu命令行终端(Terminal)来运行上述命令。您可以通过系统Dash或Ctrl + Alt + T快捷方式打开终端。
如何查看路由表?
方法1:通过netstat命令
netstat命令一直是Linux中打印路由表信息的一种广泛使用的方法。但是,它正式被ip route命令取代。无论如何我们都将其包括在内,因为它仍然是一种检索所需信息的方法。
这是使用此命令的方法:
$ netstat -rn
-r此标志用于显示内核路由表
-n此标志用于显示数字地址
这就是输出所指示的内容:
目的地 | 此列指示目标网络。 |
网关 | 此列指示网络的已定义网关。如果在此列中看到*,则表示指定的网络不需要转发网关。 |
面罩 | 此列指示网络的网络掩码。 |
标志 | 此列中的U输出表示路由已建立。 G输出指示此路由应使用指定的网关。 D表示动态安装,M表示已修改,R表示已恢复。 |
MSS | 此列表示此路由的TCP连接的默认最大段大小(MSS)。 |
窗口 | 此列指示此路由上的TCP连接的默认窗口大小。 |
尔特 | 此列指示此路线的初始往返时间。 |
我面对 | Iface列显示网络接口。如果您有多个界面,您会看到罗(用于环回),eth0(第一个以太网设备),和eth1(用于第二个以太网设备),以此类推,以了解已安装的接口数量。 |
方法2:通过route命令
route命令也属于曾经广泛使用但现在已过时的命令,用于查看路由表。该命令的手册页还提到该命令现在已由ip route命令代替。
通过此命令,您可以通过netstat命令查看与您完全相同的信息。使用方法如下:
$ route -n
-n此标志仅用于显示数字地址
方法3:通过ip route命令
最后但并非最不重要的一点是,这是在Linux中打印路由表信息的最推荐方法。这是使用此命令的方法:
$ ip route
尽管此信息与前面提到的命令相比reader-friendly信息不多,但您仍然可以配置路由器。
这些是在Ubuntu中查看路由表信息的一些命令。尽管ip route命令看起来并不整洁,但它仍然是查找相关路由表信息的最推荐方法。尽管其他命令已过时,但它们有时在派生需要提取的内容时确实很有帮助。