Linux如何查看路由表?常用命令及方法有哪些?

在Linux系统中,路由表是网络通信的核心组件,它决定了数据包的转发路径,无论是排查网络问题、配置静态路由,还是理解系统的网络行为,掌握查看路由的方法都至关重要,Linux提供了多种命令来查看路由信息,包括传统的route命令和现代的ip route命令,以及netstat等辅助工具,本文将详细介绍这些命令的使用方法、输出解析及实际应用场景。

linux 如何查看路由

使用route命令查看路由

route命令是早期Linux系统中用于查看和操作路由表的工具,属于net-tools包,尽管其功能逐渐被ip route替代,但在某些场景下(如维护旧系统)仍会用到。

基本用法

最常用的参数是-n(以数字形式显示,不解析主机名),避免DNS查询带来的延迟:

route -n

输出解析

执行上述命令后,输出类似如下内容:

Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG        0 0      eth0
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0      eth0

各字段含义如下(表格形式总结更清晰):

字段 说明
Destination 目标网络或主机IP地址。0.0.0表示默认路由(匹配所有未知目标)
Gateway 下一跳路由器的IP地址。0.0.0表示直接连接(无需经过网关)
Genmask 子网掩码,用于确定目标网络的范围。0.0.0表示默认路由的掩码
Flags 路由标志,常见值:U(路由可用)、G(网关路由)、H(主机路由)、D(动态路由)
MSS TCP最大分段大小(通常为0,由系统自动调整)
Window TCP窗口大小(通常为0,由系统自动调整)
Iface 输出接口,即数据包从哪个网卡发出

其他常用参数

  • -v:显示详细信息(包括路由协议类型等);
  • -A inet6:查看IPv6路由(需系统支持IPv6);
  • add/del:手动添加或删除路由(需root权限,如route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.2)。

使用ip route命令查看路由

ip routeiproute2工具包的核心命令,功能更强大、输出更灵活,是现代Linux系统(如Ubuntu、CentOS 7+)的推荐工具。

基本用法

最简单的查看方式:

ip route show

或简写为:

linux 如何查看路由

ip route

输出解析

输出格式更简洁直观,

default via 192.168.1.1 dev eth0 proto dhcp metric 100  
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.10 metric 100  

各字段含义如下:

字段 说明
default 默认路由(目标为0.0.0/0的简写)
via 下一跳IP地址(网关),若为直接连接则省略该字段
dev 输出接口
proto 路由协议:kernel(内核路由,如直连路由)、dhcp(DHCP分配)、static(静态配置)
scope 路由作用域:link(直连网络)、host(本地主机)、global(全局路由)
src 源IP地址(可选,指定从哪个IP发送数据包)
metric 跃点数(越小表示优先级越高,影响路由选择)

常用参数

  • -4/-6:仅显示IPv4/IPv6路由;
  • -v:显示详细信息(包括路由表ID、缓存等);
  • list:同show,可指定目标(如ip route list 192.168.1.0/24);
  • get:获取到达特定目标的详细路由路径(如ip route get 8.8.8.8)。

示例:查看特定目标的路由

ip route get 8.8.8.8

输出会显示到达8.8.8所经过的网关、接口、跃点数等完整路径,

8.8.8 via 192.168.1.1 dev eth0 src 192.168.1.10 uid 1000  
    cache mtu 1500 advmss 1460 hoplimit 64

查看路由表的附加信息

查看路由统计信息

若需了解路由的使用情况(如数据包数量、字节数),可结合ssnetstat

netstat -s | grep "Routing"  # 查看路由统计

查看多路由表

Linux支持多路由表(如maindefaultlocal),可通过ip route show table <表名>查看:

ip route show table main  # 查看主路由表
ip route show table local  # 查看本地路由表(含127.0.0.0等)

routeip route的对比

为方便选择,以下是两个命令的对比总结:

对比维度 route命令 ip route命令
所属工具包 net-tools(逐渐被淘汰) iproute2(现代系统默认)
功能丰富度 基础路由查看与操作 支持IPv4/IPv6、多路由表、路由策略等
输出格式 表格形式,字段固定 灵活的文本格式,可自定义显示
扩展性 有限 强大(如结合ip rule实现策略路由)
系统兼容性 旧系统(如CentOS 6) 新系统(CentOS 7+、Ubuntu 18.04+等)

