GNU/Linux >> Znalost Linux >  >> Linux

Praktický příkaz Ping v Linuxu

Nepostradatelným nástrojem pro správu sítě je v Linuxu příkaz Ping. Možná jste použili ping dříve pro základní odstraňování problémů – ale co tento příkaz dělá?

Nejste čtenář? Podívejte se na tento související video tutoriál! Nevidíte video? Ujistěte se, že máte vypnutý blokovač reklam.

ping příkaz odešle požadavky protokolu ICMP (Internet Control Message Protocol) vzdáleným nebo místním hostitelům a čeká na odpověď. Žádná odpověď nemůže znamenat problém s připojením nebo samotnými hostiteli.

Čtěte dále a prozkoumejte praktické způsoby použití příkazu ping v Linuxu!

Předpoklady

Tento tutoriál bude praktickou ukázkou. Pokud chcete pokračovat, ujistěte se, že máte počítač s Linuxem a připojením k internetu. Tento tutoriál používá počítač Ubuntu 20.04.

Také se ujistěte, že jste již na svém počítači se systémem Linux otevřeli terminálovou relaci.

Kontrola připojení k místní síti

Představte si, že vyvíjíte webovou aplikaci. Test se nezdaří, když se pokusíte o přístup k aplikaci přes adresu zpětné smyčky hostitele (127.0.0.1). Než si vytrhnete vlasy z odstraňování problémů s aplikací, ujistěte se, že protokol TCP/IP funguje interně pomocí ping příkaz.

Výchozí adresy zpětné smyčky jsou 127.0.0.1 a 0:0:0:0:0:0:0:1 (nebo ::1) pro IPv4 a IPv6.

Chcete-li zkontrolovat připojení adresy zpětné smyčky, spusťte níže ping příkaz následovaný adresou zpětné smyčky na terminálu. Tento příkaz ukazuje nejzákladnější použití ping příkaz v Linuxu.

ping 127.0.0.1

A pokud zpětná smyčka funguje dobře, měli byste vidět podobný výstup jako na snímku obrazovky níže.

Případně ping na localhost název hostitele by měl dávat stejný výsledek, protože se ve výchozím nastavení překládá na adresu zpětné smyčky.

Chcete-li ukončit ping stiskněte CTRL+C na terminálu. V opačném případě bude příkaz ping běžet nepřetržitě.

Poznámka:Příkaz ping nezastavujte stisknutím kláves CTRL+Z. Pokud tak učiníte, příkaz se zastaví, ale proces zůstane spuštěný na pozadí.

Porozumění výstupu příkazu Ping Linux

Než půjdete dál, bylo by pro vás výhodné porozumět výstupu explicitně, místo abyste jej pouze interpretovali jako „funguje to“. Podívejte se na obrázek níže a na následující rozpis hodnot.

  • A (bytes ) – Zobrazuje velikost požadavku (paketu) echo ICMP v bajtech.
  • B (from ) – Zobrazuje IP adresu cílového hostitele from kde ping příkaz obdrží odpověď.
  • C (icmp_seq ) – Označuje pořadí přenosu paketů. Jak vidíte, ping odesílá požadavky ICMP postupně. Hodnota ukazuje icmp_seq=N , kde N je číslo objednávky.
  • D (TTL ) – Zobrazuje hodnotu Time-To-Live (TTL) požadavku ICMP. Výchozí hodnota je 64, což znamená, že požadavek může trvat maximálně 64 skoků a jeho platnost vyprší poté. Maximální možná hodnota je 255.
  • E (time ) – Celková doba (v milisekundách), po které požadavek dosáhl cíle a zakroužkoval zpět ke zdroji. Tato hodnota je také známá jako RTT (Round Trip Time). Všimněte si, že time hodnoty jsou v tomto příkladu menší než 0,1 milisekundy, protože cílem je stejný počítač. time hodnota se přirozeně zvýší, když ping cíle jsou vzdálené nebo mají internetovou adresu.
  • F (statistics ) – Zobrazuje souhrn a statistiku ping výsledky příkazů. Souhrn ukazuje počet odeslaných a přijatých paketů, procento ztráty paketů a celkový čas. Spodní řádek zobrazuje minimum, průměr (střední hodnotu), maximum a směrodatnou odchylku celkového RTT.

Vynucení verze internetového protokolu

Příkaz ping standardně používá IPv4. Co když ale testujete kompatibilitu své aplikace s IPv6? Chcete-li vynutit, aby příkaz ping používal IPv6, musíte do příkazu ping v Linuxu zadat volbu -6, jak můžete vidět v kódu níže.

