ping ping localhost 做什么?

Pab*_*osa 3 networking linux ping

当我工作时,我犯了一个错字,我确实执行了

ping ping localhost
Run Code Online (Sandbox Code Playgroud)

我得到了

PING localhost.localdomain (127.0.0.1) 56(124) bytes of data.
Run Code Online (Sandbox Code Playgroud)

100% 丢包率。显然,如果我输入

ping localhost
Run Code Online (Sandbox Code Playgroud)

输出

PING localhost.localdomain (127.0.0.1) 56(84) bytes of data.
Run Code Online (Sandbox Code Playgroud)

收到所有数据包。

我的问题是: ping ping localhost 到底是做什么的?如何解释参数?为什么丢包?

谢谢

txt*_*elp 5

如果您使用的man ping是您的版本,您会看到选项之一是hop选项 ( ping [hop ...] destination),这使您可以通过 ping 目标hop,如果您有多个网关并希望明确告知 ping 的路由,这将非常有用。

所以,ping ping localhost是要平localhost同时使用ping,因为它是hop。但真正的问题是为什么ping ping有效而不返回unknown host错误?应该注意的是,ping ping在 Windows 和 BSD 的一些变体上执行 a 会返回unknown host错误,但不是出于人们最初可能认为的原因。

如果我ping ping在我的系统上做一个,我会回来127.0.53.53,经过一番摸索,我找到了一个有助于解释这个结果的相关答案;简而言之,它与您使用的 DNS 服务器和 ICANN 的命名冲突框架有关,它返回127.0.53.53某些通用 TLD 的地址(ping显然是一个)。该ping实用程序的某些操作系统和版本可能会为您将 TLD(或您的本地域)附加到目的地,因此如果您这样做了ping ping,它实际上可以执行ping ping.comorping ping.localdomain并返回预期的结果(与给予相比127.0.53.53)。

这应该有助于解释为什么你会看到丢包ping ping localhost;您正在通过您localhost的 ping路由您的ping 您的localhost,如果您的系统没有设置为这样做(路由 ping 请求),它将失败并返回您看到的数据包丢失。

希望能有所帮助。