顯示并設置Linux中靜態路由表
route命令 用來顯示并設置Linux內核中的網絡路由表,route命令設置的路由主要是靜態路由。要實現兩個不同的子網之間的通信,需要一臺連接兩個網絡的路由器,或者同時位于兩個網絡的網關來實現。
在Linux系統中設置路由通常是為了解決以下問題:該Linux系統在一個局域網中,局域網中有一個網關,能夠讓機器訪問Internet,那么就需要將這臺機器的ip地址設置為Linux機器的默認路由。要注意的是,直接在命令行下執行route命令來添加路由,不會永久保存,當網卡重啟或者機器重啟之后,該路由就失效了;可以在/etc/rc.local
中添加route命令來保證該路由設置永久有效。
route(選項)(參數)
-A:設置地址類型;
-C:打印將Linux核心的路由緩存;
-v:詳細信息模式;
-n:不執行DNS反向查找,直接顯示數字形式的IP地址;
-e:netstat格式顯示路由表;
-net:到一個網絡的路由表;
-host:到一個主機的路由表。
Add:增加指定的路由記錄;
Del:刪除指定的路由記錄;
Target:目的網絡或目的主機;
gw:設置默認網關;
mss:設置TCP的最大區塊長度(MSS),單位MB;
window:指定通過路由表的TCP連接的TCP窗口大??;
dev:路由記錄所表示的網絡接口。
顯示當前路由:
[root@localhost ~]# route
Kernel IP routing table
Destination???? Gateway???????? Genmask???????? Flags Metric Ref??? Use Iface
112.124.12.0??? *?????????????? 255.255.252.0?? U???? 0????? 0??????? 0 eth1
10.160.0.0????? *?????????????? 255.255.240.0?? U???? 0????? 0??????? 0 eth0
192.168.0.0???? 10.160.15.247?? 255.255.0.0???? UG??? 0????? 0??????? 0 eth0
172.16.0.0????? 10.160.15.247?? 255.240.0.0???? UG??? 0????? 0??????? 0 eth0
10.0.0.0??????? 10.160.15.247?? 255.0.0.0?????? UG??? 0????? 0??????? 0 eth0
default???????? 112.124.15.247? 0.0.0.0???????? UG??? 0????? 0??????? 0 eth1
[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
112.124.12.0 0.0.0.0 255.255.252.0 U 0 0 0 eth1
10.160.0.0 0.0.0.0 255.255.240.0 U 0 0 0 eth0
192.168.0.0 10.160.15.247 255.255.0.0 UG 0 0 0 eth0
172.16.0.0 10.160.15.247 255.240.0.0 UG 0 0 0 eth0
10.0.0.0 10.160.15.247 255.0.0.0 UG 0 0 0 eth0
0.0.0.0 112.124.15.247 0.0.0.0 UG 0 0 0 eth1
其中Flags為路由標志,標記當前網絡節點的狀態,Flags標志說明:
添加網關/設置網關:
route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0 #增加一條到達244.0.0.0的路由。
屏蔽一條路由:
route add -net 224.0.0.0 netmask 240.0.0.0 reject #增加一條屏蔽的路由,目的地址為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
刪除和添加設置默認網關:
route del default gw 192.168.120.240
route add default gw 192.168.120.240