5在Linux下查找网关或路由器IP地址的方法。网关是一个节点或路由器,当连接到同一个路由器时,它允许具有不同IP地址的两个或多个主机相互通信。没有网关,它们就无法相互通信。换句话说,网关充当接入点,将网络数据从本地网络传输到远程网络。在本指南中,我们将看到在Linux和Unix中从命令行查找默认网关的所有可能方法。在Linux中查找默认网关Linux中有多种命令行工具可用于查找网关IP地址。最常用的工具是:ip、ss和netcat。我们将通过一个示例来说明如何使用每个工具来查看默认网关。1.使用ip命令查找默认网关ip命令在Linux中用于显示和操作路由、网络设备、接口和隧道。要查找默认网关或路由器IP地址,只需运行:$iproute或:$ipr或:$iprouteshow示例输出:defaultvia192.168.1.101deveth0protostaticmetric100172.17.0.0/16devdocker0protokernelscopelinksrc172.17.0.1linkdown192.168.1.0/24deveth0protokernelscopelinksrc192.168.1.20metric100你从输出中看到defaultvia192.168.1.101这行吗?它是默认网关。我的默认网关是192.168.1.101。您可以使用-4参数仅显示IPv4网关:$ip-4route或者,使用-6参数仅显示IPv6网关:$ip-6route如您所见,还会显示IP地址和子网详细信息.如果只想显示默认网关,排除所有其他详细信息,可以使用iproute和awk命令,如下所示。使用iproute和awk命令打印网关地址,执行命令:$iproute|awk'/^default/{print$3}'(LCTT译注:wsl1上没有输出,正常的Linux发行版没问题)或者:$iprouteshowdefault|awk'{print$3}'这只会列出网关IP:示例输出:192.168.1.101使用ip命令列出默认网关也可以使用grep命令配合iproute过滤默认网关.使用iproute和grep查找默认网关IP地址,执行命令:$iproute|grepdefaultdefaultvia192.168.1.101deveth0protostaticmetric100在最新的Linux发行版中,iproute是查找默认网关IP地址的推荐命令。然而,你们中的一些人可能仍在使用传统工具,如route和netstat。旧习难改,对吧?以下部分介绍如何在Linux中使用route和netstat命令确定网关。2、使用route命令显示默认网关IP地址route命令在较老的Linux发行版中用于显示和操作路由表,如RHEL6、CentOS6等,如果你使用的是较老的Linux发行版,你可以使用route命令显示默认网关。请注意,route工具在最近的Linux发行版中已被弃用,取而代之的是iproute命令。如果您出于某种原因仍想使用路由,则需要安装它。首先,我们需要检查哪个包提供了路由命令。为此,请在基于RHEL的系统上运行以下命令:$dnfprovidesroute示例输出:net-tools-2.0-0.52.20160912git.el8.x86_64:BasicnetworkingtoolsRepo:@SystemMatchedfrom:Filename:/usr/sbin/routenet-tools-2.0-0.52.20160912git.el8.x86_64:BasicnetworkingtoolsRepo:baseosMatchedfrom:Filename:/usr/sbin/route如你所见,net-tools包提供了route命令。因此,让我们使用以下命令安装它:$sudodnfinstallnet-tools现在,运行带有-n参数的route命令以显示Linux系统中的网关或路由器IP地址:$route-n示例输出:内核IP路由表目标网关Genmask标志度量参考使用Iface0.0.0.0192.168.1.1010.0.0.0UG10000eth0172.17.0.00.0.0.0255.255.0.0U0012.01docker08.00.0.0.0255.250.255.2505U.25000eth0使用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的系统中:$sudodnfinstallnet-tools使用netstat命令打印默认网关IP地址:$netstat-rn示例输出:内核IP路由表目标网关Genmask标志MSS窗口irttIface0.0.0.0192.168.1.1010.0.0.0UG000eth0172.17.0.00.0.0.0255.255.0.0U000docker0192.168.1.00.0.0.0255.255.255.0U000eth0使用netstat命令查看网关IP地址netstat命令的输出与route命令的输出相同。从上面的输出可以看出,网关的IP地址是192.168.1.191,UG表示网关连接的网卡有效,G表示网关.请注意,netstat也已弃用,建议使用ss命令代替netstat。4.使用routel命令打印默认网关或路由器IP地址routel是一个脚本,以漂亮的格式输出路由。routel脚本的输出被一些人认为比iproutelist更直观。Routel脚本也是net-tools包的一部分。要打印默认网关或路由器IP地址,请运行不带任何参数的routel脚本,如下所示:$routel示例输出:targetgatewaysourceprotoscopedevtbldefault192.168.1.101staticeth0172.17.0.0/16172.17.0.1kernellinkdocker0192.168。1.0/24192.168.1.20内核链接eth0127.0.0.0/8本地127.0.0.1内核主机lo本地127.0.0.1本地127.0.0.1内核主机lolocal127.255.255.255广播127.0.0.1内核链接lo本地172.17.0.17本地172.0.1内核hostdocker0本地172.17.255.255广播172.17.0.1内核linkdocker0本地192.168.1.20本地192.168.1.20内核主机eth0本地192.168.1.255广播192.168.1.20内核链接eth0本地::1kernello::/96unreachablelo::ffff:0.0.0.0/96unreachablelo2002:a00::/24unreachablelo2002:7f00::/24unreachablelo2002:a9fe::/32unreachablelo2002:ac10::/28unreachablelo2002:c0a8::/32unreachablelo2002:e000::/19unreachablelo3ffe:ffff::/32unreachablelofe80::/64kerneleth0::1localkernellolocalfe80::d085:cff:fec7:c1c3本地内核等h0local使用routel命令打印默认网关或路由器IP地址只打印默认网关,配合grep命令,如下:grepdefaultdefault192.168.1.101staticeth05,从以太网配置文件中找到网关如果您在Linux或Unix中配置了静态IP地址,您可以通过查看网络配置文件来检查默认网关或路由器IP地址在基于RPM的系统上如Fedora、RHEL、CentOS、AlmaLinux和RockyLinux等,网卡配置存放在/etc/sysconfig/network-scripts/目录下。查找NIC的名称:#iplinkshow示例输出:1:lo:
