ping komutu: Linux ping seçenekleri ve 100% packet loss kontrolü

Test ortamıRHEL ailesiAlmaLinux 9.8iputils 20210202root hesabıDebian 12 · iputils 20221126 normal hesap
Ağ komutlarıpingKonum/usr/bin/ping2026-11-04 tarihinde kontrol edildi

Linux sunucudan karşı sunucuya paketlerin ulaşıp ulaşmadığını ve gidiş-dönüş süresini ping komutuyla kontrol edersiniz. AlmaLinux 9 ve Debian 12 sunucularından -c ile sayı belirlenerek example.com adresine gönderildiğinde gidiş-dönüş süresi 1-3 ms oldu; ICMP'yi engelleyen bir sunucu ise web isteklerine yanıt verdiği hâlde ping sonucunda 100% packet loss gösterdi.

Aşağıdaki çıktılar bir AlmaLinux 9.8 sunucusunda (root hesabı) ve bir Debian 12 sunucusunda (normal hesap) çalıştırılan sonuçlardır. Tüm ping komutları gönderilecek sayı -c ile belirlenerek çalıştırıldı. Aradaki yönlendiricilerin özel IP adresleri örnek değerlerle değiştirildi; example.com gibi herkese açık alan adlarından çözülen adresler olduğu gibi bırakıldı.

1️⃣ ping komutunun kullanımı

  • ↪️ Çıktı satırlarını okumak

ping karşı sunucuya bir ICMP yankı isteği gönderir ve yankı yanıtının dönmesi için geçen süreyi satır satır yazdırır. Linux'ta ping, -c ile sayı belirlenmezse Ctrl+C ile durdurulana kadar göndermeye devam eder (resmî kılavuza göre); bu yüzden en baştan -c 4 gibi bir sayı ekleyerek çalıştırın.

ping -c 4 example.com
PING example.com (172.66.147.243) 56(84) bytes of data.
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=1 ttl=58 time=1.46 ms
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=2 ttl=58 time=1.30 ms
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=3 ttl=58 time=1.28 ms
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=4 ttl=58 time=1.30 ms

--- example.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 1.279/1.336/1.464/0.074 ms

Debian 12 sunucusundan example.com adresine dört kez gönderildiğinde dördüne de yanıt geldi ve gidiş-dönüş süresi 1,28-1,46 ms oldu. Her satırda neyin görüldüğü aşağıdadır.

ÇıktıGösterdiği
PING example.com (172.66.147.243) 56(84) bytes of data.Adın çözülmesiyle elde edilen adres ve gönderilen boyut — 56 bayt veriye 20 baytlık IP başlığı ve 8 baytlık ICMP başlığı eklenince 84 bayt
64 bytes from …Dönen yanıtın boyutu (56 bayt veri + 8 baytlık ICMP başlığı)
icmp_seq=1Gönderilen paketin sıra numarası
ttl=58Dönen yanıt paketinde kalan TTL — geçtiği her yönlendiricide 1 azalır
time=1.46 msO paketin gidiş-dönüş süresi
4 packets transmitted, 4 received, 0% packet lossGönderilen sayı, alınan sayı ve yanıt alınamayan oran
time 3003msİlk paket gönderildikten bitene kadar geçen süre
rtt min/avg/max/mdevGidiş-dönüş süresinin en küçük, ortalama ve en büyük değeri ile dağılımı (mdev)

mdev, gidiş-dönüş sürelerinin ortalamadan ne kadar saptığını gösteren değerdir; resmî kılavuz bu değer büyüdükçe gidiş-dönüş sürelerinin daha düzensiz olduğunu açıklar. Dört yanıtın da 1,5 ms altında kaldığı bu sonuçta mdev 0,074 ms oldu.

Aynı komut AlmaLinux 9 sunucusunda çalıştırıldığında ping example.com'un IPv6 adresine gönderdi ve ilk satırda 84 olmadan yalnızca 56 data bytes göründü.

