Başarısız ping nasıl gösterilir?


24

Windows ping kullanırken, başarısız pings gösterecektir. Ubuntu'nun benzer bir işlevi var mı?

Başarısız olan ping, ağda hata ayıklama yaparken oldukça kullanışlıdır. Bunu nasıl çözersiniz? Ben sadece basit bir çözüm istiyorum, uzun bir senaryo almak istemiyorum.


2
Soruyu tamamlamak için örnek bir çıktı veya ekran görüntüsü verebilir misiniz?
yeşil

1
Şundan daha mı ayrıntılı bilgi 5 packets transmitted, 0 received, 100% packet loss, time 4032msmi arıyorsunuz? Her bir ping için ayrı veri mi arıyorsunuz?
Eliah Kagan,

1
Linux muhteşem ve burada hepimiz birçok nedenden dolayı seviyorum ama ... hey bazen Windows doğru ve Linux yanlış yaptı. Evet, temel CLI araçlarında bile. Evet, temel ağ iletişimi CLI araçlarında bile! İşler ters gittiğinde ekranda mesaj almak için kolay bir yol yoksa, o zaman "eksik bir özellik" olarak kabul etmeliyiz. Kesinlikle öyle bir şey olduğunu iddia etmek istemiyoruz, OP'nin sorduğu şeyin tam olarak ne olduğunu bulamıyoruz (özellikle de çevremizdeki birkaç milyon kutuda varsayılan olarak açık olan bir özellik olduğunda).
ndemou

Bu özelliğin daha önce linux ping'de bulunduğuna yemin edebilirdim. MacOS'ta da var (unix üzerine inşa edilmiştir). Bu benim ötesinde neden orada olmamalıydı. Aralıklı çalışan ve karartmaların uzunluğunu bulmak için, çizgileri net bir şekilde belirginleştirmek yerine, atlamayı arayan çıktıyı elemek için gereken bir hattım var.
Silvio Levy,

Yanıtlar:


26

Doğru cevap: " başarısız ping başarısız " diye bir şey yoktur . ("Hedef ulaşılamıyor" gibi başarısızlık yanıtları her zaman yazdırılır, hiçbir yanıt vermekten farklıdır.)

Ping programı, alınan her cevabı yazdırır; yemek yapan kişi bu özel ping'in kaybolduğuna karar verse bile. Sıra dışı cevaplar almak tamamen mümkündür.

: Hatta Android telefonumda, stok ping programı bu 2 seçenekleri destekler
-D her mesajı önce baskılar bir zaman damgası
-O cevap sürede alınmazsa bir ileti yazdırır ve az ya da çok istendi budur .
Ancak, bu seçeneklerin her yerde desteklenmediği görülüyor (örneğin, Debian Wheezy bildiğim kadarıyla yoksun, Jessie de olsa. Onları busybox pingdesteklemiyor).

İşte almayı başardığım bir örnek çıktı (önemsiz ping yanıtları atlandı):

u0_a93@NX505J:/ $ ping -D -O 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
[1440545014.805478] 64 bytes from 8.8.8.8: icmp_seq=1 ttl=244 time=116 ms
~~~~~~~~~~
[1440545142.995443] 64 bytes from 8.8.8.8: icmp_seq=129 ttl=244 time=110 ms
[1440545144.885601] no answer yet for icmp_seq=130
[1440545145.455485] 64 bytes from 8.8.8.8: icmp_seq=131 ttl=244 time=568 ms
[1440545145.455780] 64 bytes from 8.8.8.8: icmp_seq=130 ttl=244 time=1569 ms
[1440545146.005850] 64 bytes from 8.8.8.8: icmp_seq=132 ttl=244 time=119 ms
~~~~~~~~~~
[1440545254.055962] 64 bytes from 8.8.8.8: icmp_seq=240 ttl=244 time=115 ms
^C
--- 8.8.8.8 ping statistics ---
240 packets transmitted, 240 received, 0% packet loss, time 239250ms
rtt min/avg/max/mdev = 109.062/138.757/1569.620/101.608 ms, pipe 2

# 130'un ilk önce nasıl kaybolduğunu, sonra # 131'den sonra alındığını ve son olarak paket kaybının sıfır olduğunu rapor edin.


Windows hakkında ek not:

Windows'da, ping daha uzun cevap bekliyor gibi görünüyor ve daha sonra eksik olduğunu beyan ediyor ve sonra gelirse yoksayıyor.

Varsayılan olarak, aralık 1 saniyedir ve zaman aşımı süresi 4 saniyedir, bu nedenle:
Düşük RTT'de, ping'ler 1 saniye aralıklarla gönderilir.
RTT> 4'te, ping'ler 4 saniyelik aralıklarla (veya 5, emin değil) gönderilir ve sunucu yanıt vermediyse hepsi başarısız olarak bildirilir.


1
-OSeçenek için +1 , mevcut ve iputils-ping paketi sürüm 3: 20121221-4ubuntu1.1
Xen2050

11

EvgEnZh'in cevabından kısmen ayrılmak, ancak kendi versiyonum ile:

ping -O -q 8.8.8.8

