route命令使用

一、显示路由表

route -n

[root@dev-master ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.16.71.1     0.0.0.0         UG    100    0        0 ens160
10.2.8.128      172.16.71.201   255.255.255.192 UG    0      0        0 ens160
10.2.9.0        172.16.71.202   255.255.255.192 UG    0      0        0 ens160
10.2.19.0       0.0.0.0         255.255.255.192 U     0      0        0 docker0
10.2.21.128     172.16.71.203   255.255.255.192 UG    0      0        0 ens160
172.16.71.0     0.0.0.0         255.255.255.0   U     100    0        0 ens160

route

[root@dev-master ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         gateway         0.0.0.0         UG    100    0        0 ens160
10.2.8.128      tiller.chinaclo 255.255.255.192 UG    0      0        0 ens160
10.2.9.0        172.16.71.202   255.255.255.192 UG    0      0        0 ens160
10.2.19.0       0.0.0.0         255.255.255.192 U     0      0        0 docker0
10.2.21.128     172.16.71.203   255.255.255.192 UG    0      0        0 ens160
172.16.71.0     0.0.0.0         255.255.255.0   U     100    0        0 ens160

从以上可以看出加了-n参数,显示的信息都变成了ip地址

1、Destination 目标主机或网络

2、Gatewar 网关,如果没有就显示*号

3、Genmask 子网掩码

4、Flags主要包括以下:

  •          U (route is up):该路由是启动的;                       
  •          H (target is a host):目标是一部主机 (IP) 而非网域;                       
  •          G (use gateway):需要透过外部的主机 (gateway) 来转递封包;                       
  •          R (reinstate route for dynamic routing):使用动态路由时,恢复路由资讯的旗标;                       
  •          D (dynamically installed by daemon or redirect):已经由服务或转 port 功能设定为动态路由                       
  •          M (modified from routing daemon or redirect):路由已经被修改了;                       
  •          !  (reject route):这个路由将不会被接受(用来抵挡不安全的网域!)
  •          A (installed by addrconf)

5、路由距离,到达指定网络所需的中转数(linux 内核中没有使用)

6、Ref 路由项引用次数(linux 内核中没有使用)

7、Use 此路由项被路由软件查找的次数

8、Iface 该路由表项对应的输出接口

第一条记录:

0.0.0.0         172.16.71.1     0.0.0.0         UG    100    0        0 ens160

这是默认路由:上面的目标主机和子网掩码都是0.0.0.0,表示去任何地方(0.0.0.0),都发给172.16.71.1

再看一条记录:

10.2.19.0       0.0.0.0         255.255.255.192 U     0      0        0 docker0

上面中,网关是0.0.0.0,网关为0.0.0.0的网络通常是直连到网络设备上的。因为到自己的直连设备上是不需要网关的,所以0.0.0.0的网关地址是正常的。

二、配置静态路由

格式为:route [add|del] [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]

  • add : 添加一条路由规则
  • del : 删除一条路由规则
  • -net : 目的地址是一个网络
  • -host : 目的地址是一个主机
  • target : 目的网络或主机
  • netmask : 目的地址的网络掩码
  • gw : 路由数据包通过的网关
  • dev : 为路由指定的网络接口

添加到主机的路由

# route add -host 192.168.1.2 dev eth0 
# route add -host 10.20.30.148 gw 10.20.30.40     #添加到10.20.30.148的路由

添加到网络的路由

# route add -net 10.20.30.40 netmask 255.255.255.248 eth0   #添加10.20.30.40的路由
# route add -net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41 #添加10.20.30.48的路由
# route add -net 192.168.1.0/24 eth1

添加默认路由

# route add default gw 192.168.1.1

删除路由

# route del -host 192.168.1.2 dev eth0:0
# route del -host 10.20.30.148 gw 10.20.30.40
# route del -net 10.20.30.40 netmask 255.255.255.248 eth0
# route del -net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41
# route del -net 192.168.1.0/24 eth1
# route del default gw 192.168.1.1


在 CentOS 中默认的内核配置已经包含了路由功能,但默认并没有在系统启动时启用此功能。开启 Linux 的路由功能可以通过调整内核的网络参数来实现。要配置和调整内核参数可以使用 sysctl 命令。例如:要开启 Linux 内核的数据包转发功能可以使用如下的命令。

# sysctl -w net.ipv4.ip_forward=1

这样设置之后,当前系统就能实现包转发,但下次启动计算机时将失效。为了使在下次启动计算机时仍然有效,需要将下面的行写入配置文件/etc/sysctl.conf。

# vi /etc/sysctl.conf
net.ipv4.ip_forward = 1

用户还可以使用如下的命令查看当前系统是否支持包转发。

# sysctl net.ipv4.ip_forward

原文地址:https://www.cnblogs.com/boshen-hzb/p/7595415.html