ping komutu: Linux ping seçenekleri ve 100% packet loss kontrolü
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ı
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.comPING 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 msDebian 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=1 | Gönderilen paketin sıra numarası |
| ttl=58 | Dönen yanıt paketinde kalan TTL — geçtiği her yönlendiricide 1 azalır |
| time=1.46 ms | O paketin gidiş-dönüş süresi |
| 4 packets transmitted, 4 received, 0% packet loss | Gö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/mdev | Gidiş-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.comPING 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 msKurulu ping sürümünü -V ile kontrol edersiniz. Debian 12 sunucusunda iputils 20221126, AlmaLinux 9 sunucusunda iputils 20210202 vardı.
ping -Vping from iputils 20221126
libcap: yes, IDN: yes, NLS: no, error.h: yes, getrandom(): yes, __fpending(): yesping -Vping from iputils 202102022️⃣ ping sayı ve aralık seçenekleri
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.comPING 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 msAralığı 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.comPING 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.comPING 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 ms3️⃣ ping paket boyutu ve IPv6 seçenekleri
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.comPING 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 ms1028, 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.comPING 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 1001msTTL 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.comPING (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 msAlmaLinux 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.comping: connect: Network is unreachable🔲 ping komutu seçenekleri
📌 Başlıca seçenekler: bu yazıda çalıştırılan sonuçlar
| Seçenek | Görev | Bu yazıdaki sonuç | |
|---|---|---|---|
| -c sayı | Gönderilecek sayıyı belirler, o kadar gönderdikten sonra biter | Debian 12 sunucusunda -c 4 ile dört gönderim, dört yanıt, gidiş-dönüş 1,28-1,46 ms | |
| -i aralık | Paket 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üre | Gö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üre | Hiç 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 | |
| -q | Yanıt satırları olmadan yalnızca ilk satırı ve sondaki istatistiği yazdırır | Dört paket gönderildikten sonra yalnızca ilk satır ve istatistik satırı kaldı | |
| -s boyut | Gönderilen veri boyutu (bayt), varsayılan 56 | -s 1000 ile ilk satırda 1000(1028) bytes, yanıt satırlarında 1008 bytes | |
| -t TTL | Gönderilen paketin TTL değeri | -t 3 ile üçüncü yönlendirici iki seferde de [Time to live exceeded] döndürdü | |
| -4 | Yalnızca IPv4 adreslerine gönderir | AlmaLinux 9 sunucusunda IPv6 yerine IPv4 adresine gönderdi; ad alanı boş çıktı | |
| -6 | Yalnızca IPv6 adreslerine gönderir | Varsayılan IPv6 rotası olmayan Debian 12 sunucusunda [connect: Network is unreachable] | |
| -D | Her yanıt satırının başına Unix zamanını (saniye.mikrosaniye) ekler | Yanıt satırlarının başında [1793227536.574201] gibi bir zaman damgası görünür | |
| -V | Sürüm bilgisini yazdırır | Debian 12'de iputils 20221126, AlmaLinux 9'da iputils 20210202 |
📎 Diğer seçenekler: resmî kılavuza göre
| Seçenek | Görev | |
|---|---|---|
| -n | Adresleri ada çözmeden yalnızca sayı olarak yazdırır | |
| -I arayüz | Gönderilecek arayüzü ya da kaynak adresi belirler | |
| -A | Gönderme aralığını gidiş-dönüş süresine göre kendisi ayarlar; root değilse en kısa aralık 200 ms | |
| -f | Yanı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 do | Path MTU Discovery yöntemini belirler; do parçalanmayı engeller (want ve dont da kabul edilir) | |
| -p desen | Gönderilen paketi dolduracak bayt deseni, en fazla 16 bayt | |
| -O | Bir sonraki paket gönderilmeden önce yanıt gelmeyen istekleri bildirir; -D ile birlikte kayıt tutarken kullanılır | |
| -R | Geçilen yolu kaydeder (yalnızca IPv4; birçok ana makine bu seçeneği yok sayar) | |
| -b | Yayın (broadcast) adresine göndermeye izin verir | |
| -a | Her 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.
4️⃣ ping yanıt alamıyor
[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.1PING 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 1024msHiç 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
0ping 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.comPING amazon.com (98.82.161.185) 56(84) bytes of data.
--- amazon.com ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 1002mscurl -sI https://amazon.com/ | head -1HTTP/1.1 301 Moved PermanentlyICMP'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.invalidping: no-such-host.invalid: Name or service not knownBu 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 loss | Gönderilen paketlere hiç yanıt gelmedi | Web hizmeti için curl, güvenlik duvarı için ICMP izin kuralı |
| Name or service not known | Ad IP adresine çözülemedi | nslookup ile DNS yanıtı |
| connect: Network is unreachable | O adres türü için çıkış rotası yok | -4 ile IPv4 adresine göndermek |
| Time to live exceeded | TTL aradaki bir yönlendiricide 0 oldu | -t değerini artırmak ya da kaldırıp yeniden göndermek |
🔢 SSS & önerilen içerikler
Ağ · Ayarlar
[Linux] ip komutu: ağ arayüzlerini ve ayarlarını yönetme
Sunucunun ağ arayüzlerini, IP adreslerini ve yönlendirme ayarlarını kontrol edip yöneten ip komutu.
Ağ · DNS
Linux host komutu | DNS sorgulama komutu
Bir ana makine adına karşılık gelen IP adresini bulan ya da IP adresini ana makine adına çeviren host komutu.
Bağlantı · aktarım
SSH komutu: seçenekler ve kullanım
Uzak bir sunucuya şifreli bağlantıyla bağlanıp komut çalıştıran SSH komutunun seçenekleri ve kullanımı.
ℹ️ 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.