如何在Ubuntu中檢視網路路由表
什麼是Linux中的路由和路由表?
路由的過程意味著IP包在網路上從一點傳輸到另一點。當你向某人傳送電子郵件時,你實際上是在將一系列IP資料包或資料報從你的系統傳輸到另一個人的計算機上。從計算機發送的資料包通過幾個閘道器或路由器到達目標計算機系統。同樣的方法適用於所有internet協議,如HTTP、IRC和FTP等。
在所有Linux和UNIX系統中,有關如何轉發IP資料包的資訊都儲存在核心結構中。這些結構稱為路由表。當您希望系統與其他計算機通訊時,可能需要配置這些路由表。首先,瞭解如何在Linux系統上檢視這些路由表非常重要。
- netstat命令
- route命令
- ip route命令
我們在Ubuntu 18.04 LTS系統上運行了本文中提到的命令和過程。
我們使用Ubuntu命令列終端,以便執行上述命令。您可以通過系統Dash或Ctrl + Alt + T快捷方式開啟終端。
如何檢視路由表?
方法1:通過netstat命令
netstat命令一直是Linux中列印路由表資訊一種廣泛使用的方法。然而,它被ip route命令正式取代。無論如何,我們都需要它,因為它仍然是檢索所需資訊的一種方法。
以下是使用此命令的方法:
$ netstat -rn
-r此標誌用於顯示核心路由表
-n此標誌用於顯示數字地址
這是輸出的結果:
Destination | 此列指示目標網路。 |
Gateway | 此列指示網路的已定義閘道器。 如果在此列中看到*,則表示指定的網路不需要轉發閘道器。 |
Genmask | 此列指示網路的網路掩碼。 |
Flags | 此列中的U輸出表示路線已啟動。 G輸出表示應該為此路由使用指定的閘道器。 D代表動態安裝,M代表修改,R代表恢復。 |
MSS | 此列指示此路由的TCP連線的預設最大段大小(MSS)。 |
Window | 此列指示此路由上TCP連線的預設視窗大小。 |
Irtt | 此列指示此路線的初始往返時間。 |
Iface | Iface列顯示網路介面。 如果您有多個介面,您會看到lo(用於環回),eth0(第一個乙太網裝置)和eth1(用於第二個乙太網裝置),依此類推您已安裝的介面數量。 |
方法2:通過route命令
route命令也屬於曾經廣泛使用但現在過時的命令來檢視路由表。 此命令的手冊頁還提到該命令現在已被ip route命令替換。
通過此命令,您可以通過netstat命令檢視完全相同的資訊。 以下是如何使用它:
$ route -n
核心 IP 路由表
目標 閘道器 子網掩碼 標誌 躍點 引用 使用 介面
0.0.0.0 192.168.182.2 0.0.0.0 UG 20100 0 0 ens33
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 ens33
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
192.168.182.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
-n此標誌僅用於顯示數字地址
方法3:通過ip route命令
最後但同樣重要的是,這是在Linux中列印路由表資訊的最佳方法。 以下是使用此命令的方法:
$ ip route
雖然這些資訊不像前面提到的命令那樣對讀者友好,但是它仍然足夠您配置路由器。
這是幾個在Ubuntu中檢視路由表資訊的命令。雖然ip route命令在外觀上不是很整潔,但它仍然是查詢相關路由表資訊的推薦方法。雖然其他命令被認為是過時的,但它們有時確實有助於匯出需要提取的內容。