菜鸟科技网

如何使用显示路由命令?

在计算机网络管理与维护中,显示路由信息的命令是排查网络连通性、分析路由路径、优化网络配置的核心工具,不同操作系统(如Windows、Linux、macOS)和不同网络设备(如路由器、交换机)提供的路由命令存在差异,但核心功能均围绕路由表的查看、分析和诊断展开,以下将详细解析主流系统及设备中常用的显示路由命令,涵盖其语法、参数、输出解读及实际应用场景。

如何使用显示路由命令?-图1
(图片来源网络,侵删)

Windows系统下的路由命令

Windows系统主要通过route print命令查看本地路由表,该命令无需安装额外工具,适用于大多数Windows环境(如Windows 10/Server 2019等)。

基本语法与参数

route print [-4 | -6] [interface]  
  • -4:仅显示IPv4路由表(默认)。
  • -6:仅显示IPv6路由表。
  • interface:指定网络接口的IP地址或索引,仅显示该接口的路由信息。

输出表结构及解读

执行route print后,输出分为三个主要部分:网络接口、IPv4路由表、IPv6路由表,以IPv4路由表为例,关键列包括:

列名 说明 示例值
网络目标 目标网络地址或主机地址,0.0.0表示默认路由 168.1.0
子网掩码 与网络目标配合使用,定义目标地址的范围 255.255.0
网关 数据包转发到的下一跳地址 168.1.1
接口 发送数据包的本地网络接口IP地址 168.1.100
跃点数 路由的成本值,越小越优先,通常与接口类型、速度相关 28
协议 路由来源:1(静态)、2(IGMP)、3(NETBIOS)、4(内部)、5(DHCP) 3

示例解读

  • 默认路由(0.0.0 0.0.0)指向网关168.1.1,跃点数28,表示所有未知目标流量均通过此网关转发。
  • 直连路由(如168.1.0 255.255.0)的网关和接口均为本地地址,表示直接连接的网络。

应用场景

  • 排查网络不通:若目标IP无法访问,检查路由表中是否存在对应目标的路由,或默认路由是否正确配置。
  • 优化路径选择:通过修改跃点数(如route change命令)调整多网卡环境下的流量优先级。

Linux/macOS系统下的路由命令

Linux和macOS系统使用ip routenetstat -rn命令查看路由表,其中ip route是现代Linux系统的推荐工具,功能更丰富。

如何使用显示路由命令?-图2
(图片来源网络,侵删)

ip route命令

ip route [show] [dev <interface>] [proto <protocol>]  
  • dev <interface>:过滤指定接口的路由。
  • proto <protocol>:按协议过滤(如kernelstaticdhcp)。

输出格式及解读

输出以“目标 via 网关 dev 接口”或“目标 dev 接口”的形式呈现,

default via 192.168.1.1 dev eth0 proto dhcp metric 100  
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100  
  • default:默认路由,相当于Windows的0.0.0
  • /24:子网掩码的CIDR表示法,等同于255.255.0
  • scope link:直连路由,无需网关。
  • metric:跃点数,数值越小优先级越高。

netstat -rn命令

传统工具,输出与ip route类似,但格式更简洁:

Destination     Gateway         Genmask         Flags   MSS Window  Iface  
0.0.0.0         192.168.1.1     0.0.0.0         UG        0 0      eth0  
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0      eth0  
  • FlagsU(路由可用)、G(通过网关)、H(主机路由)。

应用场景

  • 配置静态路由:通过ip route add <目标> via <网关> dev <接口>添加临时路由,或写入/etc/network/interfaces(Debian)或/etc/sysconfig/network-scripts/(RHEL)实现持久化。
  • 监控路由变化:结合watch -n 1 ip route实时观察路由表动态更新(如DHCP获取新路由时)。

网络设备(如Cisco路由器)的路由命令

在网络设备中,show ip route是查看路由表的核心命令,其输出包含更详细的协议信息和路由标记。

基本语法

show ip route [protocol] [network]  
  • protocol:按协议过滤(如staticospfbgp)。
  • network:查看特定目标网络的详细路由。

输出标记及含义

路由条目前缀标记代表不同来源:

如何使用显示路由命令?-图3
(图片来源网络,侵删)
  • S:静态路由(Static)。
  • O:OSPF路由(Open Shortest Path First)。
  • B:BGP路由(Border Gateway Protocol)。
  • C:直连路由(Connected)。
  • D:EIGRP路由(Enhanced Interior Gateway Routing Protocol)。

示例输出

S* 0.0.0.0/0 [1/0] via 203.0.113.1  
C  192.168.1.0/24 is directly connected, GigabitEthernet0/0  
O  10.0.0.0/24 [110/2] via 192.168.1.2, 00:00:05, GigabitEthernet0/0  
  • [1/0]:管理距离(1)和度量值(0),管理距离越小,路由可信度越高。
  • via:下一跳地址。

应用场景

  • 验证路由协议学习:检查OSPF、BGP等动态路由协议是否正确学习到目标网络。
  • 调试路由黑洞:若某网络显示is possibly down,需检查接口状态或邻居路由器配置。

高级路由诊断命令

除基础显示命令外,结合其他工具可深入分析路由问题:

  • Windowstracert -d <目标IP>跟踪路径,结合route print定位路由失效节点。
  • Linuxtraceroute -n <目标IP>mtr <目标IP>实时监控路径延迟和丢包。
  • 网络设备show ip protocols查看运行的路由协议配置,debug ip routing实时监控路由更新(需谨慎使用)。

相关问答FAQs

Q1: 为什么route print中存在多个默认路由,且跃点数不同?
A: 多个默认路由通常由多网卡环境导致,系统根据跃点数选择最优路径(如有线网卡跃点数低于无线),可通过route change命令修改跃点数,或禁用不需要的接口避免冲突。

Q2: Linux下如何区分静态路由和动态路由添加的路由?
A: 通过ip route show proto <protocol>过滤:静态路由标记为proto static,动态路由(如OSPF)标记为proto ospf,DHCP获取的路由标记为proto dhcp,例如ip route show proto static仅显示静态配置的路由。

分享:
扫描分享到社交APP
上一篇
下一篇