Linux系統(tǒng)的route
命令用于顯示和操作IP路由表(show / manipulate the IP routing table)。要實(shí)現(xiàn)兩個(gè)不同的子網(wǎng)之間的通信,需要一臺(tái)連接兩個(gè)網(wǎng)絡(luò)的路由器,或者同時(shí)位于兩個(gè)網(wǎng)絡(luò)的網(wǎng)關(guān)來實(shí)現(xiàn)。在Linux系統(tǒng)中,設(shè)置路由通常是為了解決以下問題:該Linux系統(tǒng)在一個(gè)局域網(wǎng)中,局域網(wǎng)中有一個(gè)網(wǎng)關(guān),能夠讓機(jī)器訪問Internet,那么就需要將這臺(tái)機(jī)器的IP地址設(shè)置為Linux機(jī)器的默認(rèn)路由。要注意的是,直接在命令行下執(zhí)行route命令來添加路由,不會(huì)永久保存,當(dāng)網(wǎng)卡重啟或者機(jī)器重啟之后,該路由就失效了;可以在/etc/rc.local
中添加route
命令來保證該路由設(shè)置永久有效。
route [-f] [-p] [Command [Destination] [mask Netmask] [Gateway] [metric Metric]] [if Interface]]
route
命令是用于操作基于內(nèi)核ip路由表,它的主要作用是創(chuàng)建一個(gè)靜態(tài)路由讓指定一個(gè)主機(jī)或者一個(gè)網(wǎng)絡(luò)通過一個(gè)網(wǎng)絡(luò)接口,如eth0
。當(dāng)使用”add
“或者”del
“參數(shù)時(shí),路由表被修改,如果沒有參數(shù),則顯示路由表當(dāng)前的內(nèi)容。
-c
顯示更多信息-n
不解析名字-v
顯示詳細(xì)的處理信息-F
顯示發(fā)送信息-C
顯示路由緩存-f
清除所有網(wǎng)關(guān)入口的路由表。 -p
與 add
命令一起使用時(shí)使路由具有永久性。add
:添加一條新路由。del
:刪除一條路由。-net
:目標(biāo)地址是一個(gè)網(wǎng)絡(luò)。-host
:目標(biāo)地址是一個(gè)主機(jī)。netmask
:當(dāng)添加一個(gè)網(wǎng)絡(luò)路由時(shí),需要使用網(wǎng)絡(luò)掩碼。gw
:路由數(shù)據(jù)包通過網(wǎng)關(guān)。注意,你指定的網(wǎng)關(guān)必須能夠達(dá)到。metric
:設(shè)置路由跳數(shù)。Command
指定您想運(yùn)行的命令 (Add/Change/Delete/Print)。 Destination
指定該路由的網(wǎng)絡(luò)目標(biāo)。 mask Netmask
指定與網(wǎng)絡(luò)目標(biāo)相關(guān)的網(wǎng)絡(luò)掩碼(也被稱作子網(wǎng)掩碼)。 Gateway
指定網(wǎng)絡(luò)目標(biāo)定義的地址集和子網(wǎng)掩碼可以到達(dá)的前進(jìn)或下一躍點(diǎn) IP 地址。 metric Metric
為路由指定一個(gè)整數(shù)成本值標(biāo)(從 1 至 9999),當(dāng)在路由表(與轉(zhuǎn)發(fā)的數(shù)據(jù)包目標(biāo)地址最匹配)的多個(gè)路由中進(jìn)行選擇時(shí)可以使用。 if Interface
為可以訪問目標(biāo)的接口指定接口索引。若要獲得一個(gè)接口列表和它們相應(yīng)的接口索引,使用 route print
命令的顯示功能??梢允褂檬M(jìn)制或十六進(jìn)制值進(jìn)行接口索引。命令:
route
route -n
輸出:
[yiibai@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.0.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
[yiibai@localhost ~]$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 100 0 0 ens33
192.168.0.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
[yiibai@localhost ~]$
說明:
第一行表示主機(jī)所在網(wǎng)絡(luò)的地址為192.168.0.197
,若數(shù)據(jù)傳送目標(biāo)是在本局域網(wǎng)內(nèi)通信,則可直接通過ens33
轉(zhuǎn)發(fā)數(shù)據(jù)包;
第四行表示數(shù)據(jù)傳送目的是訪問 Internet,則由接口ens33
,將數(shù)據(jù)包發(fā)送到網(wǎng)關(guān)192.168.0.1
其中Flags
為路由標(biāo)志,標(biāo)記當(dāng)前網(wǎng)絡(luò)節(jié)點(diǎn)的狀態(tài)。
Flags標(biāo)志說明:
U
Up表示此路由當(dāng)前為啟動(dòng)狀態(tài)H
Host,表示此網(wǎng)關(guān)為一主機(jī)G
Gateway,表示此網(wǎng)關(guān)為一路由器R
Reinstate Route,使用動(dòng)態(tài)路由重新初始化的路由D
Dynamically,此路由是動(dòng)態(tài)性地寫入M
Modified,此路由是由路由守護(hù)程序或?qū)蚱鲃?dòng)態(tài)修改!
表示此路由當(dāng)前為關(guān)閉狀態(tài)備注:route -n
(-n
表示不解析名字,列出速度會(huì)比 route
快)
命令:
route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
輸出:
[root@localhost ~]# route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
[root@localhost ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.120.0 * 255.255.255.0 U 0 0 0 eth0
192.168.0.0 192.168.0.1 255.255.0.0 UG 0 0 0 eth0
10.0.0.0 192.168.0.1 255.0.0.0 UG 0 0 0 eth0
224.0.0.0 * 240.0.0.0 U 0 0 0 eth0
default 192.168.0.240 0.0.0.0 UG 0 0 0 eth0
說明:增加一條 到達(dá)244.0.0.0
的路由
命令:
route add -net 224.0.0.0 netmask 240.0.0.0 reject
輸出:
[root@localhost ~]# route add -net 224.0.0.0 netmask 240.0.0.0 reject
[root@localhost ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.0.0 * 255.255.255.0 U 0 0 0 eth0
192.168.0.0 192.168.0.1 255.255.0.0 UG 0 0 0 eth0
10.0.0.0 192.168.0.1 255.0.0.0 UG 0 0 0 eth0
224.0.0.0 - 240.0.0.0 ! 0 - 0 -
224.0.0.0 * 240.0.0.0 U 0 0 0 eth0
default 192.168.0.240 0.0.0.0 UG 0 0 0 eth0
說明:增加一條屏蔽的路由,目的地址為 224.x.x.x 將被拒絕
命令:
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
輸出:
[root@localhost ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.0.0 * 255.255.255.0 U 0 0 0 eth0
192.168.0.0 192.168.0.1 255.255.0.0 UG 0 0 0 eth0
10.0.0.0 192.168.0.1 255.0.0.0 UG 0 0 0 eth0
224.0.0.0 - 240.0.0.0 ! 0 - 0 -
224.0.0.0 * 240.0.0.0 U 0 0 0 eth0
default 192.168.0.240 0.0.0.0 UG 0 0 0 eth0
[root@localhost ~]# route del -net 224.0.0.0 netmask 240.0.0.0
[root@localhost ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.0.0 * 255.255.255.0 U 0 0 0 eth0
192.168.0.0 192.168.0.1 255.255.0.0 UG 0 0 0 eth0
10.0.0.0 192.168.0.1 255.0.0.0 UG 0 0 0 eth0
224.0.0.0 - 240.0.0.0 ! 0 - 0 -
default 192.168.0.240 0.0.0.0 UG 0 0 0 eth0
[root@localhost ~]# route del -net 224.0.0.0 netmask 240.0.0.0 reject
[root@localhost ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.0.0 * 255.255.255.0 U 0 0 0 eth0
192.168.0.0 192.168.0.1 255.255.0.0 UG 0 0 0 eth0
10.0.0.0 192.168.0.1 255.0.0.0 UG 0 0 0 eth0
default 192.168.0.240 0.0.0.0 UG 0 0 0 eth0
[root@localhost ~]#
命令:
route del default gw 192.168.0.240
route add default gw 192.168.0.240
輸出:
[root@localhost ~]# route del default gw 192.168.1.240
[root@localhost ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
192.168.0.0 192.168.1.1 255.255.0.0 UG 0 0 0 eth0
10.0.0.0 192.168.1.1 255.0.0.0 UG 0 0 0 eth0
[root@localhost ~]# route add default gw 192.168.1.240
[root@localhost ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
192.168.1.0 192.168.1.1 255.255.0.0 UG 0 0 0 eth0
10.0.0.0 192.168.1.1 255.0.0.0 UG 0 0 0 eth0
default 192.168.1.240 0.0.0.0 UG 0 0 0 eth0
[root@localhost ~]#