ping -c 4 example.com
PING example.com(2606:4700:10::ac42:93f3 (2606:4700:10::ac42:93f3)) 56 data bytes
64 bytes from 2606:4700:10::ac42:93f3 (2606:4700:10::ac42:93f3): icmp_seq=1 ttl=51 time=2.20 ms
64 bytes from 2606:4700:10::ac42:93f3 (2606:4700:10::ac42:93f3): icmp_seq=2 ttl=54 time=2.30 ms
64 bytes from 2606:4700:10::ac42:93f3 (2606:4700:10::ac42:93f3): icmp_seq=3 ttl=51 time=2.55 ms
64 bytes from 2606:4700:10::ac42:93f3 (2606:4700:10::ac42:93f3): icmp_seq=4 ttl=54 time=2.26 ms

--- example.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 2.203/2.326/2.547/0.131 ms

Kurulu ping sürümünü -V ile kontrol edersiniz. Debian 12 sunucusunda iputils 20221126, AlmaLinux 9 sunucusunda iputils 20210202 vardı.

ping -V
ping from iputils 20221126
libcap: yes, IDN: yes, NLS: no, error.h: yes, getrandom(): yes, __fpending(): yes
ping -V
ping from iputils 20210202

2️⃣ ping sayı ve aralık seçenekleri

  • ↪️ -c, -i, -w, -W, -q

ping seçeneklerinden -c gönderilecek sayı, -i gönderme aralığıdır (saniye). Varsayılan aralık 1 saniyedir; -i 0.5 eklenince dört paketi göndermek için geçen süre 3003 ms'den 1502 ms'ye indi.

ping -c 4 -i 0.5 example.com
PING example.com (172.66.147.243) 56(84) bytes of data.
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=1 ttl=58 time=1.26 ms
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=2 ttl=58 time=1.31 ms
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=3 ttl=58 time=1.37 ms
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=4 ttl=58 time=1.44 ms

--- example.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 1502ms
rtt min/avg/max/mdev = 1.264/1.343/1.436/0.065 ms

Aralığı 0,2 saniyeden kısaya indirmeyi AlmaLinux 9 sunucusundaki iputils 20210202 kılavuzuna göre yalnızca root yapabilir; Debian 12 sunucusundaki iputils 20221126 kılavuzu ise bu sınırı 2 ms olarak yazar. Kısa aralıklar karşı sunucuya ve ağa yük bindirebilir.

-w, gönderilen sayıdan bağımsız olarak ping'in tamamen biteceği süredir (saniye). -c ile birlikte kullanılınca belirlenen sayıda yanıt alındığında ya da -w süresi dolduğunda biter. -c 10 -w 3 ile çalıştırılınca 3 saniye dolup yalnızca üç paket gönderilerek bitti.

ping -c 10 -w 3 example.com
PING example.com (172.66.147.243) 56(84) bytes of data.
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=1 ttl=58 time=1.34 ms
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=2 ttl=58 time=1.27 ms
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=3 ttl=58 time=1.34 ms

--- example.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 1.272/1.318/1.342/0.032 ms

Üç yanıtın hepsi alındı ama belirlenen 10'a ulaşılamadığı için ping'in çıkış kodu 1 oldu. Resmî kılavuz da -c ile -w birlikte kullanıldığında belirlenen sayıda yanıt alınamazsa 1 ile bittiğini açıklar.

-W, tek bir yanıtın beklendiği süredir (saniye). Resmî kılavuza göre bu değer yalnızca hiç yanıt gelmediğinde uygulanır; yanıt veren bir hedefte gidiş-dönüş süresinin iki katı kadar beklenir.

Sonuç satırları olmadan yalnızca özeti görmek için -q eklenir. Dört paket gönderilince yalnızca ilk satır ve sondaki istatistik satırları kaldı.

ping -c 4 -q example.com
PING example.com (104.20.23.154) 56(84) bytes of data.

