我的 Ping 命令似乎从未完成。这是否意味着它正在成功?

我的 Ping 命令似乎从未完成。这是否意味着它正在成功?

我正在 ping 远程 IP。我对Ping命令知之甚少。当我 ping IP 时,它会一直持续下去...我没有使用-t 选项

Me$ ping 137.30.124.104
PING 137.30.124.104 (137.30.124.104): 56 data bytes
64 bytes from 137.30.124.104: icmp_seq=0 ttl=62 time=3.378 ms
64 bytes from 137.30.124.104: icmp_seq=1 ttl=62 time=3.825 ms
64 bytes from 137.30.124.104: icmp_seq=2 ttl=62 time=4.882 ms
64 bytes from 137.30.124.104: icmp_seq=3 ttl=62 time=1.822 ms
64 bytes from 137.30.124.104: icmp_seq=4 ttl=62 time=4.572 ms
....
64 bytes from 137.30.124.104: icmp_seq=290 ttl=62 time=3.273 ms

这是否意味着可以成功 ping 通 IP?或者说它正在尝试、失败并再次尝试?我怎样才能让它停止?

答案1

这就是 ping 命令的工作原理。您可以使用计数开关 来控制它-c

例子

$ ping -c 2 skinner
PING skinner.bubba.net (192.168.1.3) 56(84) bytes of data.
64 bytes from skinner.bubba.net (192.168.1.3): icmp_req=1 ttl=64 time=1.00 ms
64 bytes from skinner.bubba.net (192.168.1.3): icmp_req=2 ttl=64 time=1.13 ms

--- skinner.bubba.net ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 1.001/1.069/1.138/0.075 ms

产量细分

像这样的行意味着它已成功 ping 另一台主机:

64 bytes from skinner.bubba.net (192.168.1.3): icmp_req=2 ttl=64 time=1.13 ms

这些行显示了您的主机和您尝试 ping 的主机之间发生的每个“ping”的详细信息。

第六栏

包含该值的列icmp_req=2告诉您与哪个 ICMP 数据包有关。该ping命令生成网络数据包。有很多类型,您可能听说过 TCP 或 UDP 数据包。另一种类型是 ICMP。 ICMP 类似于手机网络中的 SMS。它的主要目的是通过网络进行命令和控制。

第七栏

有趣的第三列是TTL=64. TTL - “又名生存时间”,意味着数据包在超时之前最多只会穿过 64 个节点。因此,如果系统距离您的系统超过 64 个“跳”,您将无法 ping 通它,除非您增加 TTL。

第8栏

此列显示 ping 发生所需的时间(以毫秒为单位)。该列看起来像这样:time=1.13 ms

其他列是相当不言自明的。

Ping 版本

不同的ping命令在不同的 Unix 上的实现方式不同。所以需要注意版本。

$ ping -V
ping utility, iputils-sss20100418

我使用的是 Fedora 14 Linux 系统。

答案2

slm 的答案很好,但如果您只是想快速检查主机是否处于活动状态(并且可访问,并对 ping 做出响应),那么您可以使用fping而不是ping.它对主机执行 ping 操作,并等待一小段时间以获得响应。 fping的退出代码报告成功或失败。

例如

cas@ganesh:~$ fping kali
卡利还活着
cas@ganesh:~$ echo $?
0

cas@ganesh:~$ fping 杜尔加
对于发送到杜尔加 (203.xx.xxx.14) 的 ICMP 回显,无法从 203.xx.xxx.1 访问 ICMP 主机
对于发送到杜尔加 (203.xx.xxx.14) 的 ICMP 回显,无法从 203.xx.xxx.1 访问 ICMP 主机
对于发送到杜尔加 (203.xx.xxx.14) 的 ICMP 回显,无法从 203.xx.xxx.1 访问 ICMP 主机
对于发送到杜尔加 (203.xx.xxx.14) 的 ICMP 回显,无法从 203.xx.xxx.1 访问 ICMP 主机
杜尔加无法到达
cas@ganesh:~$ echo $?
1

可以通过将 stderr 重定向到 /dev/null 来丢弃“ICMP 主机无法访问”消息。例如:

cas@ganesh:~$ fping durga 2>/dev/null 
durga is unreachable

相关内容