阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

在 Linux 中如何从命令行查找默认网关的 IP 地址

331次阅读
没有评论

共计 5181 个字符,预计需要花费 13 分钟才能阅读完成。

导读 在本指南中,我们列出了在 Linux 和 Unix 系统中找到默认网关的 5 种不同方法,我们还在每种方法中包含了显示网关 / 路由器 IP 地址的示例命令。希望它对你有所帮助。
在 Linux 中如何从命令行查找默认网关的 IP 地址

Free operationg system. The word “Linux” is lined with gold letters on wooden planks. 3D illustration graphics

Linux 下查找网关或路由器 IP 地址的 5 种方法。

网关 是一个节点或一个路由器,当连接到同一路由器时,它允许两个或多个 IP 地址不同的主机相互通信。如果没有网关,它们将无法相互通信。换句话说,网关充当接入点,将网络数据从本地网络传输到远程网络。在本指南中,我们将看到在 Linux 和 Unix 中从命令行找到默认网关的所有可能方法。

在 Linux 中查找默认网关

Linux 中有各种各样的命令行工具可用于查看网关 IP 地址。最常用的工具是:​​ip​​​、​​ss​​​ 和 ​​netcat​​。我们将通过示例了解如何使用每种工具查看默认网关。

1、使用 ip 命令查找默认网关

​​ip​​ 命令用于显示和操作 Linux 中的路由、网络设备、接口和隧道。

要查找默认网关或路由器 IP 地址,只需运行:

$ ip route

或者:

$ ip r

或者:

$ ip route show

示例输出:

default via 192.168.1.101 dev eth0 proto static metric 100 172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown 192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.20 metric 100

你从输出中看到了 ​​default via 192.168.1.101​​​ 这一行吗?它就是默认网关。我的默认网关是 ​​192.168.1.101​​。

你可以使用 ​​-4​​​ 参数只​​显示 IPv4 网关​​:

$ ip -4 route

或者,使用 ​​-6​​ 参数只显示 IPv6 网关:

$ ip -6 route

如你所见,IP 地址和子网详细信息也一并显示了。如果你想只显示默认网关,排除所有其他细节,可以使用 ​​ip route​​​ 搭配 ​​awk​​ 命令,如下所示。

使用 ​​ip route​​​ 和 ​​awk​​ 命令打印网关地址,执行命令:

$ ip route | awk '/^default/{print $3}'

(LCTT 译注:wsl1 上无输出结果,正常 Linux 发行版无问题)

或者:

$ ip route show default | awk '{print $3}'

这将只列出网关 IP:
在 Linux 中如何从命令行查找默认网关的 IP 地址
示例输出:

192.168.1.101

使用 ip 命令列出默认网关

你也可以使用 ​​grep​​​ 命令配合 ​​ip route​​ 对默认网关进行过滤。

使用 ​​ip route​​​ 和 ​​grep​​ 查找默认网关 IP 地址,执行命令:

$ ip route | grep defaultdefault via 192.168.1.101 dev eth0 proto static metric 100

在最新的 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 的系统上运行以下命令:

$ dnf provides route

示例输出:

net-tools-2.0-0.52.20160912git.el8.x86_64 : Basic networking toolsRepo        : @SystemMatched from:Filename    : /usr/sbin/routenet-tools-2.0-0.52.20160912git.el8.x86_64 : Basic networking toolsRepo        : baseosMatched from:Filename    : /usr/sbin/route

如你所见,​​net-tools​​​ 包提供了 ​​route​​ 命令。所以,让我们使用以下命令来安装它:

$ sudo dnf install net-tools

现在,运行带有 ​​-n​​​ 参数的 ​​route​​ 命令来显示 Linux 系统中的网关或路由器 IP 地址:

$ route -n

示例输出:

Kernel IP routing tableDestination     Gateway         Genmask         Flags Metric Ref    Use Iface0.0.0.0         192.168.1.101   0.0.0.0         UG    100    0        0 eth0172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0192.168.1.0     0.0.0.0         255.255.255.0   U     100    0        0 eth0

使用 route 命令显示默认网关 IP 地址

在 Linux 中如何从命令行查找默认网关的 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 的系统中安装它:

$ sudo dnf install net-tools

使用 netstat 命令打印默认网关 IP 地址:

$ netstat -rn

示例输出:

Kernel IP routing tableDestination     Gateway         Genmask         Flags   MSS Window  irtt Iface0.0.0.0         192.168.1.101   0.0.0.0         UG        0 0          0 eth0172.17.0.0      0.0.0.0         255.255.0.0     U         0 0          0 docker0192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0

在 Linux 中如何从命令行查找默认网关的 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

示例输出:

