15 个用于网络诊断的 Linux ping 命令示例

2023-10-19

感谢 Linux,我们可以使用许多促进网络管理和诊断的工具。从这个意义上说,Linux ping 命令是系统管理员和网络管理员最有用的工具之一。

它的基本功能是确定网络中的一台主机是否可达。然而,在这篇文章中,我们将讨论 Linux Ping 命令的其他更高级的功能。

 

 

ping 命令有什么用?

ping 命令是使用网络的最基本工具之一。其目的是诊断网络连接 errors.

通过这种方式,可以知道网络节点是否失去了连接。另一方面,执行其他诊断任务也很有用,例如:

  • 测量两个网络节点进行通信所花费的时间。
  • 我们还能够识别特定主机的 IP 地址。我们可以在互联网和专用网络中使用此功能。
  • ping 命令可用于bash脚本对网络节点执行自动检查。
  • 它允许知道是否与特定设备有连接。

正如您所看到的,它是管理网络和服务器的必要命令。

 

ping 命令如何工作?

在 Linux 中,ping 命令的功能很容易解释。该命令将一系列小数据包发送到特定节点。

您可以使用 IP 地址或主机名来测试该节点。然后,发送数据包后,该命令会验证并测量从目标节点接收响应所需的时间。

正如您所料,响应时间可能会受到连接点之间的地理位置或两个节点之间使用的任何硬件等条件的影响。

例如,在有线专用网络中,该命令将比在具有多个路由器或网桥的网络中获得更好的时间。

但是,该命令生成的信息将判断网络状况是好还是坏。

该命令的语法如下:


ping [options] [destination]  

ping 命令的一些最有用和最常用的选项如下:

  • -c:使用此选项,您可以指定发送多少个数据包。
  • -s:此选项允许您更改数据包的默认大小。
  • -v:详细模式。
  • -w:指定命令执行结束的时间(以秒为单位)。无论命令已发送或接收多少个数据包。
  • -i:使用此选项,您可以指定要使用的网络接口。

目标节点可以通过 IP 地址或主机名指定。

 

我可以使用代理 ping 吗?

A proxy是充当网络上两点之间连接中介的服务器或应用程序。中间人直接向另一个节点发出请求。

问题是 Ping 命令需要节点之间有直接的网络连接。

因此,如果背后有代理,Ping 命令通常无法正常运行。

一个可能的解决方案是许多网站都提供 Ping 命令服务。另一方面,对于 ping 命令的某些任务,可以使用卷曲命令。另外,您可以使用 VPN,这样它就会隐藏您的 IP。

但是,在某些 Linux 发行版中,默认情况下不安装此命令。首先验证一下,没有安装的话再安装。

 

Ping IPv6 协议

通常,在使用 Ping 命令时,我们使用 IPv4 协议的 IP 地址。然而,随着 IPv6 协议的出现,这种格式的地址越来越常见。

Linux内核从2.2版本开始支持IPv6协议,因此目前所有Linux发行版都支持它。

基本语法如下:


$ ping -6 2001:4860:4860::8888  

在旧版本上,有 ping6 命令。在最新版本的 Linux 上,ping6 不再存在,其功能已合并到 ping 中,并且其工作方式与您所看到的相同。

基本语法如下:


ping6 [options] [Destination]  

使用选项 -c,我们可以指定要发送的数据包数量,使用 -i 指定您将使用的网络接口。例如:


ping6 2001:4860:4860::8888  

 

Ping 特定端口

有时我们想知道节点上的特定端口是否处于活动状态。但是,ping 命令不提供此功能,但可以使用 Linux 上默认安装的 telnet 命令来实现此功能。

为此,只需使用以下语法:


telnet [host] [port]  

telnet google.com 80  

这样就可以用原始的方式来ping通网络节点的特定端口。

 

随时间 Ping

尽管 ping 命令显示有用的信息,但它可能有点简单。但是,可以稍微修改命令的操作,以使其显示数据包发送的日期。

这可以使信息赏心悦目,并且可能对脚本和日志有用。

这个语法足以做到这一点。但是,您需要安装 ccze 软件包。


ping [host] | xargs -n1 -i bash -c 'echo `date +%F\ %T`" {}"' | ccze  

如您所见,它显示了每个数据包发送的时间。

 

Ping 给定子网上的所有主机

您可以向网络或子网上的所有主机发送 ping 信号。为此,添加选项 -b 并 ping 任何以 255 结尾的网络的广播 IP 地址就足够了。

例如:


ping -b -c 4 192.168.1.255  

