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