--- example.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 1.551/1.649/1.715/0.060 ms

3️⃣ ping paket boyutu ve IPv6 seçenekleri

  • ↪️ -s, -t, -4, -6

Gönderilen veri boyutu -s ile değiştirilir. -s 1000 eklenince ilk satır 1000(1028) bytes, yanıt satırları 1008 bytes oldu.

ping -c 2 -s 1000 example.com
PING example.com (172.66.147.243) 1000(1028) bytes of data.
1008 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=1 ttl=58 time=1.21 ms
1008 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=2 ttl=58 time=1.31 ms

--- example.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 1.214/1.262/1.311/0.048 ms

1028, 1000 bayt veriye 20 baytlık IP başlığı ile 8 baytlık ICMP başlığının eklendiği boyuttur; 1008 ise veriye yalnızca ICMP başlığının eklendiği boyuttur. Gidiş-dönüş süresi 1,21-1,31 ms oldu; varsayılan boyutla (56 bayt) gönderildiğindekinden pek farklı değildi.

-t, gönderilen paketin TTL değerini belirler. TTL her yönlendiricide 1 azalır; 0 olunca o yönlendirici paketi atar ve [Time to live exceeded] döndürür.

ping -c 2 -t 3 example.com
PING example.com (172.66.147.243) 56(84) bytes of data.
From 192.0.2.103 (192.0.2.103) icmp_seq=1 Time to live exceeded
From 192.0.2.103 (192.0.2.103) icmp_seq=2 Time to live exceeded

--- example.com ping statistics ---
2 packets transmitted, 0 received, +2 errors, 100% packet loss, time 1001ms

TTL 3'e indirilince üçüncü yönlendirici iki seferde de [Time to live exceeded] döndürdü. TTL 1'den başlayarak birer birer artırıldığında example.com'dan ilk yanıt 8'de geldi.

-4 ve -6, gönderilecek adres türünü IPv4 ya da IPv6 olarak sınırlar. AlmaLinux 9 sunucusu seçenek olmadan da example.com'un IPv6 adresine gönderdiği için IPv4 adresine göndermek üzere -4 eklendi.

ping -4 -c 4 example.com
PING  (172.66.147.243) 56(84) bytes of data.
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=1 ttl=54 time=2.64 ms
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=2 ttl=54 time=2.55 ms
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=3 ttl=54 time=2.57 ms
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=4 ttl=54 time=2.58 ms

---  ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 2.553/2.585/2.642/0.033 ms

AlmaLinux 9 sunucusundaki iputils 20210202'de -4 eklenince ilk satırdaki ve istatistik satırındaki ad alanı boş çıktı. Aynı komut Debian 12 sunucusundaki iputils 20221126'da çalıştırıldığında example.com olduğu gibi göründü.

Varsayılan IPv6 rotası olmayan Debian 12 sunucusunda -6 eklenince yanıt satırı olmadan hemen [connect: Network is unreachable] ile bitti.

ping -6 -c 2 example.com
ping: connect: Network is unreachable

🔲 ping komutu seçenekleri

📌 Başlıca seçenekler: bu yazıda çalıştırılan sonuçlar

SeçenekGörevBu yazıdaki sonuç
-c sayıGönderilecek sayıyı belirler, o kadar gönderdikten sonra biterDebian 12 sunucusunda -c 4 ile dört gönderim, dört yanıt, gidiş-dönüş 1,28-1,46 ms
-i aralıkPaket gönderme aralığı (saniye), varsayılan 1 saniye-i 0.5 ile dört paketi göndermek için geçen süre 3003 ms'den 1502 ms'ye indi
-w süreGönderilen sayıdan bağımsız olarak ping'in tamamen biteceği süre (saniye)-c 10 -w 3, 3 saniye sonra yalnızca üç paket gönderip çıkış kodu 1 ile bitti
-W süreHiç yanıt gelmediğinde tek bir yanıtın beklendiği süre (saniye)192.0.2.1 adresine -W 1 ile iki kez: [100% packet loss], çıkış kodu 1
-qYanıt satırları olmadan yalnızca ilk satırı ve sondaki istatistiği yazdırırDört paket gönderildikten sonra yalnızca ilk satır ve istatistik satırı kaldı
-s boyutGönderilen veri boyutu (bayt), varsayılan 56-s 1000 ile ilk satırda 1000(1028) bytes, yanıt satırlarında 1008 bytes
-t TTLGönderilen paketin TTL değeri-t 3 ile üçüncü yönlendirici iki seferde de [Time to live exceeded] döndürdü
-4Yalnızca IPv4 adreslerine gönderirAlmaLinux 9 sunucusunda IPv6 yerine IPv4 adresine gönderdi; ad alanı boş çıktı
-6Yalnızca IPv6 adreslerine gönderirVarsayılan IPv6 rotası olmayan Debian 12 sunucusunda [connect: Network is unreachable]
-DHer yanıt satırının başına Unix zamanını (saniye.mikrosaniye) eklerYanıt satırlarının başında [1793227536.574201] gibi bir zaman damgası görünür
-VSürüm bilgisini yazdırırDebian 12'de iputils 20221126, AlmaLinux 9'da iputils 20210202

📎 Diğer seçenekler: resmî kılavuza göre

SeçenekGörev
-nAdresleri ada çözmeden yalnızca sayı olarak yazdırır
-I arayüzGönderilecek arayüzü ya da kaynak adresi belirler
-AGönderme aralığını gidiş-dönüş süresine göre kendisi ayarlar; root değilse en kısa aralık 200 ms
-fYanıt beklemeden hızlı gönderen flood ping; 0 aralığı yalnızca root içindir
-l sayıYanıt beklemeden önceden gönderilecek paket sayısı; 3'ten fazlası yalnızca root içindir
-M doPath MTU Discovery yöntemini belirler; do parçalanmayı engeller (want ve dont da kabul edilir)
-p desenGönderilen paketi dolduracak bayt deseni, en fazla 16 bayt
-OBir sonraki paket gönderilmeden önce yanıt gelmeyen istekleri bildirir; -D ile birlikte kayıt tutarken kullanılır
-RGeçilen yolu kaydeder (yalnızca IPv4; birçok ana makine bu seçeneği yok sayar)
-bYayın (broadcast) adresine göndermeye izin verir
-aHer yanıt geldiğinde ses çıkarır

🔲 ping komutu simülatörü

Aşağıdaki simülatörde sayı ve aralık, paket boyutu ve yanıt vermeyen bir adrese gönderme sonuçlarını kendiniz yazarak deneyebilirsiniz.

ping komutu simülatörüiputils 20221126
[root@server work]#
Yalnızca tarayıcı içinde çalışır ve gerçek paket göndermez. ↑↓ ile daha önce yazdığınız komutları geri çağırabilirsiniz.

4️⃣ ping yanıt alamıyor

  • ↪️ 100% packet loss ve ad çözümleme hatası

[100% packet loss], gönderilen paketlere hiç yanıt gelmediği anlamına gelir. Belgeler için ayrılmış 192.0.2.1 adresine -W 1 ile iki kez gönderilince yanıt satırı olmadan yalnızca istatistik çıktı.

ping -c 2 -W 1 192.0.2.1
PING 192.0.2.1 (192.0.2.1) 56(84) bytes of data.

--- 192.0.2.1 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 1024ms

Hiç yanıt gelmediğinde ping'in çıkış kodu 1, yanıt alındığında 0 oldu. Betiklerde karşı sunucunun yanıt verip vermediğini kontrol ederken bu değer kullanılır.

ping -c 2 -W 1 192.0.2.1 > /dev/null; echo $?; ping -c 1 example.com > /dev/null; echo $?
1
0