target            gateway          source    proto    scope    dev tbl        default      192.168.1.101                   static            eth0     172.17.0.0/ 16                      172.17.0.1   kernel     linkdocker0    192.168.1.0/ 24                    192.168.1.20   kernel     link   eth0      127.0.0.0/ 8            local       127.0.0.1   kernel     host     lo local      127.0.0.1              local       127.0.0.1   kernel     host     lo local127.255.255.255          broadcast       127.0.0.1   kernel     link     lo local     172.17.0.1              local      172.17.0.1   kernel     hostdocker0 local 172.17.255.255          broadcast      172.17.0.1   kernel     linkdocker0 local   192.168.1.20              local    192.168.1.20   kernel     host   eth0 local  192.168.1.255          broadcast    192.168.1.20   kernel     link   eth0 local            ::1                                      kernel              lo             ::/ 96     unreachable                                       lo ::ffff:0.0.0.0/ 96     unreachable                                       lo     2002:a00::/ 24     unreachable                                       lo    2002:7f00::/ 24     unreachable                                       lo    2002:a9fe::/ 32     unreachable                                       lo    2002:ac10::/ 28     unreachable                                       lo    2002:c0a8::/ 32     unreachable                                       lo    2002:e000::/ 19     unreachable                                       lo    3ffe:ffff::/ 32     unreachable                                       lo         fe80::/ 64                                   kernel            eth0             ::1              local                   kernel              lo localfe80::d085:cff:fec7:c1c3              local                   kernel            eth0 local

在 Linux 中如何从命令行查找默认网关的 IP 地址
使用 routel 命令打印默认网关或路由器 IP 地址

只打印默认网关,和 ​​grep​​ 命令配合,如下所示:

$ routel | grep default        default      192.168.1.101                   static            eth0
5、从以太网配置文件中查找网关

如果你在 ​​Linux 或 Unix 中配置了静态 IP 地址​​,你可以通过查看网络配置文件查看默认网关或路由器 IP 地址。

在基于 RPM 的系统上,如 Fedora、RHEL、CentOS、AlmaLinux 和 Rocky Linux 等,网络接口卡配置存储在 ​​/etc/sysconfig/network-scripts/​​ 目录下。

查找网卡的名称:

# ip link show

示例输出:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: eth0@if5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000    link/ether d2:85:0c:c7:c1:c3 brd ff:ff:ff:ff:ff:ff link-netnsid 0

网卡名为 ​​eth0​​。所以让我们打开这个网卡文件的网卡配置:

# cat /etc/sysconfig/network-scripts/ifcfg-eth0

示例输出:

DEVICE=eth0ONBOOT=yesUUID=eb6b6a7c-37f5-11ed-a59a-a0e70bdf3dfbBOOTPROTO=noneIPADDR=192.168.1.20NETMASK=255.255.255.0GATEWAY=192.168.1.101DNS1=8.8.8.8

如你所见,网关 IP 为 ​​192.168.1.101​​。

在 Debian、Ubuntu 及其衍生版中,所有的网络配置文件都存储在 ​​/etc/network​​ 目录下。

$ cat /etc/network/interfaces

示例输出:

auto ens18iface ens18 inet static        address 192.168.1.150        netmask 255.255.255.0        gateway 192.168.1.101        dns-nameservers 8.8.8.8

请注意,此方法仅在手动配置 IP 地址时有效。对于启用 DHCP 的网络,需要按照前面的 4 种方法操作。

总结

在本指南中,我们列出了在 Linux 和 Unix 系统中找到默认网关的 5 种不同方法,我们还在每种方法中包含了显示网关 / 路由器 IP 地址的示例命令。希望它对你有所帮助。

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-24发表,共计5181字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7973936
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
在Windows系统中通过VMware安装苹果macOS15

在Windows系统中通过VMware安装苹果macOS15

在 Windows 系统中通过 VMware 安装苹果 macOS15 许多开发者和爱好者希望在 Window...
免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

  免费无广告!这款跨平台 AI RSS 阅读器,拯救你的信息焦虑 在算法推荐主导信息流的时代,我们...
星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛 NAS 硬件 03:五盘位 +N5105+ 双网口的成品 NAS 值得入手吗 前言 大家好,我...
浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍 前言 在 AI 自动化快速发展的当下,浏览器早已不再只是...
一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸

一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸

一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸 前言 作为天天跟架构图、拓扑图死磕的...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞...
安装Black群晖DSM7.2系统安装教程(在Vmware虚拟机中、实体机均可)!

安装Black群晖DSM7.2系统安装教程(在Vmware虚拟机中、实体机均可)!

安装 Black 群晖 DSM7.2 系统安装教程(在 Vmware 虚拟机中、实体机均可)! 前言 大家好,...
国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号 AI 知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率 大家好,我是星哥,...
星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛 NAS-14:解锁公网自由!Lucky 功能工具安装使用保姆级教程 作为 NAS 玩家,咱们最...
星哥带你玩飞牛NAS-16:不再错过公众号更新,飞牛NAS搭建RSS

星哥带你玩飞牛NAS-16:不再错过公众号更新,飞牛NAS搭建RSS

  星哥带你玩飞牛 NAS-16:不再错过公众号更新,飞牛 NAS 搭建 RSS 对于经常关注多个微...