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