# route 命令
选项:
-v
:显示详细信息。-n
:不执行 DNS 反向查找(即不解析名称),直接显示数字形式的 IP 地址。-e
:netstat 格式显示路由表。-C
:打印 Linux 内核的路由缓存。add
:增加路由记录 /del
:删除路由记录-net
:目的地址是一个网络。-host
:目的地址是一台主机。netmask
:目的地址的网络掩码。gw
:路由数据包通过的网关。metric
:设置路由跃点。
eg:
1、添加主机路由
route add -net 10.0.0.10 netmask 255.255.255.255 gw 10.139.128.1 dev eth0 | ||
route -n | ||
Destination Gateway Genmask Flags Metric Ref Use Iface | ||
10.0.0.10 10.139.128.1 255.255.255.255 UGH 0 0 0 eth0 | ||
... |
2、添加网络路由
route add -net 10.0.0.0 netmask 255.255.255.0 gw 10.139.128.1 dev eth0 | ||
route -n | ||
Destination Gateway Genmask Flags Metric Ref Use Iface | ||
10.0.0.0 10.139.128.1 255.255.255.0 UG 0 0 0 eth0 | ||
... |
3、添加设置默认网关跃点为 80
route add default gw 192.168.1.1 metric 80 | ||
route -n | ||
Destination Gateway Genmask Flags Metric Ref Use Iface | ||
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0 | ||
... |
4、删除路由
route del default gw 192.168.1.1 metric 80 |
# 字段分析
使用 route
or route -n
命令查看内核路由表:
route | ||
Destination Gateway Genmask Flags Metric Ref Use Iface | ||
default _gateway 0.0.0.0 UG 100 0 0 ens33 | ||
default _gateway 0.0.0.0 UG 1000 0 0 br0 | ||
192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 br0 | ||
192.168.29.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33 | ||
_gateway 0.0.0.0 255.255.255.255 UH 100 0 0 ens33 | ||
route -n | ||
Destination Gateway Genmask Flags Metric Ref Use Iface | ||
0.0.0.0 192.168.29.2 0.0.0.0 UG 100 0 0 ens33 | ||
0.0.0.0 192.168.10.1 0.0.0.0 UG 1000 0 0 br0 | ||
192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 br0 | ||
192.168.29.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33 | ||
192.168.29.2 0.0.0.0 255.255.255.255 UH 100 0 0 ens33 |
字段分类说明:
字段 | 说明 |
---|---|
Destination | 目标网络或目标主机。Destination 为 default( 0.0.0.0 )时,表示这个是默认网关,所有数据都发到这个网关(这里是 10.139.128.1 )。 |
Gateway | 网关地址, 0.0.0.0 表示当前记录对应的 Destination 跟本机在同一个网段,通信时不需要经过网关(同一个局域网内 2 台主机通信不需要经过网关)。 |
Genmask | Destination 字段的网络掩码,Destination 是主机时需要设置为 255.255.255.255 ,是默认路由时会设置为 0.0.0.0 。 |
Flags | 见下文说明。 |
Metric | 跃点,指到达指定网络所需的中转数,是大型局域网和广域网设置所必需的 (不在 Linux 内核中使用)。 |
Ref | 路由项引用次数 (不在 Linux 内核中使用)。 |
Use | 此路由项被路由软件查找的次数。 |
Iface | 网卡名字,例如 eth0 ;要去往这个网段需要使用哪一个网络接口。也就是 eth0 这张网卡。 |
可以看到 Flags 下面有许多字母组合,他们分别的含义是:
U (route is up) :该路由处于活跃;
H (target is a host) :目标是一部主机 (IP) 而非网域(子网掩码是 255.255.255.255);
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) :这个路由将不会被接受(用来抵挡不安全的网域)。
# 路由种类
路由类型 | 子网掩码 | Flag 字段 | 描述 |
---|---|---|---|
主机路由 | 255.255.255.255 | UH | 指向单个 IP 地址或主机名的路由记录 |
网络路由 | 255.255.255.0 | U | 代表主机可以到达的网络,比如说目的地址是 192.168.10.xxx |
默认路由 | 0.0.0.0 | UG | 当主机不能在路由表中查找到目标主机的 IP 时,数据包就发到默认路由上 |