介紹
Linux系統中的route命令能夠用於IP路由表的顯示和操作。它的主要作用是建立一個靜態路由讓指定一個主機或者一個網路通過一個網路介面,如eth0。當使用”add”或者”del”參數時,路由表被修改,如果沒有參數,則顯示路由表當前的內容。在一個網路中,需要一個路由器來轉寄不同廣播域之間的資料,或是轉寄lan和internet之間的資料。有時我們需要設定這個路由器作為linux系統的預設路由,那麼就可以通過route命令來操作。甚至我們也可以用我們的linux系統來充當路由器。
要注意的是:直接在命令列下執行route命令來添加路由,不會永久儲存,當網卡重啟或者機器重啟之後,該路由就失效了;可以在/etc/rc.local中添加route命令來保證該路由設定永久有效。當然如果加上了-p參數的話那就會永久的生效了。
命令格式
route [-f] [-p] [Command [Destination] [mask Netmask] [Gateway][metric Metric]] [if Interface]]
命令參數
-c 顯示更多資訊
-n 不解析名字
-v 顯示詳細的處理資訊
-F 顯示發送資訊
-C 顯示路由緩衝
-f 清除所有網關入口的路由表。
-p 與add 命令一起使用時使路由具有永久性。
add:添加一條新路由。
del:刪除一條路由。
-net:目標地址是一個網路。
-host:目標地址是一個主機。
netmask:當添加一個網路路由時,需要使用網路遮罩。
gw:路由資料包通過網關。注意,你指定的網關必須能夠達到。
metric:設定路由跳數。
1、Command 指定您想啟動並執行命令 (Add/Change/Delete/Print)。
2、Destination 指定該路由的網路目標。
3、mask Netmask 指定與網路目標相關的網路遮罩(也被稱作子網路遮罩)。
4、Gateway 指定網路目標定義的地址集和子網路遮罩可以到達的前進或下一躍點 IP 位址。
5、metric Metric 為路由指定一個整數成本值標(從 1 至 9999),當在路由表(與轉寄的資料包目標地址最匹配)的多個路由中進行選擇時可以使用。
6、if Interface為可以訪問目標的介面指定介面索引。若要獲得一個介面列表和它們相應的介面索引,使用 route print 命令的顯示功能。可以使用十進位或十六進
執行個體
1 顯示路由資訊
Kernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Iface192.168.40.0 * 255.255.252.0 U 0 0 0 eth0169.254.0.0 * 255.255.0.0 U 0 0 0 eth0default 192.168.40.1 0.0.0.0 UG 0 0 0 eth0
Flags標誌說明
- U Up表示此路由當前為啟動狀態
- H Host,表示此網關為一主機
- G Gateway,表示此網關為一路由器
- R Reinstate Route,使用動態路由重新初始化的路由
- D Dynamically,此路由是動態性地寫入–》什麼時候才會有動態路由資訊呢?
- M Modified,此路由是由路由精靈或導向器動態修改
2 添加一條指向某個網路的路由
[root@localhost~]# route add -net 10.0.0.0 netmask 255.255.255.0 dev eth0
這裡是指定這條路由的出口在哪裡。-net 10.0.0.0 netmask 255.255.255.0 為指定目標網路的參數,需要ip地址或位址範圍、子網路遮罩用於確定網路範圍。
Kernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Iface10.0.0.0 * 255.255.255.0 U 0 0 0 eth0192.168.40.0 * 255.255.252.0 U 0 0 0 eth0169.254.0.0 * 255.255.0.0 U 0 0 0 eth0default 192.168.40.1 0.0.0.0 UG 0 0 0 eth0
route添加路由都是需要指定目標網路,及路由出口這兩個參數。記住加上-p選項能永久添加。
3 添加到某一個ip的路由
[root@localhost~]# route add -host 192.168.40.1dev eth0[root@localhost ~]# route
可以發現添加的是主機的話,預設是會幫我們添加一個全255的子網路遮罩,表示子網範圍就只有一個而已,那就是這台主機啦。
Kernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Iface192.168.40.1 * 255.255.255.255 UH 0 0 0 eth0
4 屏蔽某一路由
當我們不讓系統到達某個子網範圍或者某個主機是就可以手動的來進行屏蔽。
[root@localhost~]# route add -net 10.10.10.128 netmask 255.255.255.128 reject
前面部分是一樣的,因為我們都是手動來添加一個路由嘛。只是在命令的最後不一樣,我們指定的出口去而是reject(拒絕),也就是拒絕出口。達到屏蔽的效果。還有看下flags會顯示一個!
Kernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Iface192.168.40.1 * 255.255.255.255 UH 0 0 0 eth010.10.10.128 - 255.255.255.128 ! 0 - 0 -10.0.0.0 * 255.255.255.0 U 0 0 0 eth0192.168.40.0 * 255.255.252.0 U 0 0 0 eth0169.254.0.0 * 255.255.0.0 U 0 0 0 eth0default 192.168.40.1 0.0.0.0 UG 0 0 0 eth0
5 刪除路由
Kernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Iface192.168.40.1 * 255.255.255.255UH 0 0 0 eth010.10.10.128 - 255.255.255.128 ! 0 - 0 -10.0.0.0 * 255.255.255.0 U 0 0 0 eth0192.168.40.0 * 255.255.252.0 U 0 0 0 eth0169.254.0.0 * 255.255.0.0 U 0 0 0 eth0default 192.168.40.1 0.0.0.0 UG 0 0 0 eth0
[root@localhost~]# route del -net 10.10.10.128netmask 255.255.255.128 reject
[root@localhost~]# routeKernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Iface192.168.40.1 * 255.255.255.255UH 0 0 0 eth010.0.0.0 * 255.255.255.0 U 0 0 0 eth0192.168.40.0 * 255.255.252.0 U 0 0 0 eth0169.254.0.0 * 255.255.0.0 U 0 0 0 eth0default 192.168.40.1 0.0.0.0 UG 0 0 0 eth0
說明:刪除路由時,最好是看著路由表上的照樣打進去,這樣比較不會刪錯的。
添加刪除預設閘道
[root@localhost ~]# route add default gw 192.168.40.2[root@localhost~]# routeKernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Iface192.168.40.1 * 255.255.255.255UH 0 0 0 eth010.0.0.0 * 255.255.255.0 U 0 0 0 eth0192.168.40.0 * 255.255.252.0 U 0 0 0 eth0169.254.0.0 * 255.255.0.0 U 0 0 0 eth0default 192.168.40.2 0.0.0.0 UG 0 0 0 eth0default 192.168.40.1 0.0.0.0 UG 0 0 0 eth0
可以看到此處有兩個預設閘道,那到底路由會走哪個呢?
[root@localhost~]# route del default gw192.168.40.2
[root@localhost~]# routeKernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Iface192.168.40.1 * 255.255.255.255UH 0 0 0 eth010.0.0.0 * 255.255.255.0 U 0 0 0 eth0192.168.40.0 * 255.255.252.0 U 0 0 0 eth0169.254.0.0 * 255.255.0.0 U 0 0 0 eth0default 192.168.40.1 0.0.0.0 UG 0 0 0 eth0
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能有所協助,如果有疑問大家可以留言交流。