Ubuntu 中的路由详解
- 查看路由:
route -n - 输出示例
root@user:~# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.0.1 0.0.0.0 UG 100 0 0 eth0 0.0.0.0 192.168.0.1 0.0.0.0 UG 102 0 0 eth1 0.0.0.0 192.168.0.1 0.0.0.0 UG 600 0 0 wlan0 0.0.0.0 192.168.225.1 0.0.0.0 UG 1000 0 0 usb0 192.168.0.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0 192.168.0.0 0.0.0.0 255.255.255.0 U 102 0 0 eth1 192.168.0.0 0.0.0.0 255.255.255.0 U 600 0 0 wlan0 192.168.225.0 0.0.0.0 255.255.255.0 U 1000 0 0 usb0
一、字段解释
| 字段名 | 含义 |
|—————|———————————————————————-|
| Destination | 目标网络或目标地址(0.0.0.0 表示默认路由) |
| Gateway | 网关地址(数据包发出去要经过的下一跳) |
| Genmask | 子网掩码,和 Destination 一起定义了网络范围 |
| Flags | 路由的标志:
U:该路由是启用的(up)G:该路由是一个网关路由(需要通过网关) | | Metric | 路由的“开销”值,数字越小优先级越高 | | Ref | 引用数(已弃用,通常为 0) | | Use | 数据包通过此路由的计数(可能是实时计数) | | Iface | 接口名,例如eth0、wlan0,表示哪个网络接口使用该路由 |
二、路由表分析
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 100 0 0 eth0
0.0.0.0 192.168.0.1 0.0.0.0 UG 102 0 0 eth1
0.0.0.0 192.168.0.1 0.0.0.0 UG 600 0 0 wlan0
0.0.0.0 192.168.225.1 0.0.0.0 UG 1000 0 0 usb0
- 前四行:默认路由(Destination 是 0.0.0.0)
- 表示当目标地址不匹配其他路由时,数据包会通过这些路由发送。
- 都是通过不同接口(
eth0,eth1,wlan0,usb0)发往不同网关。 Metric决定优先级,数值越小,优先级越高。- 所以系统会先使用
eth0(metric = 100)发包,其次是eth1,然后是wlan0,最后才是usb0。
- 所以系统会先使用
192.168.0.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 102 0 0 eth1
192.168.0.0 0.0.0.0 255.255.255.0 U 600 0 0 wlan0
192.168.225.0 0.0.0.0 255.255.255.0 U 1000 0 0 usb0
- 后四行:本地网络路由
- 表示这些接口(eth0、eth1、wlan0、usb0)可以直接访问对应的网段:
192.168.0.0/24可通过 eth0、eth1、wlan0 访问192.168.225.0/24可通过 usb0 访问
- 没有网关(Gateway 为
0.0.0.0),表示是直连网络
- 表示这些接口(eth0、eth1、wlan0、usb0)可以直接访问对应的网段:
三、前四行和后四行的区别
- ✅ 默认路由(Default Route)——前四行
- Destination 是
0.0.0.0 - 含义:当你访问一个不在本地网络中的地址(比如访问百度、谷歌)时,系统不知道具体怎么走,就会走“默认路由”。
- 就像 GPS 没有找到具体路线时,就走默认路线。
- Destination 是
- ✅ 本地网络路由(Local Network Route)——后四行
- Destination 是具体网段,比如
192.168.0.0 - 含义:如果目标 IP 在本地局域网(比如你家路由器或局域网内其他设备),就直接发到对应的网卡,不需要经过网关。
- 就像你在家里找家人,不用出门,直接去客厅就行。
- Destination 是具体网段,比如
🔍 对比分析
| 行号 | Destination | 类型 | 说明 |
|---|---|---|---|
| 1 | 0.0.0.0 |
默认路由 | 所有不匹配其他路由的流量都会走这个路由 |
| 2 | 0.0.0.0 |
默认路由 | 同上,只是通过不同网卡 |
| 3 | 0.0.0.0 |
默认路由 | 同上 |
| 4 | 0.0.0.0 |
默认路由 | 同上 |
| 5 | 192.168.0.0 |
本地网络路由 | 这个网段的流量通过 eth0 发出 |
| 6 | 192.168.0.0 |
本地网络路由 | 同上,通过 eth1 |
| 7 | 192.168.0.0 |
本地网络路由 | 同上,通过 wlan0 |
| 8 | 192.168.225.0 |
本地网络路由 | 这个网段的流量通过 usb0 走 |
📌 举个例子
场景 1:你访问 192.168.0.50
- 这个 IP 是
192.168.0.0/24网段的。 - 系统会查表,发现第 5、6、7 行都匹配(因为都是这个网段)。
- 它可能会优先使用
eth0(Metric 最小)。
场景 2:你访问 8.8.8.8(谷歌 DNS)
- 不在任何本地网段。
- 系统会查找默认路由(前四行),选 Metric 最小的,比如
eth0。 - 然后通过
192.168.0.1网关发出去。
✅ 总结口诀
“0.0.0.0 是默认走外网,大网段是本地内网。”
- 前四行(0.0.0.0):默认外网路由
- 后四行(192.168.X.0):本地内网直连
留下评论