Linux 路由 route 命令

route 命令用于查看和操作 Linux 操作系统中的 路由表 。它允许您添加,删除和修改 路由 表的条目,以确定数据包从一台计算机到另一台计算机的传输路径。

以下是一些 route 命令的常用选项:

  • route -n:以数字格式显示路由表。这将以 IP 地址和 网络 掩码的数字形式而非主机名和网络掩码的形式来显示路由表的内容。

  • route add:添加新的路由表项。

  • route del:从路由表中删除一条路由。

  • route change:更改路由表中的一条路由。

  • route flush:清空整个路由表。

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 命令来删除特定的路由表项。

正文完
 0
admin
版权声明:本站原创文章,由 admin 2016-11-04发表,共计1955字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处:https://www.mlzj.net。