什麼是 Linux 路由和路由表?

路由過程是通過網絡將 IP 數據包從一個點發送到另一個點。當您向某人發送電子郵件時,您實際上是在將一系列 IP 數據包或數據報從您的系統發送到他們的計算機。從您的計算機發送的數據包通過多個網關或路由器到達目標計算機系統。相同的方法適用於所有 Internet 協議,例如 HTTP、IRC、FTP。

所有 Linux 和 UNIX 系統都存儲有關 IP 數據包如何在內核結構中轉發的信息。這些結構稱為路由表。如果您的系統與其他計算機通信,您可能需要配置這些路由表。首先,了解如何在 Linux 系統上查看這些路由表很重要。

本文將向您展示如何使用三個常用命令在 Ubuntu 中查看路由表:

  • netstat 命令
  • 路由命令
  • ip 路由命令

我在 Ubuntu 18.04 LTS 系統上運行了本文中提供的命令和步驟。

使用 Ubuntu 命令行終端執行上述命令。您可以使用系統破折號或 Ctrl+Alt+T 快捷鍵打開終端。

如何查看路由表?

方法一:使用netstat命令

netstat 命令是 Linux 中一種廣泛使用的打印路由表信息的方法。但是,它已被 ip route 命令正式取代。無論如何,我將其包括在內,因為這是獲取我想要的信息的一種方式。

以下是如何使用此命令:

$ netstat -rn

-r 該標誌用於顯示內核路由表

-n 此標誌用於顯示數字地址

這是輸出顯示的內容:

目的地此列指示目標網絡。
網關此列顯示為網絡定義的網關。此列中的 * 表示指定網絡不需要中轉網關。
基因掩碼此列顯示網絡網絡掩碼。
標識此列中的 U 輸出表示路由已啟動。 G 輸出表明路由應該使用指定的網關。 D 表示動態安裝,M 表示修改,R 表示恢復。
MSS此列顯示此路由的 TCP 連接的默認最大分段大小 (MSS)。
窗戶此列顯示通過此路由的 TCP 連接的默認窗口大小。
伊特此列顯示此路線的第一次往返時間。
我面對Iface 列顯示網絡接口。如果您有多個接口,您將看到 lo(用於環回)、eth0(用於第一個以太網設備)、eth1(用於第二個以太網設備)等,以顯示已安裝的接口數量。

方法二:通過route命令

route 命令是另一個曾經廣泛使用但現在已過時的用於顯示路由表的命令。該命令的手冊頁還指出該命令已被 ip route 命令取代。

此命令可用於顯示與 netstat 命令完全相同的信息。以下是如何使用它:

$ route -n

-n 此標誌僅用於顯示數字地址

方法三:使用 ip route 命令

最後但同樣重要的是,這是在 Linux 上打印路由表信息的最推薦方式。以下是如何使用此命令:

$ ip route

使用 ip 命令列出路由

此信息不像前面的命令那樣可讀,但足以配置您的路由器。

這些是在 Ubuntu 中查看路由表信息的命令。 ip route 命令是查找相關路由表信息的最醜陋但最推薦的方法。其他命令被認為是過時的,但在派生您需要提取的內容時非常有用。