Moje polecenie ping nie wydaje się nigdy kończyć. Czy to znaczy, że to suceeed?

10

Pinguję zdalny adres IP. Bardzo mało wiem o poleceniu Ping. Gdy wysyłam polecenie ping do adresu IP, działa ono dalej i dalej ... Nie używam opcji -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

Czy to oznacza, że ​​pomyślnie pinguje adres IP? A może próbuje, a kończy się niepowodzeniem? Jak mogę to zatrzymać?

bernie2436
źródło
4
Tak, pomyślnie pinguje. Możesz to zatrzymać za pomocą Ctrl-C.
Faheem Mitha
7
Domyślnie Unix-like pingsię nie kończy windows.
Gilles Quenot
@sputnick tak, to mnie dezorientowało
bernie2436,
Zobacz, jak możesz to kontrolować w mojej odpowiedzi!
slm

Odpowiedzi:

17

Tak działa polecenie ping. Można go kontrolować za pomocą przełącznika hrabio -c.

Przykład

$ 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

Podział produkcji

Linie takie jak ta oznaczają, że pomyślnie pinguje inny host:

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

Te wiersze pokazują szczegóły dotyczące każdego „pingowania”, gdy występuje on między hostem a hostem, którego próbujesz pingować.

6 kolumna

Kolumna zawierająca tę wartość icmp_req=2informuje, którego pakietu ICMP dotyczy. pingPolecenie produkuje pakiety sieciowe. Istnieje wiele typów, prawdopodobnie słyszałeś o pakietach TCP lub UDP. Innym typem jest ICMP. ICMP jest podobny do SMS-ów w sieciach komórkowych. Jego głównym celem jest sterowanie i kontrola sieci.

7 kolumna

Interesująca jest trzecia kolumna TTL=64. TTL - „aka. Czas do przeżycia” oznacza, że ​​pakiet przekroczy limit maksymalnie 64 węzłów, zanim upłynie limit czasu. Więc jeśli system znajduje się w odległości większej niż 64 „przeskoków” od twojego systemu, nie możesz go pingować, chyba że zwiększysz TTL.

8 kolumna

Ta kolumna pokazuje, jak długo trwało pingowanie (w milisekundach). Byłby to kolumna, która wygląda następująco: time=1.13 ms.

Pozostałe kolumny są dość oczywiste.

Wersje ping

Różne pingpolecenia są różnie implementowane w różnych Uniksach. Musisz więc zwrócić uwagę na wersję.

$ ping -V
ping utility, iputils-sss20100418

Jestem na systemie Linux Fedora 14.

slm
źródło
1

Odpowiedź SLM jest świetna, ale jeśli chcesz szybko sprawdzić, czy host żyje (i jest dostępny i odpowiada na ping), możesz użyć fpingzamiast ping. Pinguje hosta (hostów) i czeka przez krótki czas na odpowiedź. fpingKod wyjścia informuje o sukcesie lub niepowodzeniu.

na przykład

cas @ ganesh: ~ $ fping kali
Kali żyje
cas @ ganesh: ~ $ echo $?
0

cas @ ganesh: ~ $ fping durga 
Host ICMP nieosiągalny z 203.xx.xxx.1 dla ICMP Echo wysłany do durga (203.xx.xxx.14)
Host ICMP nieosiągalny z 203.xx.xxx.1 dla ICMP Echo wysłany do durga (203.xx.xxx.14)
Host ICMP nieosiągalny z 203.xx.xxx.1 dla ICMP Echo wysłany do durga (203.xx.xxx.14)
Host ICMP nieosiągalny z 203.xx.xxx.1 dla ICMP Echo wysłany do durga (203.xx.xxx.14)
durga jest nieosiągalna
cas @ ganesh: ~ $ echo $?
1

Komunikaty „ICMP Host Unreachable” można odrzucić, przekierowując stderr na / dev / null. Na przykład:

cas@ganesh:~$ fping durga 2>/dev/null 
durga is unreachable
cas
źródło