linux路由排查核心是确认默认路由是否存在且正确:运行ip route show检查是否有default via [网关ip],缺失或错误则外网不通;用ip route get [目标ip]精准定位实际路径;再ping [网关ip]验证网关可达性,排除物理、防火墙或rp_filter干扰。

Linux中路由管理排查,核心是确认系统是否知道“数据该往哪发”。路由配置出错,最典型的表现是:能通局域网(比如 ping 得通网关),但 ping 不通外网(如 8.8.8.8),或者只能访问部分网络(比如能上百度但连不上内网服务器)。问题不在物理链路,而在内核的“决策地图”——路由表。
查当前路由表:看有没有默认路由
运行 ip route show,重点看第一行是否含 default via [网关IP]。这是所有非本地流量的出口。没有它,机器就只认得自己和同网段设备,无法访问外部网络。如果缺失,说明网关没配好或 DHCP 没拿到;如果存在但网关 IP 明显错误(比如写成 192.168.2.1 而实际网关是 192.168.1.1),则需修正配置文件或临时添加。
验证具体目标走哪条路:用 ip route get
当访问某个特定地址不通时,别猜,直接问内核:“我要发包到 172.16.10.20,你打算走哪?”运行 ip route get 172.16.10.20。它会返回实际匹配的路由条目,包括出接口和下一跳网关。这比看完整路由表更精准,能立刻发现是否误走了默认路由、是否因子网掩码配置错误导致本该直连的地址被当成远程转发。
检查网关本身是否可达
有默认路由不等于网关就通。路由表只是“指路”,真正要走通,网关设备本身必须在线且允许通信。用 ping -c 3 [网关IP] 测试。如果 ping 不通,问题可能在:物理连接(网线、交换机端口)、网关设备宕机、宿主机防火墙拦截了 ICMP、或者网关开启了反向路径过滤(rp_filter)并丢弃了响应包。此时可配合 ethtool [接口名] 看链路状态,或临时关闭防火墙验证。
留意多网卡或多路由场景
服务器有多个网卡(如 eth0 接外网、eth1 接内网)时,容易出现路由冲突。例如,内网流量本该走 eth1 的网关,却因默认路由优先级高而误走 eth0。这时要检查:
- 是否存在重复或重叠的路由条目
- 各路由的 metric 值(数值越小优先级越高)是否合理
- 是否需要为特定网段添加静态路由,例如:ip route add 10.0.0.0/8 via 192.168.10.1 dev eth1











