linux route 命令
route 命令可以顯示或設定 Linux 核心中的路由表,主要是靜態路由
對於區域網中的 Linux 主機,要想訪問 Internet,需要將區域網的閘道器 IP 地址設定為這個主機的預設路由。
在命令列中透過 route 命令新增的路由在網路卡重啟或機器重啟後失效。
可以在 /etc/rc.local 中新增 route 命令來保證路由設定永久有效。
選項:
-A:設定地址型別
-C:列印 Linux 核心的路由快取
-v:顯示詳細資訊
-n:不執行 DNS 反向查詢,直接顯示數字形式的 IP 地址
-e:netstat 格式顯示路由表
-net:到一個網路的路由表
-host:到一個主機的路由表
引數:
add:增加路由記錄
del:刪除路由記錄
target:目的網路或目的主機
gw:設定預設閘道器
mss:設定TCP的最大區塊長度(MSS),單位MB
window:指定透過路由表的TCP連線的TCP視窗大小
dev:路由記錄所表示的網路介面
新增主機路由
新增主機路由時,需要指定網路 ID 和主機 ID,此時需要設定 netmask 255.255.255.255
Flags: UH
$route add -net 10.0.0.10 netmask 255.255.255.255 gw 10.139.128.1 dev eth0
#或
route add -net 10.0.0.10/25 gw 10.139.128.1 dev eth0
route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.10 10.139.128.1 255.255.255.255 UGH 0 0 0 eth0
...
#這裡 -net 10.0.0.10/25 是指到達的目標網路閘道器
#gw 10.139.128.1 指出發的閘道器或地址
#dev eth0 從本機的哪個網路卡裝置出發
#總結就是:新增了一條路由、流量本從機的 eth0網路卡 到 10.139.128.1 閘道器,再從改閘道器去到 目標網路 -net 10.0.0.10/25
新增網路路由(閘道器路由)
新增網路路由時,只需指定網路 ID,透過 netmask 設定掩碼長度
Flags: UG
$route add -net 10.0.0.0 netmask 255.255.255.0 gw 10.139.128.1 dev eth0
$route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.0 10.139.128.1 255.255.255.0 UG 0 0 0 eth0
新增新增同一個區域網的主機
不指定 gw 選項時,新增的路由記錄不使用閘道器
Flags: U
$route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
$route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
224.0.0.0 0.0.0.0 240.0.0.0 U 0 0 0 eth0
遮蔽路由
Flags: !
$route add -net 224.0.0.0 netmask 240.0.0.0 reject
route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
224.0.0.0 - 240.0.0.0 ! 0 - 0 -
刪除路由
#1. 刪除可用路由
$route del -net 224.0.0.0 netmask 240.0.0.0
#2. 刪除遮蔽的路由
$route del -net 224.0.0.0 netmask 240.0.0.0 reject
#3. 刪除和新增設定預設閘道器
$route add default gw 192.168.1.1
SIOCADDRT: Network is unreachable
$route del default gw 192.168.1.1
SIOCDELRT: No such process
注意:新增或刪除預設閘道器時,Linux 會自動檢查閘道器的可用性