ip route命令用于查看和管理linux路由表,其输出包含目标网络、下一跳、出口设备、路由协议等关键信息,帮助判断网络流量转发路径。使用ip route show可列出所有路由,通过添加default、to、dev等参数可过滤查看特定路由,理解各字段含义有助于网络故障排查与系统管理。
在Linux系统中,ip route 是查看和管理路由表的核心命令。它属于 iproute2 工具包,取代了旧的 route 命令,功能更强大,输出更清晰。掌握如何查看路由以及理解其输出格式,对网络故障排查和系统管理非常重要。
如何查看路由表
在终端中运行以下命令即可查看当前系统的路由表:
ip route show
也可以简写为:
ip route
这条命令会列出所有活动的路由条目,每行代表一条路由规则。
ip route 输出格式解析
典型的输出如下:
default via 192.168.1.1 dev eth0 proto Static metric 100
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100 metric 100
10.0.0.0/8 via 10.10.0.1 dev tun0 proto static metric 50
每条路由包含多个字段,下面逐项解释:
1. 目标网络(Destination)
表示该路由的目标地址或网络。可以是:
- default:表示默认路由,用于没有其他匹配规则的数据包,等同于 0.0.0.0/0。
- IP地址/子网掩码:如 192.168.1.0/24,表示目标网络范围。
2. via(下一跳)
指定数据包应转发到的下一跳路由器IP地址。例如 via 192.168.1.1 表示数据包要先发给这个IP。
3. dev(出口设备)
表示数据包将从哪个网络接口发出,如 eth0、wlan0、tun0 等。
4. proto(路由协议)
说明该路由是如何生成的:
- kernel:由内核自动添加(通常是直连网络)。
- static:手动配置的静态路由。
- dhcp、ra 等:由动态协议自动获取。
5. scope
表示地址范围。常见值:
- link:本地链路,仅限当前网络段(如直连子网)。
- global:可用于所有数据包(默认)。
6. src(源地址)
当系统有多个IP时,指定从此路由发出的数据包使用哪个源IP。
7. metric(优先级)
用于路由选择的优先级数值,数值越小优先级越高。多路径或多个默认路由时起作用。
常用查看技巧
你可以通过添加参数过滤输出:
- 只看默认路由:
ip route show default - 查看特定网络的路由:
ip route show to 10.0.0.0/8 - 查看通过某个接口的路由:
ip route show dev eth0 - 查看缓存中的路由(较少用):
ip route show cache
总结
理解 ip route 的输出有助于快速判断系统如何转发网络流量。重点关注目标网络、下一跳、出口设备和路由来源。日常运维中,查看默认网关是否正确、接口是否匹配、静态路由是否生效,都可以通过这条命令完成。
基本上就这些,掌握格式后看路由表就一目了然了。