linux 路由基本命令的使用

little小新發表於2024-07-12
Markdown Example

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 會自動檢查閘道器的可用性

相關文章