ping -6 localhost

Jak můžete vidět níže, odpověď od ukazuje, že odpověď přišla z adresy zpětné smyčky IPv6 (::1).

Namísto volby -6 volba -4 nutí ping používat IPv4. Ale protože ping je výchozí na IPv4, obvykle nemusíte zadávat volbu -4.

Omezení počtu odpovědí

V předchozích příkladech jste museli stisknout CTRL+C k ukončení příkazu ping, protože jinak by běžel nepřetržitě.

Volba -c vám umožňuje zadat počet odpovědí, které příkaz ping obdrží, než se zastaví. Proč využít tuto možnost? V některých případech možná budete chtít otestovat, jak váš systém reaguje na 10, 100, 1000 ICMP paketů atd.

Spusťte následující příkaz k odeslání pěti ICMP paketů cílovému hostiteli. Nahraďte 5 počtem odpovědí ICMP, které chcete před zastavením přijmout.

ping -c 5 localhost

Jak můžete vidět níže, příkaz ping se zastavil po pátém požadavku (icmd_seq=5) a k jeho ukončení jste nemuseli stisknout CTRL+C.

Úprava intervalu požadavků

Předpokládejme, že chcete otestovat síťové připojení mezi dvěma zařízeními a jedno z nich má nízkou šířku pásma. V tomto případě můžete prodloužit interval mezi jednotlivými požadavky, aby druhé zařízení mělo dostatek času na zpracování aktuálního paketu ICMP.

ping příkaz odešle následující požadavek ICMP ve výchozím nastavení jednu sekundu po dokončení předchozího. Chcete-li upravit zpoždění, musíte zadat -i následovaná hodnotou zpoždění v sekundách.

Spusťte například níže uvedený ping příkaz k odeslání pěti požadavků ICMP s dvousekundovým intervalem mezi požadavky.

ping -c 5 -i 2 localhost

Další příklad, spusťte níže uvedený ping příkaz k odeslání pěti požadavků ICMP s půlsekundovým intervalem mezi jednotlivými požadavky.

ping -c 5 -i 0.5 localhost

Porovnání výsledků obou příkazů s různými intervaly ukazuje rozdíl mezi celkem time hodnoty.

Simulace záplavového útoku

Záplava pingem je typ útoku DoS (Denial of Service), při kterém se útočník pokouší přemoci cílené zařízení pakety ICMP. Cílem útoku je přemoci cílový stroj, aby reagoval na tolik požadavků, že se stane přetíženým a nedostupným pro legitimní uživatele.

Můžete simulovat záplavový útok a otestovat, jak váš systém na útok reaguje. Nebojte se však. Simulace zaplavení pingem je řízena a můžete ji kdykoli zastavit stisknutím kláves CTRL+C.

Spusťte následující příkaz na místním počítači a zjistěte, kolik požadavků vaše zařízení zvládne za sekundu. -f volba znamená poslat několik ping paketů rychle a bez libovolného limitu.

Nahraďte localhost adresou IP nebo názvem hostitele aplikace, kterou chcete testovat. Tento příklad simuluje zaplavení příkazem ping pouze na místním hostiteli. Nechte příkaz ping běžet asi pět sekund a poté stiskněte CTRL+C ukončit.

Příkaz ping -f vyžaduje, abyste byli uživatelem root nebo měli oprávnění sudo.

ping -f localhost

Jak můžete vidět níže, příkaz ping dokázal odeslat a přijmout 124,685 ICMP pakety v rámci 4276 milisekundy s 0% ztráta paketů. Docela dobrý, co? Ale v případě použití v reálném životě uvidíte určitou ztrátu paketů. Ztráta paketů je nevyhnutelná, protože síť není dokonalá.

Kontrola připojení k internetu

Každý nějakým způsobem používá internet, že? Předpokládejme, že se pokoušíte načíst webovou stránku pomocí prohlížeče, ale doba načítání stránky je pomalá. Tento příznak by naznačoval, že překlad DNS funguje, ale něco ovlivňuje rychlost sítě.

Diagnostika problému bez nástrojů třetích stran by zahrnovala ping příkaz. Použití příkazu je stejné jako při testování připojení k místní síti. Ale místo cílení na adresu zpětné smyčky byste zadali veřejnou IP nebo webovou adresu.

Spusťte níže uvedený příkaz a otestujte externí veřejný web. Nahraďte adamtheautomator.com s jinou webovou adresou, jak si přejete.

ping -c 5 adamtheautomator.com

