最推荐用 ip route 查看路由,它直接读取内核信息、支持双栈、无需安装、输出清晰;ip route show 列主表,加 grep 提取默认网关,指定网段或加 -4/-6 可精准查询。

最推荐用 ip route 查看,它是现代 Linux 系统的标准工具,直接读取内核路由信息,支持 IPv4 和 IPv6,无需额外安装,输出清晰可靠。
用 ip route 查主路由表(含默认网关)
这是日常排查的第一步。运行:
-
ip route show—— 列出主路由表全部条目 -
ip route | grep 'default via'—— 快速提取默认网关(注意必须带via,有些系统写成default dev eth0 scope link,表示直连无网关) -
ip route show 10.0.1.0/24—— 检查某网段是否有对应路由,无输出说明不匹配 -
ip -4 route和ip -6 route—— 分开查看 IPv4 或 IPv6 路由,避免混杂干扰判断
route -n 和 netstat -rn 的使用场景
这两个命令属于旧工具集 net-tools,在精简系统(如 Alpine、Ubuntu Server Minimal)中默认不装,需手动安装:
- Debian/Ubuntu:
sudo apt install net-tools - RHEL/CentOS:
sudo yum install net-tools或sudo dnf install net-tools - Alpine:
apk add net-tools
装好后务必加 -n 参数,否则 route 会尝试反向 DNS 解析,卡顿几秒;netstat -rn 输出中找 Destination 为 0.0.0.0 的行,其 Gateway 列即默认网关。
为什么有时几个命令结果不一致
根本原因在于数据源和解析逻辑不同:
-
ip route直接对接内核 netlink 接口,实时准确,是事实标准 -
netstat -rn解析较老旧,在 NetworkManager 或 systemd-networkd 动态管理环境下可能滞后,比如显示0.0.0.0 0.0.0.0 0.0.0.0 U(无网关),而ip route明确写出default via 192.168.1.1 -
route -n依赖用户空间解析,部分发行版已弃用,仅作兼容参考
脚本或底层调试可用 /proc/net/route
这是内核暴露的原始路由表,十六进制格式,不适合人工阅读,但适合自动化处理:
-
cat /proc/net/route查看原始内容 - 默认路由对应第二列为
00000000的行,第四列(Gateway)为非零值即网关地址(需转为点分十进制)



















