【Linux】一步一步学Linux——route命令(169)

00. 目录

01. 命令概述

route命令用来显示并设置linux内核中的网络路由表,route命令设置的路由主要是静态路由。要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。

在linux系统中设置路由通常是为了解决以下问题:该linux系统在一个局域网中,局域网中有一个网关,能够让主机访问Internet,那么就需要将这台机器的ip地址设置为linux机器的默认路由。

要注意的是:直接在命令行下执行route命令来添加路由,不会永久保存。当网卡重启或者机器重启之后,该路由就失效了。可以在/etc/rc.local中添加route命令来保证该路由设置永久有效。

02. 命令格式

route [-nNvee] [-FC] [<AF>]           List kernel routing tables
route [-v] [-FC] {add|del|flush} ...  Modify routing table for AF.
route {-h|--help} [<AF>]              Detailed usage syntax for specified AF.
route {-V|--version}                  Display version/author and exit.

03. 常用选项

-v
    选用细节操作模式
-A family
    用指定的地址族(`inet',`inet6')。
-n
    以数字形式代替解释主机名形式来显示地址。此项对试图检测对域名服务器进行路由发生故障的原因非常有用。
-e
    用netstat(8)的格式来显示选路表。-ee将产生包括选路表所有参数在内的大量信息。
-net
    路由目标为网络。
-host
    路由目标为主机。
-F
    显示内核的FIB选路表。其格式可以用-e 和 -ee选项改变。
-C
    显示内核的路由缓存。
del
    删除一条路由。
add
    添加一条路由。
target
    指定目标网络或主机。可以用点分十进制形式的IP地址或主机/网络名。
netmask Nm
    为添加的路由指定网络掩码。
gw Gw
    为发往目标网络/主机的任何分组指定网关。注意:指定的网关首先必须是可达的。也就是说必须为该网关预先
    指定一条静态路由。如果你为本地接口之一指定这个网关地址的话,那么此网关地址将用于决定此接口上的分组
    将如何进行路由。这是BSD风格所兼容的。
metric M
    把选路表中的路由值字段(由选路进程使用)设为M。
mss M
    把基于此路由之上的连接的TCP最大报文段长度设为M字节。这通常只用于优化选路设置。默认值为536。
window W
    把基于此路由之上的连接的TCP窗口长度设为W字节。这通常只用于AX.25网络和不能处理背对背形式的帧的设
    备。
irtt I
    把基于此路由之上的TCP连接的初始往返时间设为I毫秒(1-12000)。这通常也只用于AX.25网络。如果省略此
    选项,则使用RFC1122的缺省值300ms。
reject
    设置一条阻塞路由以使一条路由查找失败。这用于在使用缺省路由前先屏蔽掉一些网络。但这并不起到防火墙的
    作用。
mod, dyn, reinstate
    设置一条动态的或更改过的路由。这些标志通常只由选路进程来设置。这只用于诊断目的,
dev If
    强制使路由与指定的设备关联,因为否则内核会自己来试图检测相应的设备(通常检查已存在的路由和加入路由
    的设备的规格)。在多数正常的网络上无需使用。
    如果dev If是命令行上最后一个指定的选项,那么可以省略关键字dev,因为它是缺省值。否则路由修改对象
    (metric - netmask- gw - dev)无关紧要。

04. 参考示例

4.1 显示当前路由表

[root@localhost ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         gateway         0.0.0.0         UG    100    0        0 ens33
172.16.0.0      0.0.0.0         255.255.254.0   U     100    0        0 ens33
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
[root@localhost ~]# 

其中Flags为路由标志,标记当前网络节点的状态,Flags标志说明:

  • U Up表示此路由当前为启动状态。
  • H Host,表示此网关为一主机。
  • G Gateway,表示此网关为一路由器。
  • R Reinstate Route,使用动态路由重新初始化的路由。
  • D Dynamically,此路由是动态性地写入。
  • M Modified,此路由是由路由守护程序或导向器动态修改。
  • ! 表示此路由当前为关闭状态。

4.2 以数字形式代替解释主机名形式来显示地址

[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.16.0.1      0.0.0.0         UG    100    0        0 ens33
172.16.0.0      0.0.0.0         255.255.254.0   U     100    0        0 ens33
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
[root@localhost ~]# 

4.3 添加一条路由

[root@localhost ~]# route add -net 192.168.1.0 netmask 255.255.255.0 dev ens33 
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.16.0.1      0.0.0.0         UG    100    0        0 ens33
172.16.0.0      0.0.0.0         255.255.254.0   U     100    0        0 ens33
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 ens33
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
[root@localhost ~]# 

4.4 删除路由记录

[root@localhost ~]# route del -net 192.168.1.0 netmask 255.255.255.0 dev ens33
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.16.0.1      0.0.0.0         UG    100    0        0 ens33
172.16.0.0      0.0.0.0         255.255.254.0   U     100    0        0 ens33
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
[root@localhost ~]# 

4.5 添加默认网关

[root@localhost ~]# route add default gw 172.16.0.2
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.16.0.2      0.0.0.0         UG    0      0        0 ens33
0.0.0.0         172.16.0.1      0.0.0.0         UG    100    0        0 ens33
172.16.0.0      0.0.0.0         255.255.254.0   U     100    0        0 ens33
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
[root@localhost ~]# 

4.6 删除默认网关

[root@localhost ~]# route del default gw 172.16.0.2
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.16.0.1      0.0.0.0         UG    100    0        0 ens33
172.16.0.0      0.0.0.0         255.255.254.0   U     100    0        0 ens33
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
[root@localhost ~]# 

4.7 屏蔽一条路由

[root@localhost ~]# route add -net 224.0.0.0 netmask 240.0.0.0 reject
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.16.0.1      0.0.0.0         UG    100    0        0 ens33
172.16.0.0      0.0.0.0         255.255.254.0   U     100    0        0 ens33
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
224.0.0.0       -               240.0.0.0       !     0      -        0 -
[root@localhost ~]# 

4.8 清除屏幕路由

[root@localhost ~]# route del -net 224.0.0.0 netmask 240.0.0.0 reject
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.16.0.1      0.0.0.0         UG    100    0        0 ens33
172.16.0.0      0.0.0.0         255.255.254.0   U     100    0        0 ens33
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
[root@localhost ~]# 

4.9 所有去往172.16.0.8主机的数据包发往网关地址172.16.0.2

[root@localhost ~]# route add -host 172.16.0.8 gw 172.16.0.2
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.16.0.1      0.0.0.0         UG    100    0        0 ens33
172.16.0.0      0.0.0.0         255.255.254.0   U     100    0        0 ens33
172.16.0.8      172.16.0.2      255.255.255.255 UGH   0      0        0 ens33
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
[root@localhost ~]# 

4.10 删除指定主机的数据包发往默认网关

[root@localhost ~]# route del -host 172.16.0.8 gw 172.16.0.2   
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.16.0.1      0.0.0.0         UG    100    0        0 ens33
172.16.0.0      0.0.0.0         255.255.254.0   U     100    0        0 ens33
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
[root@localhost ~]# 

05. 附录

参考:【Linux】一步一步学Linux系列教程汇总

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值