现代linux已无路由缓存,所谓“清理路由缓存”不成立;实际问题源于错误路由条目、失效邻居映射或策略路由配置异常,需分别用ip route、ip neigh和ip rule命令排查修正。

Linux 中没有独立的“路由缓存表”供手动清理——自 Linux 2.6.39 起,内核已彻底移除路由缓存(routing cache)机制。当前所有主流发行版(包括 Ubuntu 22.04+、CentOS 8+、Debian 11+、Fedora 35+)均使用无状态、基于策略的路由查找(FIB, Forwarding Information Base),直接查路由表(ip route show 输出),不再维护传统意义上的“路由缓存”。
因此,“清理失效的路由缓存表”这个需求本身在现代 Linux 中不成立。但你实际遇到的网络异常(如转发失败、策略不生效、旧路径残留等),往往源于以下三类可验证、可干预的问题:
查看并修正失效或冗余的路由条目
路由表本身可能包含过时、冲突或错误配置的规则,这才是真问题源:
- 查看全部 IPv4 路由(含协议来源与作用域):
ip -4 route show - 筛选 kernel 自动添加的直连/网关路由(常因接口启停残留):
ip route show proto kernel scope link - 检查是否有重复 default 网关(易导致出口混乱):
ip route show default - 发现异常条目后,用
ip route del删除(需指定完整匹配项):sudo ip route del default via 192.168.1.254 dev eth0
清理邻居子系统中关联的失效映射
路由决策依赖下一跳的 MAC 地址(ARP/NDP)。若邻居条目失效(如 FAILED、STALE),即使路由正确,包也发不出去:
- 查看异常邻居状态:
ip neigh show nud failed,nud stale - 清除指定接口上所有动态失效条目:
sudo ip neigh flush dev eth0 nud failed,nud stale - 强制刷新某下一跳(先删后触发重学习):
sudo ip neigh del 192.168.1.1 dev eth0 && ping -c 1 192.168.1.1
验证并重载策略路由与多路径配置
若使用 ip rule 或 ip route add ... table xxx,旧规则可能未更新:
- 列出所有策略规则:
ip rule show - 删除特定规则(如误加的优先级 100 条目):
sudo ip rule del priority 100 - 重载整个策略路由配置(推荐写入
/etc/iproute2/rt_tables后执行):sudo ip route flush cache← 此命令仅清空 FIB 内部哈希桶预取提示(非缓存),极少需用;真正生效靠ip route replace或重启网络服务。
不复杂但容易忽略。











