在Linux系统中,查看本机路由表可以使用ip route
命令或者传统的route -n
命令。
一、基础概念
- 路由表
- 路由表是操作系统用来决定数据包传输路径的表格。它包含了网络目的地、下一跳地址(网关)、出接口等信息。例如,当本机要发送一个数据包到某个IP地址时,系统会查询路由表来确定通过哪个网络接口发送这个数据包,是直接发送还是通过某个网关转发。
- 默认路由(Default Route)
- 如果路由表中没有明确匹配目标IP地址的条目,就会使用默认路由。默认路由通常指向一个网关设备,这个网关负责将本机无法直接到达目的地的流量转发到正确的方向。
二、ip route
命令
- 优势
- 功能更强大,提供了更详细和灵活的路由信息查看和管理功能。它可以显示多种类型的路由信息,并且可以方便地进行路由的添加、删除等操作。
- 输出格式更加清晰易读,包含了更多关于路由的信息,如路由的度量值(metric)等。
- 示例输出及解释
- 执行
ip route
命令后可能得到如下输出: - 执行
ip route
命令后可能得到如下输出: - 第一行“default via 192.168.1.1 dev eth0”表示默认路由,数据包如果目的地址不在本地路由表中的其他条目里,将通过
eth0
接口发送到网关192.168.1.1
。 - 第二行“192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100”表示本地的
192.168.1.0/24
网络段,通过eth0
接口,这个路由是由内核协议(proto kernel
)创建的,作用范围是本地链路(scope link
),源地址是192.168.1.100
。
三、route -n
命令
- 优势
- 兼容性较好,在一些较老的系统或者脚本中可能更常用。它的输出相对简洁,重点关注网络地址、网关、掩码等基本信息。
- 示例输出及解释
- 执行
route -n
命令后可能得到如下输出: - 执行
route -n
命令后可能得到如下输出: - 第一行中“0.0.0.0”表示默认路由,“192.168.1.1”是网关,“UG”标志中的“U”表示该路由是激活的(Up),“G”表示这是一个网关路由。“eth0”是出接口。
- 第二行表示本地
192.168.1.0/24
网络段,“0.0.0.0”作为网关表示直接连接,不需要通过其他网关转发。
四、应用场景
- 网络故障排查
- 当网络连接出现问题时,查看路由表可以确定数据包是否被正确地路由到目的地。例如,如果发现默认路由指向错误的网关,就可以调整路由设置来修复网络连接。
- 网络配置管理
- 在多网络接口或者复杂网络环境下,需要准确了解本机的路由配置,以便进行合理的网络规划和资源分配。比如在服务器连接到多个子网时,通过查看路由表确保流量按照预期路径传输。