Linux之route命令

route命令用來顯示並設置Linux內核中的網絡路由表,route命令設置的路由主要是靜態路由。要實現兩個不一樣的子網之間的通訊,須要一臺鏈接兩個網絡的路由器,或者同時位於兩個網絡的網關來實現。html

在Linux系統中設置路由一般是爲了解決如下問題:該Linux系統在一個局域網中,局域網中有一個網關,可以讓機器訪問Internet,那麼就須要將這臺機器的ip地址設置爲Linux機器的默認路由。要注意的是,直接在命令行下執行route命令來添加路由,不會永久保存,當網卡重啓或者機器重啓以後,該路由就失效了;能夠在/etc/rc.local中添加route命令來保證該路由設置永久有效。linux

命令語法

route(選項)(參數)緩存

命令選項

  • -A:設置地址類型;
  • -C:打印將Linux核心的路由緩存;
  • -v:詳細信息模式;
  • -n:不執行DNS反向查找,直接顯示數字形式的IP地址;
  • -e:netstat格式顯示路由表;
  • -net:到一個網絡的路由表;
  • -host:到一個主機的路由表。

命令參數

  • add:增長指定的路由記錄;
  • del:刪除指定的路由記錄;
  • target:目的網絡或目的主機;
  • gw:設置默認網關;
  • mss:設置TCP的最大區塊長度(MSS),單位MB;
  • window:指定經過路由表的TCP鏈接的TCP窗口大小;
  • dev:路由記錄所表示的網絡接口。

顯示當前路由

> route
複製代碼

image-20210316222352101

顯示當前路由表(顯示ip地址)

> route -n
複製代碼

image-20210316222534478

route -n不執行DNS反向查找,直接顯示數字形式的IP地址,列出速度會比route微信

字段說明markdown

含義
Destination 目標網絡或目標主機。Destination 爲 default(0.0.0.0)時,表示這個是默認網關,全部數據都發到這個網關(這裏是 10.139.128.1)
Gateway 網關地址,0.0.0.0 表示當前記錄對應的 Destination 跟本機在同一個網段,通訊時不須要通過網關
Genmask Destination 字段的網絡掩碼,Destination 是主機時須要設置爲 255.255.255.255,是默認路由時會設置爲 0.0.0.0
Flags 標記,含義參考表格後面的解釋
Metric 路由距離,到達指定網絡所需的中轉數,是大型局域網和廣域網設置所必需的 (不在Linux內核中使用。)
Ref 路由項引用次數 (不在Linux內核中使用。)
Use 此路由項被路由軟件查找的次數
Iface 網卡名字,例如 eth0

Flags 含義網絡

  • U 路由是活動的
  • H 目標是個主機
  • G 須要通過網關
  • R 恢復動態路由產生的表項
  • D 由路由的後臺程序動態地安裝
  • M 由路由的後臺程序修改
  • ! 拒絕路由

主機路由

路由表中指向單個 IP 地址或主機名的路由記錄,其 Flags 字段爲 H。下面示例中,對於 10.0.0.8 這個主機,經過網關 192.168.0.1 網關路由:oop

> route add -net 10.0.0.8 gateway 192.168.0.1 netmask 255.255.255.255 dev eth0
> route -n 
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.0.0.8        192.168.0.1     255.255.255.255 UGH   0      0        0 eth0
複製代碼

網絡路由

主機能夠到達的網絡。下面示例中,對於10.0.0.0/24這個網絡,經過網關192.168.0.1網關路由:spa

> route add -net 10.0.0.0/24 gateway 192.168.0.1   dev eth0
> route -n
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.0.0.0        192.168.0.1     255.255.255.0   UG    0      0        0 eth0

//或者

> route add -net 10.0.0.0 gateway 192.168.0.1  dev eth0
複製代碼

默認路由

當目標主機的 IP 地址或網絡不在路由表中時,數據包就被髮送到默認路由(默認網關)上。默認路由的 Destinationdefault0.0.0.0命令行

> route
default         gateway         0.0.0.0         UG    100    0        0 eth0
複製代碼

添加同一個局域網的主機

不指定 gw 選項時,添加的路由記錄不使用網關:code

> route add -net 10.10.1.0 netmask 255.255.255.0 dev eth0
> route
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.10.1.0       0.0.0.0         255.255.255.0   U     0      0        0 eth0
複製代碼

屏蔽路由

> route add -net 10.10.1.0 netmask 255.255.255.0 reject
> route
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.10.1.0       -               255.255.255.0   !     0      -        0 -
複製代碼

刪除可用路由

> route del -net 10.0.0.0 netmask 255.255.255.0
複製代碼

同時匹配多個路由表時,執行一次刪除一條

刪除和添加設置默認網關

添加或刪除默認網關時,Linux 會自動檢查網關的可用性:

> route add default gw 192.168.1.1
SIOCADDRT: Network is unreachable
> route del default gw 192.168.1.1
SIOCDELRT: No such process
複製代碼

原文連接:rumenz.com/rumenbiji/l… 微信公衆號:入門小站

相關文章
相關標籤/搜索