Linux Ping 命令:7 个实际示例 您所在的位置:网站首页 游戏数据包大小怎么调 Linux Ping 命令:7 个实际示例

Linux Ping 命令:7 个实际示例

2024-07-15 01:23| 来源: 网络整理| 查看: 265

Linux Ping 命令:7 个实际示例

以下是 Linux 中 ping 命令的一些最常见用法及其解释。

Ping 是 Linux 和其他操作系统中最常用的网络命令之一。

Ping 主要用于检查远程主机是否可达。远程主机可以是 Web 服务器、路由器或本地网络上的系统。

ping 是如何工作的?它实际上向远程主机发送小 ICMP 数据包并等待响应。如果主机已启动,您应该会看到响应。

这就像潜艇中使用的声纳技术。潜艇发送音频信号脉冲并等待回声返回。

那么,如何在 Linux 中使用 Ping 呢?有哪些不同的 Ping 命令选项?让我向您展示 Ping 命令的一些常见用法。

💡你可知道? Ping 命令正确地写作 PING,它代表 Packet Internet Groper。在 Linux 中使用 ping 命令

大多数 Linux 发行版都附带此命令。但它可能无法在容器中使用。要在 Ubuntu 或其他此类系统上安装 Ping,您必须安装 iputils-ping 软件包。

一旦您的系统上可用,您就可以使用带有 IP 地址或主机名/URL 的 ping 命令。

假设我 ping Google。它将向 google.com 发送大小为 56 字节的 ICMP 数据包。

ping google.com PING google.com (108.177.122.102) 56(84) bytes of data. 64 bytes from 108.177.122.102 (108.177.122.102): icmp_seq=1 ttl=42 time=325 ms 64 bytes from 108.177.122.102 (108.177.122.102): icmp_seq=2 ttl=42 time=387 ms 64 bytes from 108.177.122.102 (108.177.122.102): icmp_seq=3 ttl=42 time=319 ms 64 bytes from 108.177.122.102 (108.177.122.102): icmp_seq=4 ttl=42 time=321 ms ^C --- google.com ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3002ms rtt min/avg/max/mdev = 319.697/338.496/387.785/28.527 ms

您必须手动停止 ping 命令,否则它会继续运行。您可以使用 Ctrl+C 终端快捷方式在 Linux 中停止 ping 命令,就像我在上面的示例中所做的那样。

当您停止 ping 命令时,它会向您显示传输摘要。您可以查看传输的 ICMP 数据包数量、接收的数据包数量、丢失的数据包数量等统计信息。

现在您已经知道如何在 Linux 中进行 ping 操作,让我们看看其他一些 ping 命令选项。

只发送N个数据包

如果您不希望 ping 命令永远运行而不手动停止它,可以使用 -c 选项。

这样,您可以指定 ping 命令在自动停止之前应发送的数据包数量。

ping -c 2 104.248.179.115 PING 104.248.179.115 (104.248.179.115) 56(84) bytes of data. 64 bytes from 104.248.179.115: icmp_seq=1 ttl=50 time=315 ms 64 bytes from 104.248.179.115: icmp_seq=2 ttl=50 time=423 ms --- 104.248.179.115 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1000ms rtt min/avg/max/mdev = 315.208/369.190/423.172/53.982 ms仅在有限时间内发送 ping

除了设置发送数据包的数量外,您还可以设置发送数据包的时间。

例如,如果您只想发送 5 秒的 ping 数据包,您可以这样使用:

ping -w 5 google.com PING google.com (64.233.177.138) 56(84) bytes of data. 64 bytes from yx-in-f138.1e100.net (64.233.177.138): icmp_seq=1 ttl=40 time=407 ms 64 bytes from yx-in-f138.1e100.net (64.233.177.138): icmp_seq=2 ttl=40 time=320 ms 64 bytes from yx-in-f138.1e100.net (64.233.177.138): icmp_seq=3 ttl=40 time=323 ms 64 bytes from yx-in-f138.1e100.net (64.233.177.138): icmp_seq=4 ttl=40 time=472 ms 64 bytes from yx-in-f138.1e100.net (64.233.177.138): icmp_seq=5 ttl=40 time=406 ms --- google.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4002ms rtt min/avg/max/mdev = 320.634/385.993/472.056/57.309 ms更改两次 ping 之间的时间间隔

默认情况下,Ping 发送数据包的时间间隔为一秒。您可以使用 -i 选项更改此时间间隔。

要以 3 秒的间隔发送 ICMP 数据包,可以使用 Ping 命令,如下所示:

ping -i 3 31.13.90.36

您也可以缩短 ping 之间的时间间隔。