Hned na začátku si všimnete, že hodnota času je relativně vyšší, než když pingnete na localhost. Toto zvýšení stráveného času je způsobeno cílovou adresou adamtheautomator.com není ve stejném hostiteli a dokonce ani ve stejné síti.

V předchozích krocích byl váš příkaz ping úspěšný, ale při použití v reálném světě jsou chvíle, kdy příkaz ping z mnoha možných důvodů selže.

Níže jsou uvedeny některé běžné chyby a jak je odstranit.

  • Cílový hostitel je nedostupný – Tato chyba znamená, že neexistuje žádná cesta k cílovému hostiteli. K této chybě může dojít, pokud je hostitel nebo doména mimo provoz.
  • Časový limit požadavku vypršel – Tato chyba znamená, že požadavek na cílového hostitele trval příliš dlouho (trval přes 4 sekundy nebo 4000 milisekund) a vypršel časový limit připojení. K této chybě může dojít, pokud je cílový hostitel příliš zaneprázdněn, aby mohl reagovat, firewall blokuje připojení nebo vadný síťový hardware (kabel, router atd.).
  • Neznámý hostitel – Tato chyba znamená, že DNS nemůže přeložit název hostitele na IP adresu. Zkontrolujte, zda jste zadali správný název hostitele. Pokud máte podezření, že váš směrovač nepracuje správně, zkuste jej restartovat.
  • Platnost TTL v tranzitu vypršela – Tato chyba znamená, že platnost požadavku ICMP vypršela dříve, než dosáhl svého cíle. Váš paket ping se před dosažením cílového hostitele sníží na nulu (0). Ve většině případů může tuto chybu způsobit nesprávná konfigurace ve směrovací tabulce. Zvažte kontrolu tabulky trasy, abyste zjistili, zda se nevyskytuje problém.

Pro případ, že jste to nevěděli:Hráči označují ping jako své připojení k hernímu serveru v herní komunitě. Nízký ping znamená citlivější připojení, zejména v rychlých hrách. Vysoký ping označuje méně citlivé připojení a může způsobit, že hra bude pomalá.

Někteří poskytovatelé internetových služeb (ISP) vracejí při pokusu o připojení k neexistujícímu webu místo chybové zprávy vyhledávací stránku. Můžete získat falešně pozitivní výsledek, protože místo chyby dostáváte odpověď.

Uložení výstupu Ping do souboru

Většina příkazů, pokud ne všechny, vrací pouze výsledky na obrazovce a ping příkaz v Linuxu se neliší. Terminál Linux má vestavěné operátory přesměrování výstupu, které umožňují přesměrovat výstup do souboru.

Tyto operátory přesměrování jsou následující:

(> ) znak, který přepíše obsah souboru, a;

(>> ), který připojí výstup ke stávajícímu obsahu.

Ale proč byste chtěli uložit výsledky pingu do souboru? Primárně pro vedení záznamů a pozdější analýzu pomocí textového editoru nebo analyzátoru protokolů.

Můžete také použít tabulkový procesor k vytvoření grafu, který ukazuje, jak se čas pingu mění v průběhu času.

Spuštěním následujícího příkazu uložte výstup pingu do souboru. Tento příkaz zapíše veškerý standardní výstup z ping příkaz do souboru s názvem log.txt na disku.

ping -c 10 localhost > log.txt

Zatímco ping je spuštěn příkaz, všimnete si, že na obrazovce není žádný výstup.

Nyní otevřete log.txt soubor v textovém editoru, například nano . Nebo zobrazte obsah souboru spuštěním cat příkaz.

# Open in a text editor
nano log.txt
# OR
# Display the contents on the screen
cat log.txt

Závěr

V tomto tutoriálu jste se na různých praktických příkladech naučili používat příkaz ping Linux. Také jste se naučili, jak uložit výstup pingu do souboru na disku, abyste jej mohli později analyzovat.

V tomto okamžiku byste měli dobře rozumět tomu, jak příkaz ping funguje a jak může být užitečný. Než však odejdete a začnete pingovat vše, co je v dohledu, existuje několik pravidel, která musíte ve svých skupinách zabezpečení povolit, abyste povolili provoz ICMP.

Děkuji za přečtení a přeji příjemné učení!


Linux
  1. cp Command v Linuxu:7 praktických příkladů

  2. Linux Shutdown Command:5 praktických příkladů

  3. 5 Praktické příklady příkazu dd v Linuxu

  1. 10 Praktické příklady příkazů Linux nm

  2. 7 Příklady příkazů Linux df

  3. 8 Příklady příkazů Linux TR

  1. Příkaz Ping v Linuxu

  2. 5 Praktické příklady příkazu „cd“ v Linuxu

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