Bu, bir cevap çok uzun sürdüğünde veya asla geri gelmediğinde ( -O) mesaj yazmasını sağlar ve geri geldiklerinde ( -q) gelen mesajları bastırır . Sonuç, yalnızca paketler kaybolduğunda çıktı almanızdır. Bu, zaman zaman ortaya çıkan sorunları bulmayı çok daha kolay hale getirebilir, böylelikle kırdığı birkaç yer için "işe yaradı" mesajlarını istemek zorunda kalmazsınız.


-O tetiklemesinin yalnızca gecikmenin beklenenden daha yüksek olduğu anlamına geldiğini unutmayın. Bu genellikle gerçek bir sorun olduğunu gösterir, ancak her zaman değil. Cevabımı gönderdiğim o günlük zayıf bir GPRS bağlantısıyla edinildi ve 2 dakikadan fazla bir süre içinde sadece sıra dışı cevap aldım, ancak "geç" olarak gelen birçok cevap vardı. Crappy bağlantı birkaç kez boğuldu, üst üste birkaç pingin kaybolduğunu bildirdi ve birkaç saniye sonra hepsi geldi. Bağlantı hala güvenilirdi (GPRS belki de dahili olarak yeniden iletimi gerçekleştirdi, bilmiyorum), SSH erişimi için bile kullanmak çok acı verici.
EvgEnZh

3

Belki ping -fsenin için uygundur. Ping kılavuzundan:

-f

Sel ping. Her ECHO_REQUEST için ''. '' Dönemi gönderilirken, ECHO_REPLY ise bir geri almayla yazdırıldı. Bu, kaç paketin bırakıldığını hızlıca gösterir. Aralık verilmezse, aralığı sıfıra ayarlar ve paketleri geri geldikleri kadar hızlı veya saniyede yüz kez, hangisi daha fazla olursa, çıktılar. Sadece süper kullanıcılar bu seçeneği sıfır aralıklarla kullanabilirler.

Her saniye 1 echo_request için bu gibi görünüyordu ping -i 1 -f 8.8.8.8


Bunun yeni bir özellik olup olmadığından emin değilim, başarısız pingleri görebiliyordum.
1986

Başarısız olan pingleri bildirmek için hangi seçeneği kullandınız? Başarısız bir ping için hangi mesajı alıyorsunuz?
Daniel Yuste Aroca

Sadece ping mesajı kullanılırken, $ ping 172.18.1.12 PING 172.18.1.12 (172.18.1.12) 56 (84) baytlık veri gibi. 172.18.1.224 tarihinden itibaren icmp_seq = 1 Ulaşılamaz Hedef Konak Ucu 172.18.1.224 tarihinden itibaren icmp_seq = 2 Ulaşılamaz Hedef Konak Ucu 172.18.1.224 tarihinden itibaren icmp_seq = 3 Varış Yeri Konak Ulaşılamaz
王子 1986

2
"Hedef Ev sahibi Ulaşılamaz" ping zaman aşımı ile aynı değil
ndemou

ping -f cevap değildir, çünkü kayıt bırakmaz. İhtiyaç duyulan şey, başarılı bir ping için bir tür ve başarısızlık için farklı bir durumdur; bu nedenle, derhal (hizmetin aralıklı olduğu bir durumda) ne sıklıkta ve kesintilerin ne kadar sürede olduğunu söyleyebiliriz.
Silvio Levy,

0

-V seçeneğinde bile, ping bunu yapmaz. Bu soruya bakınız . Ancak bu sizin için gerçekten önemliyse (veya eğlenceli ise), kaynağı indirebilir, kodu uygun bir baskı çağrısı eklemek için değiştirebilirsiniz. Bunun için iyi bir yer 'send_probe' yönteminin sonunda olur (12.10'daki satır 619) ...

İlk önce kaynağı alırsın

apt-get source iputils
cd iputils*

Düzenlemeler yap

gedit ping.c

Oluştur ve oluşturulan paketi yükle ...

apt-get install libsysfs-dev
dpkg-buildpackage

Bunu yapmak istiyorum (ve bu cevabı 10 kez daha fazla oyla) ama eksik bir şeyler olmalı. Ben sudo altında çalışıyorum. Ping.c'yi düzenledikten sonra "make" komutunu "deneyin" alırsam ölümcül hata: sys / capability.h: Böyle bir dosya yok ". Cevaptaki sonraki iki satırı takip edersem (apt-get install ve dpkg -...) Hata alamıyorum ama yürütülebilir dosyanın nereye yerleştirildiği hakkında hiçbir fikrim yok. Eski çalıştırılabilir (/ bin / ping) hala orada - zaman damgasından eski olduğunu ve farklı davranmadığını biliyorum.
Silvio Levy,

-1

Tüm cevaplar için teşekkürler. En son ubuntu ping pingin başarısız olduğunu gösterebilir gibi görünüyor.

Tekrar teşekkürler.


1
Hayır, (en az 2015-Jan tarihine kadar) "Hedef Ev sahibi Ulaşılamaz" ping zaman aşımı ile aynı değil
ndemou

Bu neden kabul edilen cevap? ping -O -q 8.8.8.8gitmenin yolu bu.
theV0ID
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.