因此,如果目的地无法到达,可能是它们阻止了 ping 命令发送的 ICMP 数据包,也可能是网络问题或路由表出现问题。

 

如何结束 ping?

默认情况下,Linux 上的 ping 命令会不断向主机发送测试包。然而,一旦信息可用,就必须终止 ping 命令的执行。

为此,只需按以下键:


CTRL + C  

这样,该命令将立即停止工作。

在特定计数后结束

您可以将数据包的数量限制为 10 或其他。当它发送完十个数据包后,它将停止。


ping -c 10 [host]  

 

Linux 上 ping 命令位于哪里?

在像 Linux 这样的 Unix 衍生系统中,二进制文件通常可以在路径中找到:


/usr/bin/  

.

在此目录中,您会发现许多我们在终端上用作命令的二进制文件。在 Linux 系列的其他操作系统中,也可以将其放在


/usr/sbin/  

目录。

因此,我们可以使用 ls 命令来检查:


$ ls /usr/bin | grep ping  

在此图中,您可以看到 ping 命令位于


/usr/bin/  

.

另一种方法是,您可以使用 which 命令来查找 Linux 上的任何命令:


$ which ping  

它将显示以下内容:


/usr/bin/ping  

 

使用 ping 命令检查延迟

ping 命令提供的可能性之一是您可以测量连接响应时间。这就是延迟。

要使用 ping 命令测量延迟,只需使用它并注意屏幕输出:


ping -c 4 [host]
ping -c 4 192.168.1.1  

正如你所看到的,四个数据包已被发送到目的地,并且有一定的响应时间。

在底部,有一行开头如下:


rtt min/avg/max/mdev  

等号后的第二个值是延迟值。在本例中,该值为 6.798。

通过延迟,可以确定连接性较差的主机。这样我们就可以采取相应的措施。

 

找到理想的 MTU

MTU(最大传输单元)是静态表示可以通过网络发送的最大数据单元的大小(以字节为单位)的值。

目前,由于安全措施,越来越多的网络阻止 MTU 工作。然而,大多数以太网局域网使用 1500 字节 MTU。

如果您想使用 ping 命令找到理想的 MTU 值,请设置初始值,然后逐渐减小,直到没有错误为止。如果该值太高,我们将收到下一个错误:


ping: local error: Message too long  

为此,请使用以下语法:


ping -M do -s [initial_value] [host]  

例如:


ping -M do -s 1473 192.168.1.1  

在这种情况下,封装尺寸的价值就非常大了。所以我会减少它。在本例中,最佳值为 1472。

如果您收到另一条消息,则必须将初始值逐一减少,直到获得所需的结果。

如果 MTU 值已知,则可用于改进网络行为,特别是在大型网络甚至城域网络的情况下。

 

在第 2 层上执行 Ping 操作(使用 arping)

使用 ping 命令,我们将能够在知道网络中特定节点的 IP 地址的情况下执行测试。这是因为 ping 命令工作在第 3 层开放系统互连模型(网络)。

另一方面,可以使用 Linux 中内置的另一个命令作为 arping。该命令的工作原理与 ping 非常相似,但适用于 OSI 模型的第 2 层。

该命令的语法如下:


$ sudo arping [Ip_address]  

$ sudo arping 192.168.1.1  

你会得到这样的结果:

该命令的屏幕输出首先显示发送数据包的大小,然后显示节点的 MAC 地址和响应时间。

请注意,Debian Linux 及其衍生版本上默认不安装此命令。所以你必须安装它,然后你才能以 root 身份运行它。

 

Ping 主机名

默认情况下,ping 命令使用目标的 IP 地址或主机名向目标发送测试数据包。还应该注意的是,Linux 上的大多数 ping 实现都没有解析DNS相反。

例如,如果您通过添加 IP 地址来使用 Ping 命令,则它只会在输出中返回主机的 IP 地址。相反,如果我们指定了主机名,它将解析它并在输出中显示 IP。

检查以下命令的输出:


$ ping google.com  

 

Ping 路由(使用跟踪路由)

ping 命令不显示从源到目的地的路由。

如果与主机的连接丢失,这将非常有用,因为我们可以了解连接在哪个点丢失。

tracert 或traceroute 命令的工作方式与ping 命令非常相似。这样做的优点是它显示了数据包所经过的路径,从而显示了其路由。

就像大多数 Linux 发行版中都安装了 ping 命令一样。基本语法如下:


traceroute [hostname/IPaddres]  

这样,我们就可以看到数据包所采用的路线。

 

如果 ping 失败则运行命令

假设您希望在 ping 命令失败时收到警报。为此,您需要将 ping 命令合并到 bash 脚本中以设置所需的条件。

