Linux route命令详解

发布时间:2023年12月18日

1、介绍

route命令用于显示和操作IP路由表,它允许用户查看当前系统的路由信息,添加新的路由、删除已有的路由等。

2、命令

2.1 命令选项
  • -n, --numeric:不解析主机名,直接显示IP地址。使用这个选项可以加快显示速度,因为不需要进行DNS解析。
  • add:添加一条新的路由。
  • del:删除一条现有的路由。
  • -net:指定目标地址为网络地址。
  • -host:指定目标地址为主机地址。
  • -N, 在某些系统中,指定使用数字格式显示主机名。
  • -v, --verbose:显示详细信息,包括操作的结果和详细的路由表信息。
  • -e, --extend:显示更多的信息,包括路由表的一些扩展属性。
  • -F, --fib:显示前向信息库(FIB),这是路由表的一部分,用于存储路由信息。
  • -C, --cache:显示路由缓存,而不是FIB。路由缓存是内核中存储已解析的路由信息的地方,它可以加快路由查找速度。
  • <AF>:指定地址族(Address Family),可以使用-4、-6、-A <af>或--<af>来指定。默认的地址族为inet,即IPv4。
  • flush:清空路由表中的所有路由。
  • -h, --help:显示帮助信息,可以指定地址族来显示特定地址族的帮助信息。
  • -V, --version:显示route命令的版本信息和作者信息。
2.2 关于route -n

Linux 系统内核维护着一个路由表,其中包含了关于如何到达不同网络的信息。这些路由信息可以手动配置,也可以通过动态路由协议(如 RIP、OSPF、BGP 等)自动学习。route -n命令的输出包括目标网络、目标网络的网络掩码、网关地址、使用的网络接口等信息,这些信息都是从系统的路由表中获取。使用route -n命令一般的返回格式如下:

root@orangepizero2:~# route -n
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    600    0        0 wlan0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
172.20.247.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     600    0        0 wlan0

其中:

  • Destination:目标网络或主机的IP地址。这一列显示了路由表中的目的地。
  • Gateway:下一跳的网关IP地址。如果目标是本地网络上的主机,则网关列显示为"*"。
  • Genmask:子网掩码,用于确定目标地址的网络部分。
  • Flags:标志,用于表示路由的各种属性。
  • Metric:用于确定路由的优先级,当存在多条路由到同一目的地时,根据Metric值来确定使用哪条路由。
  • Ref:引用计数,表示有多少个进程正在使用该路由。
  • Use:使用计数,表示该路由被使用的次数。
  • Iface:出接口,表示数据包将通过哪个网络接口发送。

Flags有多种情况:

  • U(Up):表示该路由是激活的,可以使用。
  • H(Host):表示目标是一个主机地址,而不是一个网络地址。
  • G(Gateway):表示该路由需要通过网关发送数据。
  • R(Reinstate):表示路由是重新启用的。
  • D(Dynamic):表示路由是动态添加的。
  • M(Modified):表示路由已经被修改。
  • A(Address):表示该路由是一个广播地址。
  • C(Cache):表示该路由是来自路由缓存

对于“UG”则表示该路由既需要通过网关发送数据,又是激活的。

2.3 其它常用命令
2.3.1 添加路由

添加一条到192.168.1.0/24网络的路由,使用以下命令,表示将192.168.1.0/24网络的数据包发送到网关192.168.1.1.进行转发。

route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1

2.3.2 删除路由

删除已有的路由,使用以下命令,删除刚才添加的路由。

route del -net 192.168.1.0 netmask 255.255.255.0

文章来源:https://blog.csdn.net/cesheng3410/article/details/135015311
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。