Linux 系统中的 route 命令用于显示和操作IP路由表。要实现两个不同子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。在 Linux 系统中,设置路由通常是为了解决一下问题:该 Linux 系统在一个局域网中,局域网中有一个网关,能够让机器访问 Internet ,那么就需要将这台机器的IP地址设置为 Linux 机器的默认路由。
需要注意的是,直接在命令行下执行 route 命令来添加路由,不会永久保存,当网卡重启或路由重启后,该路由就失效了。可以在 /etc/rc.local
中添加 route 命令来保证该路由设置永久有效。
命令格式 -
命令功能 -
add
或 del
参数时,路由表被修改,如果没有参数,则显示路由表当前的内容。命令参数 -
add
命令一起使用时使路由具有永久性route print
命令的显示功能。可以使用十进制或十六进制进行接口索引。命令实例 -
实例一:显示当前路由
命令
xxxxxxxxxx
21route
2route -n
输出
xxxxxxxxxx
141[root@localhost ~]# route
2Kernel IP routing table
3Destination Gateway Genmask Flags Metric Ref Use Iface
4192.168.120.0 * 255.255.255.0 U 0 0 0 eth0
5e192.168.0.0 192.168.120.1 255.255.0.0 UG 0 0 0 eth0
610.0.0.0 192.168.120.1 255.0.0.0 UG 0 0 0 eth0
7default 192.168.120.240 0.0.0.0 UG 0 0 0 eth0
8[root@localhost ~]# route -n
9Kernel IP routing table
10Destination Gateway Genmask Flags Metric Ref Use Iface
11192.168.120.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
12192.168.0.0 192.168.120.1 255.255.0.0 UG 0 0 0 eth0
1310.0.0.0 192.168.120.1 255.0.0.0 UG 0 0 0 eth0
140.0.0.0 192.168.120.240 0.0.0.0 UG 0 0 0 eth0
说明
第一行表示主机所在网络的地址为192.168.120.0,若数据传送目标是在本局域网内通信,则可直接通过eth0转发数据包;
第四行表示数据传送目的是访问Internet,则由接口eth0,将数据包发送到网关192.168.120.240
其中Flags为路由标志,标记当前网络节点的状态。
Flags标志说明:
U Up表示此路由当前为启动状态
H Host,表示此网关为一主机
G Gateway,表示此网关为一路由器
R Reinstate Route,使用动态路由重新初始化的路由
D Dynamically,此路由是动态性地写入
M Modified,此路由是由路由守护程序或导向器动态修改
! 表示此路由当前为关闭状态
备注:
route -n (-n 表示不解析名字,列出速度会比route 快)
实例二:添加网关/设置网关
命令
xxxxxxxxxx
11route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
输出
xxxxxxxxxx
91[root@localhost ~]# route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
2[root@localhost ~]# route
3Kernel IP routing table
4Destination Gateway Genmask Flags Metric Ref Use Iface
5192.168.120.0 * 255.255.255.0 U 0 0 0 eth0
6192.168.0.0 192.168.120.1 255.255.0.0 UG 0 0 0 eth0
710.0.0.0 192.168.120.1 255.0.0.0 UG 0 0 0 eth0
8224.0.0.0 * 240.0.0.0 U 0 0 0 eth0
9default 192.168.120.240 0.0.0.0 UG 0 0 0 eth0
说明
增加一条到达 244.0.0.0 的路由
实例三:屏蔽一条路由
命令
xxxxxxxxxx
11route add -net 224.0.0.0 netmask 240.0.0.0 reject
输出
xxxxxxxxxx
101[root@localhost ~]# route add -net 224.0.0.0 netmask 240.0.0.0 reject
2[root@localhost ~]# route
3Kernel IP routing table
4Destination Gateway Genmask Flags Metric Ref Use Iface
5192.168.120.0 * 255.255.255.0 U 0 0 0 eth0
6192.168.0.0 192.168.120.1 255.255.0.0 UG 0 0 0 eth0
710.0.0.0 192.168.120.1 255.0.0.0 UG 0 0 0 eth0
8224.0.0.0 - 240.0.0.0 ! 0 - 0 -
9224.0.0.0 * 240.0.0.0 U 0 0 0 eth0
10default 192.168.120.240 0.0.0.0 UG 0 0 0 eth0
说明
增加一条屏蔽的路由,目的地址为 224.x.x.x 将被拒绝
实例四:删除路由记录
命令
xxxxxxxxxx
21route del -net 224.0.0.0 netmask 240.0.0.0
2route del -net 224.0.0.0 netmask 240.0.0.0 reject
输出
xxxxxxxxxx
271[root@localhost ~]# route
2Kernel IP routing table
3Destination Gateway Genmask Flags Metric Ref Use Iface
4192.168.120.0 * 255.255.255.0 U 0 0 0 eth0
5192.168.0.0 192.168.120.1 255.255.0.0 UG 0 0 0 eth0
610.0.0.0 192.168.120.1 255.0.0.0 UG 0 0 0 eth0
7224.0.0.0 - 240.0.0.0 ! 0 - 0 -
8224.0.0.0 * 240.0.0.0 U 0 0 0 eth0
9default 192.168.120.240 0.0.0.0 UG 0 0 0 eth0
10[root@localhost ~]# route del -net 224.0.0.0 netmask 240.0.0.0
11[root@localhost ~]# route
12Kernel IP routing table
13Destination Gateway Genmask Flags Metric Ref Use Iface
14192.168.120.0 * 255.255.255.0 U 0 0 0 eth0
15192.168.0.0 192.168.120.1 255.255.0.0 UG 0 0 0 eth0
1610.0.0.0 192.168.120.1 255.0.0.0 UG 0 0 0 eth0
17224.0.0.0 - 240.0.0.0 ! 0 - 0 -
18default 192.168.120.240 0.0.0.0 UG 0 0 0 eth0
19[root@localhost ~]# route del -net 224.0.0.0 netmask 240.0.0.0 reject
20[root@localhost ~]# route
21Kernel IP routing table
22Destination Gateway Genmask Flags Metric Ref Use Iface
23192.168.120.0 * 255.255.255.0 U 0 0 0 eth0
24192.168.0.0 192.168.120.1 255.255.0.0 UG 0 0 0 eth0
2510.0.0.0 192.168.120.1 255.0.0.0 UG 0 0 0 eth0
26default 192.168.120.240 0.0.0.0 UG 0 0 0 eth0
27[root@localhost ~]#
说明
实例五:删除和添加设置默认网关
命令
xxxxxxxxxx
21route del default gw 192.168.120.240
2route add default gw 192.168.120.240
输出
xxxxxxxxxx
161[root@localhost ~]# route del default gw 192.168.120.240
2[root@localhost ~]# route
3Kernel IP routing table
4Destination Gateway Genmask Flags Metric Ref Use Iface
5192.168.120.0 * 255.255.255.0 U 0 0 0 eth0
6192.168.0.0 192.168.120.1 255.255.0.0 UG 0 0 0 eth0
710.0.0.0 192.168.120.1 255.0.0.0 UG 0 0 0 eth0
8[root@localhost ~]# route add default gw 192.168.120.240
9[root@localhost ~]# route
10Kernel IP routing table
11Destination Gateway Genmask Flags Metric Ref Use Iface
12192.168.120.0 * 255.255.255.0 U 0 0 0 eth0
13192.168.0.0 192.168.120.1 255.255.0.0 UG 0 0 0 eth0
1410.0.0.0 192.168.120.1 255.0.0.0 UG 0 0 0 eth0
15default 192.168.120.240 0.0.0.0 UG 0 0 0 eth0
16[root@localhost ~]#
说明