GNU/Linux >> Znalost Linux >  >> Linux

Linuxový příkaz Ping vysvětlený s příklady

Ping je jedním z nejběžněji používaných síťových příkazů v Linuxu a dalších operačních systémech.

Ping se používá hlavně ke kontrole, zda je vzdálený hostitel dosažitelný nebo ne. Vzdáleným hostitelem může být webový server, váš router nebo systém ve vaší místní síti.

Jak ping funguje? Ve skutečnosti odesílá malé ICMP pakety vzdálenému hostiteli a čeká na odpověď. Pokud je hostitel zapnutý, měli byste vidět odpověď.

Je to jako sonarová technologie používaná v ponorkách. Ponorky vysílají pulsy audio signálu a čekají, až se ozvěna vrátí.

Jak tedy používáte Ping v Linuxu? Jaké jsou různé možnosti příkazu Ping? Dovolte mi ukázat vám některá běžná použití příkazu Ping.

Věděli jste? Příkaz Ping je správně zapsán jako PING a znamená Packet Internet Groper.

Použití příkazu ping v Linuxu

Příkaz ping můžete použít buď s IP adresou, nebo s názvem hostitele/URL.

Předpokládejme, že pingnu na Google. Odešle pakety ICMP o velikosti 56 bajtů na google.com.

ping google.com
PING google.com (108.177.122.102) 56(84) bytes of data.
64 bytes from 108.177.122.102 (108.177.122.102): icmp_seq=1 ttl=42 time=325 ms
64 bytes from 108.177.122.102 (108.177.122.102): icmp_seq=2 ttl=42 time=387 ms
64 bytes from 108.177.122.102 (108.177.122.102): icmp_seq=3 ttl=42 time=319 ms
64 bytes from 108.177.122.102 (108.177.122.102): icmp_seq=4 ttl=42 time=321 ms
^C
--- google.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3002ms
rtt min/avg/max/mdev = 319.697/338.496/387.785/28.527 ms

Příkaz ping musíte ručně zastavit, jinak poběží dál. K zastavení příkazu ping v Linuxu můžete použít terminálovou zkratku Ctrl+C, jak jsem to udělal ve výše uvedeném příkladu.

Když zastavíte příkaz ping, zobrazí se vám souhrn přenosu. Můžete vidět statistiky, jako je počet přenesených paketů ICMP, přijatých paketů, ztracených paketů atd.

Nyní, když víte, jak ping v Linuxu, pojďme se podívat na některé další možnosti příkazu ping.

Posílat pouze N počet paketů

Pokud nechcete, aby příkaz ping běžel navždy, aniž byste jej ručně zastavili, můžete použít volbu -c.

Pomocí toho můžete určit počet paketů, které má příkaz ping odeslat, než se automaticky zastaví.

ping -c 2 104.248.179.115
 PING 104.248.179.115 (104.248.179.115) 56(84) bytes of data.
 64 bytes from 104.248.179.115: icmp_seq=1 ttl=50 time=315 ms
 64 bytes from 104.248.179.115: icmp_seq=2 ttl=50 time=423 ms
 --- 104.248.179.115 ping statistics ---
 2 packets transmitted, 2 received, 0% packet loss, time 1000ms
 rtt min/avg/max/mdev = 315.208/369.190/423.172/53.982 ms

Posílat ping pouze po omezenou dobu

Kromě nastavení počtu paketů k odeslání můžete také nastavit, jak dlouho budou pakety odesílány.

Pokud například chcete odesílat pakety ping pouze na 5 sekund, můžete to použít takto:

ping -w 5 google.com
 PING google.com (64.233.177.138) 56(84) bytes of data.
 64 bytes from yx-in-f138.1e100.net (64.233.177.138): icmp_seq=1 ttl=40 time=407 ms
 64 bytes from yx-in-f138.1e100.net (64.233.177.138): icmp_seq=2 ttl=40 time=320 ms
 64 bytes from yx-in-f138.1e100.net (64.233.177.138): icmp_seq=3 ttl=40 time=323 ms
 64 bytes from yx-in-f138.1e100.net (64.233.177.138): icmp_seq=4 ttl=40 time=472 ms
 64 bytes from yx-in-f138.1e100.net (64.233.177.138): icmp_seq=5 ttl=40 time=406 ms
 --- google.com ping statistics ---
 5 packets transmitted, 5 received, 0% packet loss, time 4002ms
 rtt min/avg/max/mdev = 320.634/385.993/472.056/57.309 ms

Změna časového intervalu mezi dvěma pingy

Ve výchozím nastavení ping odesílá pakety v intervalu jedné sekundy. Tento časový interval můžete změnit pomocí volby -i.

Chcete-li odeslat pakety ICMP s intervalem 3 sekund, můžete použít příkaz Ping takto:

ping -i 3 31.13.90.36

Můžete také zkrátit časový interval mezi pingy.

ping -i 0.5 31.13.90.36

Pokud se však pokusíte zkrátit časový interval pod 0,2 sekundy (200 ms), zobrazí se chyba:

ping -i 0.1 31.13.90.36
PING 31.13.90.36 (31.13.90.36) 56(84) bytes of data.
ping: cannot flood; minimal interval allowed for user is 200ms

nebojte se. Stále můžete pingnout s intervalem menším než 200 ms. K tomu však musíte použít příkaz ping s právy root.

