详解 linux 路由 route 命令
1. 显示当前路由表
route -n
在 route -n
命令的输出中可以看见标志即路由类型。以下是一些常见的路由类型及其含义:
U
表示该路由是可用的 (up)G
表示该路由是一个默认网关 (gateway)H
表示该路由是一个主机路由 (host)UG
表示该路由同时具有默认网关和可用的属性UGH
表示该路由同时具有默认网关、可用和主机路由属性
因此,对于输出中的每一行,第一列的字符组合表示该路由的类型和属性。例如,UG
表示该路由是一个默认网关,并且可用。同样,UGH
表示该路由是一个主机路由,并且是默认网关,并且可用。
请注意,这只是常见的路由类
2. 新增路由
在 route add 命令中,可以使用 -gw 选项指定一个网关,也可以使用 -dev 选项指定要使用的网络设备。
并且这两个选项可以同时使用,具体取决于网络设置和路由表配置。
2.1 添加到网络的路由
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.0.1
# 如果指定掩码为 255.255.255.255 则变为了到主机的路由
route add -net 192.168.1.2 netmask 255.255.255.255 gw 192.168.0.1
2.2 添加到主机的路由
route add -host 192.168.1.100 gw 192.168.0.1
2.3 添加持久路由
persist
选项是用于将静态路由添加到系统启动时的路由表中。当系统启动时,它会读取 /etc/network/interfaces
或 /etc/sysconfig/network-scripts/ifcfg-*
等配置文件,并在加载网络接口时自动执行 route
命令以添加静态路由
在 route add
命令中,指定 persist
选项将使添加的路由持久化,并在系统重启后自动加载。这样可以确保添加的路由在系统重新启动后仍然存在,而不需要手动重新添加路由。
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.0.1 persist
2.4 添加路由时指定接口
route add -net 192.168.1.0 netmask 255.255.255.0 dev eth0
3. 删除路由
删除类型基本只需要将添加路由的命令 add 改为 del 即可,下面的删除对应上面的新增。
3.1 删除到网络的路由
route del -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.0.1
3.2 删除到主机的路由
route del -host 192.168.1.100 gw 192.168.0.1
3.3 删除持久路由
route del -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.0.1
persist
选项指示添加的路由应该保存到系统启动时的路由表中,因此,在删除静态路由时不需要使用 -persist
选项。
3.4 删除指定接口路由
route del -net 192.168.1.0 netmask 255.255.255.0 dev eth0
4. 更改路由表中的一条路由
4.1 更改到网络的路由网关
route change -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.0.2
4.2 更改到主机的路由网关
route change -host 192.168.1.100 gw 192.168.0.2
4.3 更改持久路由网关
route change -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.0.2 persist
4.4 更改路由指定接口
route change -net 192.168.1.0 netmask 255.255.255.0 dev eth1
5. 清空路由表
route flush
使用 route flush
命令将清空整个路由表,这意味着所有当前定义的路由都将被删除。在路由表被清空后,系统将无法将数据包路由到其目标地址,将无法访问网络。
因此,在执行 route flush
命令之前,应该确保已经备份了路由表,以便在需要时可以快速恢复。如果需要仅删除特定的路由表项,应该使用 route del
命令来删除特定的路由表项。