ip路由不可达本质是数据包发得出去但收不到响应,关键需检查接口状态(ip link show确认up和lower_up)、ip与子网匹配(ip addr show验证前缀长度)、默认路由存在性(ip route show查default via)、下一跳可达性及arp解析(ip neigh show查网关mac是否reachable)。

IP路由不可达异常,本质是数据包发得出去、但收不到响应,常见于“能配IP却ping不通网关或外网”。问题不在IP本身,而在它怎么“走出去”——关键看路由表是否完整、接口是否真正就绪、下一跳是否可达。
检查接口状态和链路层连通性
路由依赖物理通路。即使IP配置正确,网卡没起来或网线没插好,所有路由都无效。
- 运行 ip link show,确认目标接口(如 ens33)显示 state UP 和 LOWER_UP;缺一不可
- 若只有 state UP 但无 LOWER_UP,说明驱动加载了但物理连接失败:查网线、交换机端口指示灯、用 sudo ethtool ens33 看 Link detected: yes/no
- 接口为 DOWN 时,执行 sudo ip link set ens33 up 启用;仍不亮,需排查驱动或硬件
验证IP地址与子网匹配关系
错误的子网掩码会导致系统误判目标是否“直连”,从而跳过正确路由,甚至自动生成错误的本地广播路由。
- 用 ip addr show ens33 查看分配的 IP 和前缀长度(如 192.168.1.100/24),确保它和实际物理网络一致
- 若手动配置为 /16 却连在 /24 网段,系统会认为 192.168.2.1 是直连地址,尝试 ARP 而非走网关,结果超时
- 避免使用 169.254.x.x(APIPA 地址),这是 DHCP 失败的标志,说明基础寻址已中断
确认路由表中存在有效默认路由
没有 default route,系统就不知道“其他所有地址”该往哪送。很多故障表面是 ping 不通,根源只是少了一行路由。
- 运行 ip route show,查找含 default via 的条目,例如 default via 192.168.1.1 dev ens33
- 若缺失,临时添加:sudo ip route add default via 192.168.1.1 dev ens33(注意替换为真实网关和接口名)
- 若存在但 via 地址本身不可达(比如网关宕机或 IP 写错),则需先 ping 网关;不通再查网关设备或上游配置
排除下一跳不可达和ARP解析失败
即使路由表正确,若无法通过 ARP 获取网关 MAC 地址,数据包仍发不出去。这是“路由可达但链路不通”的典型表现。
- 执行 ip neigh show,查看网关 IP 是否已在邻居表中,状态是否为 REACHABLE 或 STALE
- 若显示 INCOMPLETE 或直接没有该条目,说明 ARP 请求未得到响应:检查网关是否开机、是否在同一二层网络、是否存在 VLAN 或 MTU 隔离
- 可手动触发 ARP:ping -c 1 192.168.1.1 && ip neigh show | grep 192.168.1.1,观察状态变化











