route命令

在计算机网络中,路由器是负责转发网络流量的设备,当数据报到达路由器时,路由器必须确定将其路由到目的地的最佳方法,route命令用于查看和更改内核路由表,在不同的系统上,命令语法不同,所以实际时可以查看命令的帮助来确定具体使用方法。

语法

route [-CFvnee]
route [-v] [-A family] add [-net|-host] target [netmask Nm] [gw Gw] 
      [metric N] i [mss M] [window W] [irtt m] [reject] [mod] [dyn] 
      [reinstate] [[dev] If]
route [-v] [-A family] del [-net|-host] target [gw Gw] [netmask Nm] 
      [metric N] [[dev] If]
route [-V] [--version] [-h] [--help]

参数

  • (none): 查看当前所有路由定义。
  • -A family: 使用指定的地址族,可以使用route --help查询支持的地址族,通常支持的地址族有inet (DARPA Internet)inet6 (IPv6)ax25 (AMPR AX.25)netrom (AMPR NET/ROM)ipx (Novell IPX)ddp (Appletalk DDP)x25 (CCITT X.25)
  • -F: 对内核的FIB转发信息库路由表进行操作,这是默认值。
  • -C: 操作内核的路由缓存。
  • -v: 输出详细操作。
  • -n: 显示数字地址,而不是尝试确定符号主机名,如果要确定到名称服务器的路由消失的原因,这将很有用。
  • -e: 使用netstat格式显示路由表,-ee将使用路由表中的所有参数生成很长的一行。
  • del: 删除路由。
  • add: 添加路由。
  • target: 目标网络或主机,可以用点分十进制或主机/网络名称提供IP地址。
  • -net: 添加的目标是一个网络。
  • -host: 添加的目标是一个主机。
  • netmask NM: 添加网络路由时,要使用的网络掩码。
  • gw GW: 通过网关路由数据包,必须首先可以访问指定的网关,这通常意味着必须事先设置到网关的静态路由,如果您指定本地接口之一的地址,它将用于确定数据包应路由到的接口。
  • metric M: 将路由表(由路由守护程序使用)中的度量字段设置为M。
  • mss M: 将通过此路由的连接的TCP最大段大小MSS设置为M个字节,缺省值为设备MTU减去标题,或在发生路径mtu发现时使用较低的MTU,当路径mtu发现不起作用时(通常是由于配置错误的防火墙阻止了所需的ICMP碎片),此设置可用于在另一端强制使用较小的TCP数据包。
  • window W: 将通过此路由的连接的TCP窗口大小设置为W字节,仅在AX.25网络上使用,并且驱动程序无法处理背靠背帧。
  • irtt m: 将通过此路由的TCP连接的初始往返时间irtt设置为m毫秒1-12000,仅在AX.25网络上使用,如果省略,则使用RFC 1122默认值300ms
  • reject: 安装阻塞路由,这将强制路由查找失败,这可以用于在使用默认路由之前屏蔽网络,此外要注意这不是用于防火墙。
  • mod, dyn, reinstate: 安装动态或修改后的路线,这些标志用于诊断目的,通常仅由路由守护程序设置。
  • dev If: 强制将路由与指定设备相关联,否则内核将尝试自行确定设备(通过检查现有路由和设备规格以及添加路由的位置),在大多数普通网络中,基本不需要此功能。如果dev If是命令行上的最后一个选项,则可以省略单词dev,因为它是默认值,否则路由修饰符的顺序metric - netmask - gw - dev无关紧要。
  • -h, --help: 输出帮助信息。

示例

显示绑定到服务器的所有IP的路由表。

route -n

添加默认网关,这将分配一个网关地址,所有不属于此网络的数据包都将在该网关地址上转发。

route add default gw 169.213.0.0

列出内核的路由缓存信息,为了更快地路由数据包,内核保留了路由缓存信息。

route -Cn

拒绝路由到特定主机或网络。

route add -host 192.168.1.51 reject

删除默认网关,这可能会导致某些互联网故障,所以在继续执行该命令之前,请记下默认网关。

route del default

当我们连接PPTP后,通常我们会配置将一个网段添加路由,来指定数据报通过ppp0

route add -net 192.168.0.0/16 dev ppp0

配置将一个域名添加路由,来指定数据报通过ppp0

route add -host jwgl.sdust.edu.cn dev ppp0

将所有D类多播IP路由都设置为通过eth0

route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0

每日一题

https://github.com/WindrunnerMax/EveryDay

参考

https://www.computerhope.com/unix/route.htm https://blog.csdn.net/u013485792/article/details/51700808 https://www.geeksforgeeks.org/route-command-in-linux-with-examples/