route命令


Linux系統的route命令用於顯示和操作IP路由表(show / manipulate the IP routing table)。要實現兩個不同的子網之間的通訊,需要一台連線兩個網路的路由器,或者同時位於兩個網路的閘道器來實現。在Linux系統中,設定路由通常是為了解決以下問題:該Linux系統在一個區域網中,區域網中有一個閘道器,能夠讓機器存取Internet,那麼就需要將這台機器的IP地址設定為Linux機器的預設路由。要注意的是,直接在命令列下執行route命令來新增路由,不會永久儲存,當網絡卡重新啟動或者機器重新啟動之後,該路由就失效了;可以在/etc/rc.local中新增route命令來保證該路由設定永久有效。

1.命令格式

route [-f] [-p] [Command [Destination] [mask Netmask] [Gateway] [metric Metric]] [if Interface]]

2.命令功能

route命令是用於操作基於核心ip路由表,它的主要作用是建立一個靜態路由讓指定一個主機或者一個網路通過一個網路介面,如eth0。當使用」add「或者」del「引數時,路由表被修改,如果沒有引數,則顯示路由表當前的內容。

3.命令引數

  • -c顯示更多資訊
  • -n 不解析名字
  • -v 顯示詳細的處理資訊
  • -F 顯示傳送資訊
  • -C 顯示路由快取
  • -f 清除所有閘道器入口的路由表。
  • -padd 命令一起使用時使路由具有永久性。
  • add:新增一條新路由。
  • del:刪除一條路由。
  • -net:目標地址是一個網路。
  • -host:目標地址是一個主機。
  • netmask:當新增一個網路路由時,需要使用網路掩碼。
  • gw:路由資料包通過閘道器。注意,你指定的閘道器必須能夠達到。
  • metric:設定路由跳數。
  • Command 指定您想執行的命令 (Add/Change/Delete/Print)。
  • Destination 指定該路由的網路目標。
  • mask Netmask 指定與網路目標相關的網路掩碼(也被稱作子網掩碼)。
  • Gateway 指定網路目標定義的地址集和子網掩碼可以到達的前進或下一躍點 IP 地址。
  • metric Metric 為路由指定一個整數成本值標(從 1 至 9999),當在路由表(與轉發的資料包目標地址最匹配)的多個路由中進行選擇時可以使用。
  • if Interface 為可以存取目標的介面指定介面索引。若要獲得一個介面列表和它們相應的介面索引,使用 route print 命令的顯示功能。可以使用十進位制或十六進位制值進行介面索引。

4.使用範例:

範例1:顯示當前路由

命令:

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 ~]$

說明:
第一行表示主機所在網路的地址為192.168.0.197,若資料傳送目標是在本區域網內通訊,則可直接通過ens33轉發資料包;
第四行表示資料傳送目的是存取 Internet,則由介面ens33,將資料包傳送到閘道器192.168.0.1
其中Flags為路由標誌,標記當前網路節點的狀態。

Flags標誌說明:

  • U Up表示此路由當前為啟動狀態
  • H Host,表示此閘道器為一主機
  • G Gateway,表示此閘道器為一路由器
  • R Reinstate Route,使用動態路由重新初始化的路由
  • D Dynamically,此路由是動態性地寫入
  • M Modified,此路由是由路由守護程式或導向器動態修改
  • ! 表示此路由當前為關閉狀態

備註:
route -n (-n 表示不解析名字,列出速度會比 route 快)

範例2:新增閘道器/設定閘道器

命令:

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

說明:增加一條 到達244.0.0.0的路由

範例3:遮蔽一條路由

命令:

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 將被拒絕

範例4:刪除路由記錄

命令:

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 ~]#

範例5:刪除和新增設定預設閘道器

命令:

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 ~]#