在 Linux 中如何從命令行查找默認網關的 IP 地址
Linux 下查找網關或路由器 IP 地址的 5 種方法。
網關 是一個節點或一個路由器,當連接到同一路由器時,它允許兩個或多個 IP 地址不同的主機相互通信。如果沒有網關,它們將無法相互通信。換句話說,網關充當接入點,將網絡數據從本地網絡傳輸到遠程網絡。在本指南中,我們將看到在 Linux 和 Unix 中從命令行找到默認網關的所有可能方法。
在 Linux 中查找默認網關
Linux 中有各種各樣的命令行工具可用于查看網關 IP 地址。最常用的工具是:??ip?
??、??ss?
?? 和 ??netcat?
?。我們將通過示例了解如何使用每種工具查看默認網關。
1、使用 ip 命令查找默認網關
??ip?
? 命令用于顯示和操作 Linux 中的路由、網絡設備、接口和隧道。
要查找默認網關或路由器 IP 地址,只需運行:
或者:
或者:
示例輸出:
你從輸出中看到了 ??default via 192.168.1.101?
?? 這一行嗎?它就是默認網關。我的默認網關是 ??192.168.1.101?
?。
你可以使用 ??-4?
?? 參數只??顯示 IPv4 網關?
?:
或者,使用 ??-6?
? 參數只顯示 IPv6 網關:
如你所見,IP 地址和子網詳細信息也一并顯示了。如果你想只顯示默認網關,排除所有其他細節,可以使用 ??ip route?
?? 搭配 ??awk?
? 命令,如下所示。
使用 ??ip route?
?? 和 ??awk?
? 命令打印網關地址,執行命令:
(LCTT 譯注:wsl1 上無輸出結果,正常 Linux 發行版無問題)
或者:
這將只列出網關 IP:
示例輸出:
使用 ip 命令列出默認網關
你也可以使用 ??grep??? 命令配合 ??ip route?
? 對默認網關進行過濾。
使用 ??ip route?
?? 和 ??grep?
? 查找默認網關 IP 地址,執行命令:
在最新的 Linux 發行版中,??ip route?
?? 是查找默認網關 IP 地址的推薦命令。然而,你們中的一些人可能仍然在使用傳統的工具,如 ??route?
?? 和 ??netstat?
??。舊習難改,對吧?下面的部分將介紹如何在 Linux 中使用 ??route?
?? 和 ??netstat?
? 命令確定網關。
2、使用 route 命令顯示默認網關 IP 地址
??route?
? 命令用于在較老的 Linux 發行版中顯示和操作路由表,如 RHEL 6、CentOS 6 等。
如果你正在使用較老的 Linux 發行版,你可以使用 ??route?
? 命令來顯示默認網關。
請注意,在最新的 Linux 發行版中,??route?
?? 工具已被棄用,??ip route?
?? 命令取而代之。如果你因為某些原因仍然想使用 ??route?
?,你需要安裝它。
首先,我們需要檢查哪個包提供了 ??route?
? 命令。為此,在基于 RHEL 的系統上運行以下命令:
示例輸出:
如你所見,??net-tools?
?? 包提供了 ??route?
? 命令。所以,讓我們使用以下命令來安裝它:
現在,運行帶有 ??-n?
?? 參數的 ??route?
? 命令來顯示 Linux 系統中的網關或路由器 IP 地址:
示例輸出:
使用 route 命令顯示默認網關 IP 地址
如你所見,網關 IP 地址是 192.168.1.101。你還將在 Flags 下面看到兩個字母 ??UG?
??。字母 ??U?
?? 代表接口是 “Up”(在運行),??G?
? 表示 “Gateway”(網關)。
3、使用 netstat 命令查看網關 IP 地址
??netstat?
?? 會輸出 Linux 網絡子系統的信息。使用 ??netstat?
? 工具,我們可以在 Linux 和 Unix 系統中打印網絡連接、路由表、接口統計信息、偽裝連接和組播成員關系。
??netstat?
?? 是 ??net-tools?
? 包的一部分,所以確保你已經在 Linux 系統中安裝了它。使用以下命令在基于 RHEL 的系統中安裝它:
使用 netstat 命令打印默認網關 IP 地址:
示例輸出:
使用 netstat 命令查看網關 IP 地址
??netstat?
?? 命令與 ??route?
?? 命令的輸出信息相同。如上輸出可知,網關的 IP 地址為 ??192.168.1.191?
??,??UG?
?? 表示網關連接的網卡是有效的,??G?
? 表示網關。
請注意 ??netstat?
?? 也已棄用,建議使用 ??ss?
?? 命令代替 ??netstat?
?。
4、使用 routel 命令打印默認網關或路由器 IP 地址
??routel?
?? 是一個腳本,它以一種漂亮格式的輸出路由。??routel?
?? 腳本的輸出讓一些人認為比 ??ip route?
? 列表更直觀。
??routel?
?? 腳本也是 ??net-tools?
? 包的一部分。
打印默認網關或路由器 IP 地址,不帶任何參數運行 ??routel?
? 腳本,如下所示:
示例輸出:
使用 routel 命令打印默認網關或路由器 IP 地址
只打印默認網關,和 ??grep?
? 命令配合,如下所示:
5、從以太網配置文件中查找網關
如果你在 ??Linux 或 Unix 中配置了靜態 IP 地址??,你可以通過查看網絡配置文件查看默認網關或路由器 IP 地址。
在基于 RPM 的系統上,如 Fedora、RHEL、CentOS、AlmaLinux 和 Rocky Linux 等,網絡接口卡配置存儲在 ??/etc/sysconfig/network-scripts/?
? 目錄下。
查找網卡的名稱:
示例輸出:
網卡名為 ??eth0?
?。所以讓我們打開這個網卡文件的網卡配置:
示例輸出:
如你所見,網關 IP 為 ??192.168.1.101?
?。
在 Debian、Ubuntu 及其衍生版中,所有的網絡配置文件都存儲在 ??/etc/network?
? 目錄下。
示例輸出:
請注意,此方法僅在手動配置 IP 地址時有效。對于啟用 DHCP 的網絡,需要按照前面的 4 種方法操作。
總結
在本指南中,我們列出了在 Linux 和 Unix 系統中找到默認網關的 5 種不同方法,我們還在每種方法中包含了顯示網關/路由器 IP 地址的示例命令。希望它對你有所幫助。