《Linux 中 ip route show 输出结果解析及关键概念》
以下是对 ip route show
输出结果的详细解析,帮助你理解每条路由的含义及作用:
一、路由表整体结构
Linux 路由表中的每条条目包含 目标网络 / 主机、下一跳网关、出接口、路由协议、作用域、源地址、度量值 等信息。当前输出(以 [root@VM-20-4-centos ~]# ip route show
为例)共有 3 条路由:
二、逐条解析路由条目
1. 默认路由(Default Route)
default via 10.2.20.1 dev eth0 
目标网络:default
(等价于 0.0.0.0/0
),匹配所有未明确匹配其他路由的流量。
下一跳网关(via):10.2.20.1
,所有匹配默认路由的流量将被发送到该网关。
出接口(dev):eth0
,流量从物理网卡 eth0
发出。
作用:这是系统访问互联网或非本地网络的 “默认出口”。例如,当访问 8.8.8.8
时,若没有更具体的路由匹配,流量会通过 eth0
发送到 10.2.20.1
网关。
2. 本地网络路由(直连路由)
10.2.20.0/22 dev eth0 proto kernel scope link src 10.2.20.4 
目标网络:10.2.20.0/22
,子网掩码为 255.255.252.0
,表示网络范围是 10.2.20.0`` ~ ``10.2.23.255
(共 1024 个 IP)。
出接口(dev):eth0
,该网络直接通过 eth0
接口连接。
路由协议(proto kernel):表示这条路由由内核自动生成(通常通过 DHCP 或静态配置)。
作用域(scope link):表示该路由的作用范围是 “链路本地”,即仅在当前网络接口(eth0
)所在的链路内有效。
源地址(src 10.2.20.4):当从该接口发送数据包时,默认使用 10.2.20.4
作为源 IP 地址(通常是接口的 IP 地址)。
作用:这是本地网络的直连路由,内核通过该路由直接与同一子网内的设备通信(无需经过网关)。
3. 链路本地地址路由(Link-Local Route)
169.254.0.0/16 dev eth0 scope link metric 1002 
目标网络:169.254.0.0/16
,属于 APIPA(自动专用 IP 寻址) 地址段,用于当设备无法获取 DHCP 地址时的临时通信。
出接口(dev):eth0
,该网络通过 eth0
接口访问。
作用域(scope link):仅在当前链路内有效,不能用于跨网段通信。
度量值(metric 1002):表示路由的优先级,数值越小优先级越高。此处 1002
较高,说明这是一条备用路由(当主路由失效时才会使用)。
作用:若 eth0
未获取到有效 IP 地址(如 DHCP 失败),系统会自动分配 169.254.x.x
地址,通过此路由与同网段设备通信(仅限本地链路)。
三、关键概念补充
1. 路由优先级(Metric)
度量值(metric
)决定路由的优先级,数值越小越优先。
例如:默认路由通常没有显式 metric
(优先级最高),而链路本地路由的 metric
较高(仅作备用)。
2. 直连路由(Direct Route)
当目标网络是接口所在的子网时,内核会自动添加直连路由(如 10.2.20.0/22
),无需指定网关,直接通过接口通信。
3. 默认路由的重要性
若系统需要访问互联网,必须存在指向有效网关的默认路由(如 default via ``10.2.20.1`` dev eth0
)。
四、验证与常见操作
1. 查看接口 IP 地址
ip addr show eth0 
\# 输出应包含 \`10.2.20.4/22\`,与路由条目中的 \`src 10.2.20.4\` 对应。
2. 测试网络连通性
访问默认网关:ping ``10.2.20.1
(验证网关可达)。
访问本地网络:ping ``10.2.20.5
(同一子网内设备,直接通信)。
访问外部网络:ping ``8.8.8.8
(通过默认路由转发)。
3. 修改路由(需谨慎)
添加默认路由:ip route add default via <网关> dev <接口>
删除路由:ip route del <目标网络> dev <接口>
总结
当前路由表配置表明:
服务器通过 eth0
连接到 10.2.20.0/22
本地网络,IP 地址为 10.2.20.4
。
默认网关为 10.2.20.1
,用于访问外部网络。
链路本地路由 169.254.0.0/16
作为备用,通常无需手动干预。
若网络配置正常,上述路由已满足基本通信需求。如需调整网络(如更换网关、添加新子网),需根据实际场景修改路由表或接口配置。