什么是Linux中的路由和路由表?
路由的过程意味着IP包在网络上从一点传输到另一点。当你向某人发送电子邮件时,你实际上是在将一系列IP数据包或数据报从你的系统传输到另一个人的计算机上。从计算机发送的数据包通过几个网关或路由器到达目标计算机系统。同样的方法适用于所有internet协议,如HTTP、IRC和FTP等。
在所有Linux和UNIX系统中,有关如何转发IP数据包的信息都存储在内核结构中。这些结构称为路由表。当您希望系统与其他计算机通信时,可能需要配置这些路由表。首先,了解如何在Linux系统上查看这些路由表非常重要。
在本文中,我们将通过以下三个常用的命令来解释如何在Ubuntu中查看路由表:
- netstat命令
- route命令
- ip route命令
我们在Ubuntu 18.04 LTS系统上运行了本文中提到的命令和过程。
我们使用Ubuntu命令行终端,以便运行上述命令。您可以通过系统Dash或Ctrl + Alt + T快捷方式打开终端。
如何查看路由表?
方法1:通过netstat命令
netstat命令一直是Linux中打印路由表信息一种广泛使用的方法。然而,它被ip route命令正式取代。无论如何,我们都需要它,因为它仍然是检索所需信息的一种方法。
以下是使用此命令的方法:
$ netstat -rn
-r此标志用于显示内核路由表
-n此标志用于显示数字地址
这是输出的结果:
方法2:通过route命令
route命令也属于曾经广泛使用但现在过时的命令来查看路由表。 此命令的手册页还提到该命令现在已被ip route命令替换。
通过此命令,您可以通过netstat命令查看完全相同的信息。 以下是如何使用它:
$ route -n
内核 IP 路由表
目标 网关 子网掩码 标志 跃点 引用 使用 接口
0.0.0.0 192.168.182.2 0.0.0.0 UG 20100 0 0 ens33
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 ens33
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
192.168.182.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
-n此标志仅用于显示数字地址
方法3:通过ip route命令
最后但同样重要的是,这是在Linux中打印路由表信息的最佳方法。 以下是使用此命令的方法:
$ ip route
虽然这些信息不像前面提到的命令那样对读者友好,但是它仍然足够您配置路由器。
这是几个在Ubuntu中查看路由表信息的命令。虽然ip route命令在外观上不是很整洁,但它仍然是查找相关路由表信息的推荐方法。虽然其他命令被认为是过时的,但它们有时确实有助于导出需要提取的内容。
更多Ubuntu相关信息见Ubuntu 专题页面 https://www.558idc.com/topicnews.aspx?tid=2