sudo ping -i 0.1 31.13.90.36
PING 31.13.90.36 (31.13.90.36) 56(84) bytes of data.
64 bytes from 31.13.90.36: icmp_seq=1 ttl=49 time=470 ms
64 bytes from 31.13.90.36: icmp_seq=2 ttl=49 time=372 ms

Změňte velikost paketu

Výchozí velikost paketu ICMP odeslaného příkazem Ping je 56 bajtů. To lze také změnit pomocí příkazu -s.

ping -s 100 31.13.90.36
 PING 31.13.90.36 (31.13.90.36) 100(128) bytes of data.
 108 bytes from 31.13.90.36: icmp_seq=1 ttl=49 time=234 ms
 108 bytes from 31.13.90.36: icmp_seq=2 ttl=49 time=257 ms
 108 bytes from 31.13.90.36: icmp_seq=3 ttl=49 time=280 ms
 ^C
 --- 31.13.90.36 ping statistics ---
 3 packets transmitted, 3 received, 0% packet loss, time 2002ms
 rtt min/avg/max/mdev = 234.208/257.352/280.424/18.867 ms

Útok DoS se záplavou Ping alias Ping of Death

Jedním z nejjednodušších DoS útoků je Ping of Death. Při tomto druhu útoku útočník odešle velké množství požadavků ping ve velmi krátkém časovém úseku. Pokud server není dobře nakonfigurován, zhroutí se při zpracování požadavku ping a web přestane fungovat.

Příkaz ping má k tomu vestavěnou „funkci“. Říká se tomu ping flooding a lze toho dosáhnout pomocí volby -f. Ke spuštění této možnosti s nulovým intervalem budete potřebovat práva sudo.

sudo ping -f google.com 
 PING google.com (108.177.122.101) 56(84) bytes of data.
 …………………..^C    
 --- google.com ping statistics ---
 1436 packets transmitted, 1413 received, 1% packet loss, time 22837ms
 rtt min/avg/max/mdev = 313.887/326.102/388.178/7.464 ms, pipe 26, ipg/ewma 15.914/323.456 ms

Když spustíte tento příkaz, uvidíte ve výstupu nějaké tečky, které se objevují a mizí. Každé jednotlivé '.' označuje požadavek, zatímco odpověď je backspace (proto tečky mizí).

Tato možnost záplavového pingu je užitečná při testování kapacity zatížení serveru.

Bonusový tip:Odesílání zvukových pingů

Zvukové pingy můžete odesílat pomocí volby -a. Díky tomu uslyšíte pípnutí při každém úspěšném pingu.

ping -a google.com

Všimněte si, že ne všechny distribuce Linuxu jsou nakonfigurovány tak, aby vydávaly pípání. Testoval jsem to na Ubuntu 18.04 a slyšel jsem pípnutí.

Příkaz Ping pro odstraňování problémů

Zatím jsme viděli úspěšné příklady příkazu ping. Ale to se nestane pořád. Podívejme se na některé běžné chyby, které můžete vidět, a pochopte důvod těchto chyb.

Žádná odpověď na ping

Můžete si všimnout, že někteří hostitelé neodpovídají na požadavek ping. Zdá se, že příkaz ping zablokoval, protože neexistuje žádná odpověď. Příkaz tam prostě zůstane, dokonce ani nevyprší.

Pokud ukončíte příkaz ping, uvidíte podivné statistiky.

ping intel.com
PING intel.com (13.91.95.74) 56(84) bytes of data. 
 ^C
--- intel.com ping statistics ---
100 packets transmitted, 0 received, 100% packet loss, time 101362m

Jak vidíte, bylo přeneseno 100 paketů, ale na žádný z nich nebyla přijata odpověď.

Je to pravděpodobně proto, že některé servery zahazují pakety ICMP. Toto je bezpečnostní opatření, aby se zabránilo zahlcení pingem.

Cílový hostitel je nedostupný

K této chybě může dojít z jednoho ze dvou důvodů:

  • Buď místní systém nemá žádnou cestu ke vzdálenému hostiteli
  • nebo směrovač koncového bodu nemá žádnou cestu ke vzdálenému hostiteli

Pokud se zobrazí pouze chyba „cílový hostitel nedostupný“, znamená to, že váš systém nemohl najít cestu ke vzdálenému hostiteli.

Na druhou stranu, pokud vidíte chybu v části „Odpověď z “ odpovědi, znamená to, že paket byl odeslán mimo vaši síť, ale nemohl dosáhnout cíle.

Někdy servery také blokují provoz ICMP, který by mohl vykazovat tuto chybu.

Vypršel časový limit požadavku

Tato chyba znamená, že pakety dosáhly vzdáleného serveru, ale odpověď nemohla dosáhnout vašeho systému. Problémem mohou být ztracené pakety nebo chyba směrování.

Jste připraveni na ping?

Doufám, že vám tento tutoriál pomohl lépe porozumět příkazu ping pro Linux.

Pokud máte dotazy nebo návrhy, zanechte prosím zprávu v sekci komentářů.


Linux
  1. Příkaz nslookup Linux vysvětlený s příklady

  2. Příkaz Linux Traceroute, vysvětlený s příklady

  3. Příklady příkazů ping v Linuxu

  1. Výukový program příkazu Linux Ping s příklady

  2. Příkaz vypnutí Linuxu s příklady

  3. JQ Command v Linuxu s příklady

  1. wc Linux Command s příklady

  2. Linux cut Command Vysvětlení pomocí 6 příkladů

  3. Linux ip příkaz s příklady