ping yalnızca ICMP'yi kontrol ettiği için ICMP'yi engelleyen bir sunucu web isteklerine yanıt verirken ping'e yanıt vermeyebilir. Debian 12 sunucusundan amazon.com adresine iki kez gönderilince [100% packet loss] çıktı; aynı adrese curl ile web isteği gönderilince 301 yanıtı döndü.

ping -c 2 -W 1 amazon.com
PING amazon.com (98.82.161.185) 56(84) bytes of data.

--- amazon.com ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 1002ms
curl -sI https://amazon.com/ | head -1
HTTP/1.1 301 Moved Permanently

ICMP'yi engelleyen bir sunucu, kapı zilini sökmüş bir dükkâna benzer.

Bulut sunucularında ping'e yanıt alınabilmesi için güvenlik duvarı kurallarında ICMP'ye izin vermek gerekebilir. Oracle Cloud VM örneği, genel alt ağın güvenlik listesinde ICMP türü 8 yapıldıktan sonra ping'e yanıt verdi.

Ad IP adresine çözülemezse ilk satır olmadan hemen [Name or service not known] ile biter ve çıkış kodu 2 oldu. .invalid hiçbir yerde çözülmeyecek şekilde ayrılmış bir ad olduğu için bu hatayı kontrol etmekte kullanıldı.

ping -c 1 no-such-host.invalid
ping: no-such-host.invalid: Name or service not known

Bu hata gerçek bir alan adında çıkarsa nslookup komutu ile DNS sunucusunun o ada bir adres döndürüp döndürmediğini kontrol edin. Yanıt gelmediğinde çıkan dört çıktı ve sonra kontrol edilecekler aşağıdadır.

ÇıktıAnlamıSonra kontrol edilecek
100% packet lossGönderilen paketlere hiç yanıt gelmediWeb hizmeti için curl, güvenlik duvarı için ICMP izin kuralı
Name or service not knownAd IP adresine çözülemedinslookup ile DNS yanıtı
connect: Network is unreachableO adres türü için çıkış rotası yok-4 ile IPv4 adresine göndermek
Time to live exceededTTL aradaki bir yönlendiricide 0 oldu-t değerini artırmak ya da kaldırıp yeniden göndermek

🔢 SSS & önerilen içerikler

Debian 12 sunucusunda normal hesapla çalıştırıldığında da sudo olmadan yanıt alındı. Bu sunucudaki /usr/bin/ping dosyasında cap_net_raw yetkisi (capability) bulunduğu için root olmadan da ICMP paketi gönderebildi.

Kontrol edilen iki sunucuda ping, AlmaLinux 9'da iputils paketinin, Debian 12'de iputils-ping paketinin kurduğu komuttu. Bu yüzden RHEL ailesinde [sudo dnf install iputils], Debian ailesinde [sudo apt install iputils-ping] ile kurulur.

-D eklenince her yanıt satırının başına Unix zamanı (saniye.mikrosaniye) eklenir. Debian 12 sunucusundan example.com adresine iki kez gönderilince yanıt satırlarının başına [1793227536.574201] gibi bir zaman kaydedildi.

ℹ️ Satış ortaklığı bildirimi
Bu sitenin içeriklerinde satış ortaklığı bağlantıları bulunur. Bir ziyaretçi bu bağlantılar üzerinden ürün veya hizmet satın alırsa bu site satıcıdan komisyon alır. Bu süreçte alıcının ödediği tutar (kampanya indirimlerinde tutar düşer↓) artmaz. Yayımlanan fiyat, indirim ve stok bilgileri yazının yazıldığı zamana aittir ve gerçek durumdan farklı olabilir; bu yüzden satın almadan önce son bilgiyi satıcıdan kontrol etmenizi rica ederiz. Ürünler kendi ölçütlerimize göre seçilir ve değerlendirilir; komisyon alınıp alınmaması tanıtım sırasını veya değerlendirme içeriğini etkilemez.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

İnsan olduğunuzu kanıtlayın: 4   +   9   =