ip route 是当前 linux 系统中查看路由表最可靠、最通用的方式,直接读取内核 netlink 接口,输出结构清晰,支持 ipv4/ipv6 统一处理,无需额外安装;运行 ip route show 可列出主路由表全部条目,其中 default via x.x.x.x 行即为默认网关,用 ip route | grep 'default via' 可精准提取,查特定网络如 ip route show 10.0.1.0/24,分离协议用 ip -4 route 和 ip -6 route;route -n 和 netstat -rn 依赖 net-tools 包,在精简发行版中需手动安装,且可能缺失 ipv6 支持或解析滞后,遇不一致时应以 ip route 为准。

ip route 是当前 Linux 系统中查看路由表最可靠、最通用的方式,其他命令如 route -n 或 netstat -rn 仅在特定场景下有补充价值,且可能缺失 IPv6 支持或依赖未预装的包。
用 ip route 查看主路由表(含默认网关)
这是绝大多数排查场景的第一步。它直接读取内核 netlink 接口,输出结构清晰,IPv4/IPv6 统一处理,无需额外安装。
- 运行
ip route show即可列出全部条目;默认网关行形如default via 192.168.1.1 dev eth0 - 只提取默认网关:用
ip route | grep 'default via',注意不要漏掉via—— 有些系统会写成default dev eth0 scope link(直连默认路由,无下一跳) - 查某目标网络是否在表中:例如
ip route show 10.0.1.0/24,若无输出说明无匹配路由 - 分离 IPv4/IPv6:分别执行
ip -4 route和ip -6 route,避免混在一起干扰判断
当 route -n 报 command not found 时怎么办
该命令属于 net-tools 包,在 Alpine、Ubuntu Server Minimal、Fedora Silverblue 等精简发行版中默认不安装。它不是“失效”,而是根本不存在。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- Debian/Ubuntu 系统:运行
sudo apt install net-tools - RHEL/CentOS 7/8:运行
sudo yum install net-tools或sudo dnf install net-tools - Alpine:运行
apk add net-tools - 装完后仍需加
-n参数,否则route会尝试 DNS 反查,卡住几秒——这不是错误,是设计行为
为什么 netstat -rn 有时显示的网关和 ip route 不一致
两者数据源相同(都是内核路由子系统),但 netstat 的解析逻辑更老旧,对某些策略路由或自定义表支持不完整,尤其在 systemd-networkd 或 NetworkManager 动态管理环境下容易滞后。
- 典型现象:
netstat -rn显示0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 eth0(即无 gateway),而ip route明确显示default via 192.168.1.1 - 原因:该接口可能由 NetworkManager 管理,
netstat未正确识别其动态注入的 default 路由 - 验证方法:运行
nmcli device show | grep IP4.GATEWAY,或networkctl status(systemd-networkd 场景) - 结论:遇到不一致,以
ip route为准;netstat -rn仅用于兼容旧脚本或与连接状态(netstat -tun)联查时使用
修改路由前必须确认的三件事
临时添加或删除路由看似简单,但一旦出错会导致断网。执行 ip route add 或 del 前务必核对:
-
网卡名是否真实存在且 UP:用
ip link show看state UP,别把eth0写成enp0s3或已 rename 的名字 -
网关 IP 必须能从该网卡 reach:比如
ip route add default via 10.0.0.1 dev eth0前,先ping -I eth0 10.0.0.1,否则路由无效 -
不要覆盖已有 default:Linux 不允许多条 active default 路由共存;若已有
default via 192.168.1.1,再加一条会报RTNETLINK answers: File exists—— 必须先ip route del default再 add
ip route show table all 输出里有多个非 main 表(比如 table 100),说明系统启用了基于源地址或 fwmark 的分流规则——此时只查 main 表会漏掉关键路径。










