要准确查看Linux系统路由表,可用route -n(快速查默认网关)、ip route show(推荐,支持多协议与策略路由)、netstat -rn(旧系统兼容)、ip route show table local(查本地路由表)及grep筛选目标条目。

如果您需要确认 Linux 系统当前如何转发网络数据包,或排查网络连通性异常,就必须准确查看系统路由表信息。以下是多种可靠方法的具体操作步骤:
一、使用 route -n 命令查看路由表
该命令以纯数字形式显示 IPv4 路由表,避免 DNS 解析延迟,输出结构清晰,适用于快速定位默认网关与直连网络。Flags 列中 UG 表示该条目为默认网关,U 表示路由有效,G 表示需经网关转发。
1、在终端中输入:route -n
2、观察输出中 Destination 为 0.0.0.0 的行,其 Gateway 列即为默认网关地址
3、检查 Interface 列,确认对应出接口(如 eth0、wlan0)是否处于活动状态
二、使用 ip route show 命令查看路由表
这是现代 Linux 发行版推荐的标准命令,支持多协议族(IPv4/IPv6)、可区分路由表(如 main、local、default),并显示 proto、metric、scope 等元信息,适合深入分析路由策略与策略路由配置。
1、执行:ip route show
2、若仅需查找默认路由,运行:ip route show | grep default
3、若需追踪某目标 IP 的实际路径,执行:ip route get 8.8.8.8,输出将包含确切的出接口与下一跳
三、使用 netstat -rn 命令查看路由表
该命令输出格式与 route -n 高度相似,属于传统 net-tools 工具集的一部分,适用于旧系统(如 CentOS 6 或未预装 iproute2 的精简环境)。-r 表示路由表,-n 表示禁用主机名解析。
1、输入:netstat -rn
2、核对 Kernel IP routing table 表头下的各字段含义:Destination、Gateway、Genmask、Iface
3、注意:若提示 command not found,请先安装 net-tools 包,例如在 Debian/Ubuntu 上执行 apt install net-tools
四、查看特定路由表或高级路由信息
Linux 支持多路由表机制(通过 policy routing 实现),主表(table 254)之外还存在 local 表(table 255)等。route 命令无法访问 local 表,而 ip route 可指定 table 参数进行精确查询。
1、查看本地路由表(含链路本地地址、广播地址等):ip route show table local
2、列出所有可用路由表名称与编号:cat /etc/iproute2/rt_tables
3、查看 FIB(Forwarding Information Base)内核路由缓存:route -C 或 ip route show cache
五、结合 grep 快速筛选目标路由
当路由表条目较多时,直接过滤可提升效率。静态路由通常体现为无动态协议标记(如 proto kernel 或 proto static)的显式条目,可通过目的网络或网关匹配快速定位。
1、查找指向 192.168.10.0/24 网段的所有路由:ip route show | grep "192.168.10.0/24"
2、筛选所有经网关 10.0.0.1 转发的路由:route -n | grep "10.0.0.1"
3、仅显示非直连(即需经网关)的网络路由:ip route show | awk '$2 != "dev" && $2 != "linkdown" {print}'










