linux中删除错误路由须精准匹配条目:用route -n或ip route show定位目标,网络路由用sudo route del -net 网段 netmask 掩码,主机路由用sudo route del -host ip,默认路由用sudo route del default;推荐ip route del按show输出完整格式执行,删错后可用ip route add default via 网关 dev 接口快速恢复。

Linux系统中存在多余或错误的路由条目时,会导致数据包转发异常、跨网段通信失败甚至彻底断网,必须精准定位并移除特定条目,不能笼统清空整个路由表。
先确认要删的是哪一条
运行 route -n 或 ip route show 查看当前全部路由,重点关注 Destination、Gateway、Genmask/Prefix 和 Iface 四列;【务必复制完整的目标网络+掩码(或CIDR)组合,例如 192.168.5.0/24 或 10.20.30.0 netmask 255.255.255.0】,漏掉一位数字或写错掩码都会导致命令执行成功但实际没删对。
特别注意:若目标是主机路由(单IP),必须带 -host 参数;若是网络路由(网段),必须带 -net 或 CIDR 表示法;默认网关则单独处理。
用 route 命令删除指定路由
方法一:删除网络路由(含子网掩码)
执行 sudo route del -net 192.168.5.0 netmask 255.255.255.0 —— 这里不需指定网关或设备,route 会自动匹配唯一项;如果该网段有多个路由(比如不同 metric 或不同 dev),则必须补全 gw 192.168.5.1 dev eth1 才能精准删除。
方法二:删除主机路由
执行 sudo route del -host 10.0.0.42 —— 主机路由不依赖子网掩码,直接写 IP 即可;若之前添加时指定了网关,删除时也无需再写 gw,否则报错“SIOCDELRT: No such process”。
方法三:删除默认网关
执行 sudo route del default —— 注意没有 gw 和 dev,这条命令会删掉当前唯一的默认路由;如果系统有多个默认路由(比如多网卡环境),它只删优先级最高的那条(Metric 最小的)。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
用 ip route 命令删除(推荐)
第一步:确认目标条目完整格式
运行 ip route show | grep "192.168.5.0",观察输出是否为 192.168.5.0/24 via 192.168.1.1 dev eth0 这类结构;【ip route 删除必须严格按 show 输出的格式书写,不能自行增减 via/dev/protocol 等字段】。
第二步:执行删除命令
例如原输出是 192.168.5.0/24 via 192.168.1.1 dev eth0,就执行:sudo ip route del 192.168.5.0/24 via 192.168.1.1 dev eth0。
第三步:验证是否已消失
再次运行 ip route show,检查该行是否彻底不见;如果还在,说明命令中某一部分(比如 via 后的 IP 或 dev 名称)与原始记录不一致,需重新比对。
这一步操作起来很简单,直接把上一步 grep 出来的整行复制过来,把开头的 192.168.5.0/24 替换为 del 就行。
误删后快速恢复默认网关
如果删错了默认路由导致 SSH 断连,且你有物理控制台或另一台机器可访问该服务器:
① 登录后立即执行 ip route add default via [原网关IP] dev [原出口网卡],例如 sudo ip route add default via 192.168.1.1 dev eth0;
② 验证连通性:ping -c 3 8.8.8.8;
③ 若成功,说明恢复完成。
注意:这个恢复命令必须在断网后第一时间执行,延迟超过 30 秒可能触发会话超时或防火墙重置策略。










