当前位置:首页 > Linux > 正文

Linux如何看路由表?

在 Linux 中使用 route -n 命令可查看路由表(以数字格式显示 IP 和网关,避免 DNS 解析),更现代的方法是使用 ip route show 命令查看。

使用 ip route 命令(推荐)

命令示例

ip route show

输出示例

default via 192.168.1.1 dev eth0 proto static 192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100 10.0.0.0/8 via 192.168.1.2 dev eth0 metric 100

解析

Linux如何看路由表? 第1张

  • default:默认路由(缺省网关),表示所有非本地网络的数据包通过网关 168.1.1 从网卡 eth0 发出。
  • 168.1.0/24:本地网络路由,目标地址在此网段的数据包直接通过 eth0 发送。
  • 0.0.0/8:静态路由,目标网段 0.0.0/8 的数据包通过 168.1.2 转发。

    优势

  • 来自 iproute2 工具包(现代Linux默认预装),功能全面且高效。
  • 支持IPv4/IPv6双栈,是取代传统命令的推荐方案。


使用 route 命令(传统方案)

命令示例

route -n # -n 参数禁用DNS解析(提升速度)

输出示例

Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 10.0.0.0 192.168.1.2 255.0.0.0 UG 100 0 0 eth0

字段解析

Linux如何看路由表? 第2张

  • Destination:目标网络(0.0.0 表示默认路由)。
  • Gateway:网关地址(0.0.0 表示直连网络)。
  • Flags:路由标志(U=活跃路由,G=网关路由)。

    注意

  • 需安装 net-tools 包(部分新系统可能未预装)。
  • 适合快速检查,但功能不如 ip route 强大️。


通过 /proc 文件系统查看

命令示例

cat /proc/net/route

输出特点

以十六进制显示路由表(适合脚本解析):

Iface Destination Gateway Flags RefCnt Use Metric Mask eth0 00000000 0101A8C0 0003 0 0 0 00000000 eth0 0000A8C0 00000000 0001 0 0 0 00FFFFFF

应用场景

Linux如何看路由表? 第3张

  • 开发调试或自动化脚本处理原始路由数据。
  • 普通用户建议优先使用 ip route(可读性更佳)。


使用 netstat(备用方案)

命令示例

netstat -rn # -r 显示路由表,-n 禁用DNS解析

输出格式与 route -n 类似,属于传统工具,逐渐被 ip 命令取代。


总结与最佳实践

场景 推荐命令 说明
日常查看路由表 ip route show 信息全面,默认预装
兼容旧系统或脚本 route -n 需安装 net-tools
调试或底层数据处理 cat /proc/net/route 原始数据,不易读

专业建议

  1. 优先选择 ip route:作为Linux基金会推荐的标准工具,它持续更新并支持所有新特性。
  2. 理解关键路由条目:重点关注 default(网关)和本地网络路由,它们是连通性的基础。
  3. 权限问题:普通用户可查看路由表,但修改需 sudo 权限。

引用说明

通过以上方法,您可以精准掌握Linux系统的网络路径规划,快速诊断连接问题,建议收藏本指南以备日常运维使用!

0