例如,此 shell 脚本允许您检查 ping 命令是否失败:


#! /bin/bash
ping -c 1 [host]
If [ $? -eq 0]; then
    #Your_command_here
Fi  

 

设置 ping 数据包大小

ping 命令发送给主机的数据包的默认大小为 56 字节。它的值足够低,不会影响网络的运行。

但是,可以将其更改为其他值。为此,只需添加 -s 选项和所需的数据包大小即可。

例如:


ping -s [packet_size] hostname/IP  

如果您希望数据包大小为 100 字节,只需使用以下命令:


ping -s 100 192.168.1.1  

请记住,它可能会因 MTU 的不同而略有不同。

 

禁用 ping 命令

如果我们负责维护网络,我们可能希望随时禁用 ping 响应。我们可以根据需要暂时或永久地进行此操作。

如果我们想暂时停用它,以 root 用户身份使用此命令就足够了:


$ su

$ echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all  

这将禁用 ping 命令响应,但仅限于您重新启动系统。

如果你想永久执行此操作,则必须编辑以下文件


/etc/sysctl.conf  

并添加下一行:


$ nano /etc/sysctl.conf  

net.ipv4.icmp_echo_ignore_all=1  

然后保存文件并退出。要应用更改,请使用以下命令:


$ sysctl -p  

这将禁用 ping 命令或 ICMP 数据包的响应。

 

结论

在这篇文章中,我们详细解释了 ping 命令在 Linux 上的工作原理。从它的实用性到禁用它。 Ping 是最容易使用的命令之一。

这使得负责网络运营的人员知道问题出在哪里,以便他可以采取行动。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

15 个用于网络诊断的 Linux ping 命令示例 的相关文章

  • 如何在 CentOS 7 上安装 Python 3

    本教程将指导您使用 Software Collections SCL 以及发行版默认 Python 版本 2 7 在 CentOS 7 系统上安装 Python 3 我们还将向您展示如何创建 Python 虚拟环境 Python 是世界上最
  • 如何在 Debian 10 Linux 上安装 Vagrant

    Vagrant是一个用于构建和管理虚拟机环境的开源命令行工具 默认情况下 Vagrant 可以在 VirtualBox Hyper V 之上配置计算机 和码头工人 其他提供商如 Libvirt KVM VMware 和 AWS 可以通过 V

