Linux下使用route设置路由

古人学问无遗力,少壮工夫老始成。这篇文章主要讲述Linux下使用route设置路由相关的知识,希望能为你提供帮助。
一、route命令


> route命令用来显示并设置Linux内核中的网络路由表,route命令设置的路由主要是静态路由。要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。
> 在Linux系统中设置路由通常是为了解决以下问题:该Linux系统在一个局域网中,局域网中有一个网关,能够让机器访问Internet,那么就需要将这台机器的ip地址设置为Linux机器的默认路由。要注意的是,**直接在命令行下执行route命令来添加路由,不会永久保存,当网卡重启或者机器重启之后,该路由就失效了;可以在/etc/rc.local中添加route命令来保证该路由设置永久有效。**


Route命令的正确用法
使用 Route 命令行工具查看并编辑计算机的 IP 路由表。Route 命令和语法如下所示:
```
route [-f] [-p] [Command [Destination] [mask Netmask] [Gateway] [metric Metric]] [if Interface]]
```
-f 清除所有网关入口的路由表。
-p 与 add 命令一起使用时使路由具有永久性。
Command 指定您想运行的命令 (Add/Change/Delete/Print)。
Destination 指定该路由的网络目标。
mask Netmask 指定与网络目标相关的网络掩码(也被称作子网掩码)。
Gateway 指定网络目标定义的地址集和子网掩码可以到达的前进或下一跃点 IP 地址。
metric Metric 为路由指定一个整数成本值标(从 1 至 9999),当在路由表(与转发的数据包目标地址最匹配)的多个路由中进行选择时可以使用。
if Interface 为可以访问目标的接口指定接口索引。若要获得一个接口列表和它们相应的接口索引,使用 route print 命令的显示功能。可以使用十进制或十六进制值进行接口索引。
? 在命令提示符处显示帮助。
1.1 语法
```
route(选项)(参数)
```
1.2 选项
选项 描述
-A 设置地址类型;
-C 打印将Linux核心的路由缓存;
-v 详细信息模式;
-n 不执行DNS反向查找,直接显示数字形式的IP地址;
-e netstat格式显示路由表;
-net 到一个网络的路由表;
-host 到一个主机的路由表。
1.3 参数
选项 描述
Add 增加指定的路由记录;
Del 删除指定的路由记录;
Target 目的网络或目的主机;
gw 设置默认网关;
mss 设置TCP的最大区块长度(MSS),单位MB;
window 指定通过路由表的TCP连接的TCP窗口大小;
dev 路由记录所表示的网络接口。


二、示列
**2.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
192.168.3.0     0.0.0.0         255.255.255.0   U     100     0         0 ens33
192.168.3.2     192.168.3.22     255.255.255.255 UGH   0       0         0 ens33
```


```
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref     Use Iface
0.0.0.0         192.168.3.1     0.0.0.0         UG     100     0         0 ens33
192.168.3.0     0.0.0.0         255.255.255.0   U     100     0         0 ens33
192.168.3.2     192.168.3.22     255.255.255.255 UGH   0       0         0 ens33
```


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


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


**2.2 其他示列**
# 添加网关/设置网关
```
#增加一条到达192.168.3.21的路由,子网掩码255.255.255.255划分子网最小的掩网,
#表示你只在一个网址的网段内可参见子网的划分,下一跳地址192.168.3.22。
route add -net 192.168.3.21 netmask 255.255.255.255 gw 192.168.3.22

route add -net 192.168.3.21 netmask 255.255.255.255 dev eth0    
```


```
#向带有 255.255.0.0 子网掩码和 10.27.0.1 下一跃点地址的 10.41.0.0 目标中添加一个永久路由
route -p add 10.41.0.0 mask 255.255.0.0 10.27.0.1
```


# 屏蔽一条路由
```
#增加一条屏蔽的路由,目的地址为224.x.x.x将被拒绝。
route add -net 224.0.0.0 netmask 240.0.0.0 reject    
```


# 删除路由记录
```
route del -net 192.168.3.21 netmask 255.255.255.255 gw 192.168.3.22
route del -net 224.0.0.0 netmask 240.0.0.0
route del -net 224.0.0.0 netmask 240.0.0.0 reject
```


# 删除和添加设置默认网关
```
route del default gw 192.168.120.240
route add default gw 192.168.120.240
```




【Linux下使用route设置路由】


    推荐阅读