ping -i 0.5 31.13.90.36

但是,如果您尝试将时间间隔减少到 0.2 秒(200 毫秒)以下,您将看到错误:

ping -i 0.1 31.13.90.36 PING 31.13.90.36 (31.13.90.36) 56(84) bytes of data. ping: cannot flood; minimal interval allowed for user is 200ms

不用担心。您仍然可以以小于 200 毫秒的间隔进行 ping 操作。但要做到这一点,您需要使用 root 权限进行 ping。

sudo ping -i 0.1 31.13.90.36 PING 31.13.90.36 (31.13.90.36) 56(84) bytes of data. 64 bytes from 31.13.90.36: icmp_seq=1 ttl=49 time=470 ms 64 bytes from 31.13.90.36: icmp_seq=2 ttl=49 time=372 ms💡您可以通过 ping 来找到网关 IP 地址,如下所示:ping _gateway更改数据包大小

Ping 发送的默认 ICMP 数据包大小为 56 字节。这也可以借助 -s 命令进行更改。

ping -s 100 31.13.90.36 PING 31.13.90.36 (31.13.90.36) 100(128) bytes of data. 108 bytes from 31.13.90.36: icmp_seq=1 ttl=49 time=234 ms 108 bytes from 31.13.90.36: icmp_seq=2 ttl=49 time=257 ms 108 bytes from 31.13.90.36: icmp_seq=3 ttl=49 time=280 ms ^C --- 31.13.90.36 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2002ms rtt min/avg/max/mdev = 234.208/257.352/280.424/18.867 ms使用 Ping 洪水的 DoS 攻击,又名 Ping of Death

最简单的 DoS 攻击之一是 Ping of Death。在这种攻击中,攻击者会在很短的时间内发送大量的 ping 请求。如果服务器配置不当,它在处理 ping 请求时会崩溃,网站也会瘫痪。

ping 命令有内置的“功能”。这称为 ping 泛洪,可以通过 -f 选项来实现。您需要 sudo 权限才能以零间隔运行此选项。

sudo ping -f google.com PING google.com (108.177.122.101) 56(84) bytes of data. …………………..^C --- google.com ping statistics --- 1436 packets transmitted, 1413 received, 1% packet loss, time 22837ms rtt min/avg/max/mdev = 313.887/326.102/388.178/7.464 ms, pipe 26, ipg/ewma 15.914/323.456 ms

当您运行此命令时,您将看到一些点在输出中出现和消失。每个“.”表示一个请求,而回复是一个退格键(这就是点消失的原因)。

此洪水 ping 选项在测试服务器的负载能力时非常有用。

📄您不能使用此命令来 ping 特定端口。为此,您必须使用 nmap 等其他工具。额外提示:发送声音 ping

您可以使用 -a 选项发送声音 ping。这样,每次成功 ping 时您都会听到一声蜂鸣声。

ping -a google.com

请注意,并非所有 Linux 发行版都配置为发出蜂鸣声。我在 Ubuntu 18.04 上测试了它,我可以听到蜂鸣声。

Ping 命令故障排除

到目前为止我们看到的都是 ping 命令的成功示例。但这种情况不会一直发生。让我们看看您可能会看到的一些常见错误并了解这些错误的原因。

ping 没有回复

您可能会注意到某些主机不回复 ping 请求。 ping 命令似乎已挂起,因为没有响应。该命令只是停留在那里,甚至不会超时。

如果终止 ping 命令,您会看到一些奇怪的统计数据。

ping intel.com PING intel.com (13.91.95.74) 56(84) bytes of data. ^C --- intel.com ping statistics --- 100 packets transmitted, 0 received, 100% packet loss, time 101362m

如您所见,传输了 100 个数据包,但没有收到任何响应。

这很可能是因为某些服务器丢弃了 ICMP 数据包。这是避免 ping 泛洪的安全措施。

目标主机不可达

出现此错误可能是由于以下两个原因之一:

本地系统没有到远程主机的路由

或者端点路由器没有到远程主机的路由

如果您只看到“目标主机无法访问”错误,则意味着您的系统无法找到到远程主机的路由。

另一方面,如果您在回复的“Reply from ”部分看到错误,则意味着数据包已发送到您的网络之外,但无法到达目的地。

有时,服务器还会阻止可能显示此错误的 ICMP 流量。

请求超时

此错误意味着数据包已到达远程服务器,但回复无法到达您的系统。该问题可能是数据包丢失或路由错误。

准备好 Ping 了吗?

我希望本教程可以帮助您更好地理解 Linux ping 命令。

如果您有疑问或建议,请在评论区留言。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有