随机推荐

  • Linux 中的 Wget 命令及示例

    GNU Wget 是一个用于从网络下载文件的命令行实用程序 使用 Wget 您可以使用 HTTP HTTPS 和 FTP 协议下载文件 Wget 提供了许多选项 允许您下载多个文件 恢复下载 限制带宽 递归下载 后台下载 镜像网站等等 本文
  • 如何在 Ubuntu 20.04 上安装 Odoo 15

    Odoo 是一款流行的开源商业应用程序套件 可帮助公司管理和运营其业务 它包括广泛的应用程序 例如 CRM 电子商务 网站构建器 计费 会计 制造 仓库 项目管理 库存等等 所有这些都无缝集成 Odoo根据使用案例和可用技术 可以以不同的方
  • 如何在 Debian 10 Linux 上安装 Node.js 和 npm

    Node js 是一个基于 Chrome JavaScript 构建的跨平台 JavaScript 运行时环境 旨在在服务器端执行 JavaScript 代码 使用 Node js 您可以构建可扩展的网络应用程序 npm 是 Node js
  • 如何在 Debian 9 上安装 Java

    在本教程中 我们将逐步介绍在 Debian 9 上安装 Java Java 是用于构建不同类型的应用程序和系统的最流行的编程语言之一 用 Java 开发的应用程序具有可扩展性 灵活性和可维护性 有两种不同的 Java 包 Java 运行时环
  • 如何在 Debian 9 上安装和使用 PHP Composer

    Composer是 PHP 的依赖管理器 类似于Node js 的 npm or Python 的点子 Composer 将提取您的项目所依赖的所有必需的 PHP 包并为您管理它们 本教程提供了在 Debian 9 系统上安装 Compos
  • 如何列出 CentOS 上已安装的软件包

    在本教程中 我们将向您展示如何列出和过滤 CentOS 上已安装的软件包 当您需要在另一台计算机上安装相同的软件包或想要重新安装系统时 了解如何列出 CentOS 系统上已安装的软件包会很有帮助 我们还将向您展示如何检查是否安装了特定的软件
  • 如何检查您的 CentOS 版本

    当您第一次登录 CentOS 计算机时 在进行任何工作之前 您可能需要检查系统上运行的 CentOS 版本 在本教程中 我们将展示几个不同的命令 了解如何检查系统上安装的 CentOS 版本 截至撰写本文时 CentOS Linux 拥有三
  • 如何在 CentOS 8 上添加交换空间

    交换空间是磁盘上的空间 当物理 RAM 内存已满时使用 当 Linux 系统耗尽 RAM 时 非活动页面将从 RAM 移至交换空间 交换空间可以采用专用交换分区或交换文件的形式 通常 在虚拟机上运行 CentOS 时 不存在交换分区 因此唯
  • 配置 Magento 2 在 CentOS 7 上使用 Varnish

    页面速度或加载时间对于在线商店的成功至关重要 加载时间是加载特定页面上的内容所需的总时间 加载时间越长 转化率越低 这也是谷歌考虑确定搜索引擎排名的最重要因素之一 在第一篇文章中 我们在 CentOS 7 机器上安装了 Magento 2
  • 自动启动 wampserver 在 Windows 10 上自动启动

    在向您展示如何自动启动 wampserver 之前 我先简单介绍一下 Wampserver 是 Windows 平台上最好的 Web 开发堆栈之一 与 xampp 相比 我更喜欢它 因为它有方便的托盘菜单 可以让我访问任何配置 您可以从此网
  • 使用 Sed 命令删除行:Linux 文本删除教程

    Using sed命令从文件或流中删除行是常见操作 使用删除行的基本语法sed如下 sed pattern to match d filename Here pattern to match是您要在文件的每一行中匹配的模式 如果一行包含指定
  • 使用 to_sql 将 Python Pandas DataFrame 导出到 SQL

    The to sql函数允许您将存储在 DataFrame 中的记录写入 SQL 数据库 通过使用 SQLAlchemy 可以使用该库支持的任何数据库 在接下来的部分中 我们将更深入地研究此功能并探索更多功能 目录 hide 1 基本语法和
  • Python NumPy arange() 教程

    NumPyarange 函数用于生成给定区间内的值序列 您可以将其视为数字范围生成器 它允许您创建一个 NumPy 数组 其值在指定范围内均匀分布 它提供了更多功能 例如使用浮点数的能力以及显式定义数组中包含的值的间隔的灵活性 在本教程中
  • Python 切片初学者指南

    在本教程中 您将了解切片在 Python 中的工作原理以及如何使用它来操作字符串 列表和元组等序列 我们还将演示 Python 切片对象如何创建可用于对序列进行切片的切片 这些知识将为您提供一个强大的工具来访问序列中的多个项目 以删除多个项
  • Python 中非常规颜色指南

    如果您一直在使用 Python 进行编程 那么您很可能至少遇到过一个提供处理颜色表示和自定义功能的库 From 图像处理从数据可视化到Web应用程序开发 你会发现颜色的使用无处不在 事实上 大多数用于最先进计算机视觉任务的现代深度神经网络都
  • 在 Pandas 中使用 loc 和 MultiIndex DataFrame

    在之前的教程中 我们讨论了locproperty 一种基于标签的数据选择方法 但是您是否知道在使用 loc 处理多级索引时可以优化您的选择 本教程将揭示在 Pandas 中使用 loc 和 MultiIndex DataFrame 的强大功
  • Python图像处理教程(使用OpenCV)

    在本教程中 您将学习如何使用 OpenCV 库在 Python 中处理图像 OpenCV 是一个用于实时图像处理的免费开源库 它用于处理图像 视频甚至直播 但在本教程中 我们将仅将处理图像作为第一步 在开始之前 我们先安装 OpenCV 目
  • 安装和配置 Linux LDAP 服务器

    两天前 一位网站访问者在网站上搜索 LDAP 但没有找到任何结果 这促使我发一篇有关 LDAP 服务器的帖子 因此我们填补了空白 将喜爱的内容带给访问者 目录 hide 1 什么是LDAP 2 LDAP 的用途 3 LDAP 服务器实施
  • Python 海象运算符(Python 3.8 赋值表达式)

    Python 海象运算符 正式名称为赋值表达式运算符 是在 Python 3 8 中引入的 它由冒号后跟等号表示 Python 社区将其称为 海象运算符 因为它类似于海象的一双眼睛和獠牙 目录 hide 1 对海象操作员的需求 2 Walr
  • 15 个用于网络诊断的 Linux ping 命令示例

    感谢 Linux 我们可以使用许多促进网络管理和诊断的工具 从这个意义上说 Linux ping 命令是系统管理员和网络管理员最有用的工具之一 它的基本功能是确定网络中的一台主机是否可达 然而 在这篇文章中 我们将讨论 Linux Ping