相关问答FAQs

Q1: 如何快速查看Linux系统的默认路由?

解答
默认路由是目标为0.0.0/0的路由,表示所有未知目标都通过该网关转发,可通过以下命令快速查看:

linux 如何查看路由

  • 使用ip route(推荐):
    ip route show default

    输出示例:default via 192.168.1.1 dev eth0 proto dhcp metric 100,其中via后的168.1.1即为默认网关。

  • 使用route -n
    route -n | grep "^0.0.0.0"

    输出示例:0.0.0 192.168.1.1 0.0.0.0 UG 0 0 eth0Gateway列即为默认网关。

Q2: 为什么route命令在某些系统上不可用,而ip route可以?

解答
route命令属于net-tools工具包,而ip route属于iproute2工具包,在较新的Linux发行版中(如Ubuntu 20.04、CentOS 8),net-tools可能不再默认安装,而iproute2是基础网络工具的核心组件,通常默认包含。

若遇到route: command not found错误,可通过以下方式解决:

  1. 安装net-tools(不推荐,仅用于兼容旧系统):
    sudo apt install net-tools  # Debian/Ubuntu
    sudo yum install net-tools  # CentOS/RHEL
  2. 直接使用ip route(推荐):现代系统所有路由操作均支持,无需额外安装。

iproute2的设计更符合现代网络需求,支持IPv6、策略路由等高级功能,因此建议优先使用ip route

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/22076.html

(0)
酷番叔酷番叔
上一篇 2025年9月9日 07:23
下一篇 2025年9月9日 07:36

相关推荐

  • Linux如何解除SSH免密登录配置?

    Linux系统中,免密登录通常基于SSH密钥认证实现,通过将本地公钥添加到远程服务器的~/.ssh/authorized_keys文件中,实现无需输入密码即可登录,若需要解除免密登录(如安全需求变更、密钥泄露或仅需临时禁用),可通过以下方法操作,具体场景和步骤如下:解除免密登录的核心方法免密登录的核心是SSH密……

    2025年9月22日
    11900
  • Linux系统如何有效清除内存空间并释放闲置内存?

    Linux系统中的内存管理机制与其他操作系统有所不同,它会主动利用空闲内存作为缓存(Cache)和缓冲区(Buffers),以提升文件读写和系统响应速度,当用户查看内存使用情况时,常会发现“已用内存”较高,但这并不意味着内存不足或需要手动清理,若确实需要释放被占用的内存(如缓存),可通过特定操作实现,以下是详细……

    2025年10月4日
    11000
  • Debian/Ubuntu如何用apt管理软件?

    在Linux系统中,查询某个软件包是否已安装是日常管理中的常见需求,不同发行版使用不同的包管理工具,因此方法各有差异,以下详细介绍主流Linux发行版的查询方法,并解释如何解读结果,操作前请确认您的发行版类型(通过命令 cat /etc/os-release 查看),这些系统基于Debian,包管理工具为 dp……

    2025年7月5日
    16800
  • Linux如何安装m4?详细步骤与方法说明

    m4是GNU提供的一个强大的宏处理器,广泛用于文本处理、代码生成以及构建系统(如autoconf)中,在Linux系统中,m4通常作为基础工具被预装,但某些精简版系统或特定场景下可能需要手动安装,本文将详细介绍在不同Linux发行版中安装m4的方法,包括使用包管理器安装、从源码编译安装,以及安装后的验证和基本使……

    2025年8月22日
    13600
  • cdlinux系统如何切换到中文语言界面?

    CDLinux是一款轻量级的Linux发行版,常被用于应急系统维护、数据恢复或作为便携式操作系统使用,由于其默认界面语言可能为英文或其他语言,对于中文用户而言,切换到中文版能显著提升操作体验,本文将详细介绍CDLinux切换到中文版的完整步骤,包括语言包安装、环境配置、字体优化及输入法设置等关键环节,帮助用户顺……

    2025年9月25日
    12300

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信