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


10

我正在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?还是它正在尝试失败并且再次尝试?我如何停止它?


4
是的,它可以成功ping通。您可以使用Ctrl-C停止它。
Faheem Mitha

7
类Unix ping不会像windows默认情况下那样停止。
吉尔斯·奎诺

@sputnick是的,这让我感到困惑
bernie2436

在我的答案中查看如何控制它!
slm

Answers:


17

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。

第八栏

此列显示执行ping需要多长时间(以毫秒为单位)。这将是如下所示的列:time=1.13 ms

其他列是很容易解释的。

Ping版本

ping在各种Unix中,不同的命令实现方式不同。因此,您需要注意版本。

$ ping -V
ping utility, iputils-sss20100418

我使用的是Fedora 14 Linux系统。


1

slm的答案很好,但是如果您只是想快速检查主机是否还活着(并且可以访问并响应ping),则可以使用fping代替ping。它对主机执行ping操作,并等待一小段时间以做出响应。 fping的退出代码报告成功或失败。

例如

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

cas @ ganesh:〜$ fping durga 
从203.xx.xxx.1发送到durga的ICMP Echo无法到达ICMP主机(203.xx.xxx.14)
从203.xx.xxx.1发送到durga的ICMP Echo无法到达ICMP主机(203.xx.xxx.14)
从203.xx.xxx.1发送到durga的ICMP Echo无法到达ICMP主机(203.xx.xxx.14)
从203.xx.xxx.1发送到durga的ICMP Echo无法到达ICMP主机(203.xx.xxx.14)
杜尔加(Durga)无法到达
cas @ ganesh:〜$ echo $?
1个

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

cas@ganesh:~$ fping durga 2>/dev/null 
durga is unreachable
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.