Díky Linuxu, máme přístup k mnoha nástroje, které usnadňují vytváření sítí správa & diagnostika. V tomto smyslu je příkaz Linux ping jedním z nejužitečnějších nástrojů pro sysadmins a správce sítě.

jeho základní funkcí je určit, zda je jeden hostitel sítě dosažitelný nebo ne. V tomto příspěvku se však budeme zabývat dalšími pokročilejšími schopnostmi příkazu Linux Ping.

obsah

jaké je použití příkazu ping?,

příkaz ping je jedním z nejzákladnějších nástrojů pro práci se sítěmi. Jeho účelem je diagnostikovat chyby síťového připojení.

tímto způsobem je možné zjistit, zda síťový uzel ztratil připojení. Na druhé straně, to je také užitečné provádět další diagnostické úkoly, jako je následující:

  • Změřte čas potřebný dvěma uzly v síti komunikovat.
  • budeme také schopni identifikovat IP adresu konkrétního hostitele. Tuto funkci můžeme použít jak na internetu, tak v soukromé síti.,
  • příkaz ping lze použít ve skriptu bash k provádění automatických kontrol pomocí síťových uzlů.
  • umožňuje zjistit, zda existuje spojení se specifickým zařízením.

Jak vidíte, je to nezbytný příkaz pro správu sítí a serverů.

jak funguje příkaz ping?

v Linuxu je fungování příkazu ping poměrně jednoduché vysvětlit. Příkaz odešle řadu malých paketů do konkrétního uzlu.

tento uzel můžete otestovat pomocí adresy IP nebo názvu hostitele., Poté po odeslání paketu příkaz ověří a změří čas potřebný k přijetí odpovědi z cílového uzlu.

jak můžete očekávat, doba odezvy může být ovlivněna podmínkami, jako je zeměpisná poloha mezi spojovacími body nebo jakýmkoli kusem hardwaru použitého mezi oběma uzly.

například, v pevné privátní sítě, příkaz, bude mít lepší časy, než u sítě s více směrovače nebo mosty.

informace, které příkaz vygeneruje, však posoudí, zda je síť v dobrém nebo špatném stavu.,

syntaxe příkazu je následující:

ping 

Některé z nejvíce užitečné a použít možnosti příkazu ping jsou následující:

  • -c: S touto volbou můžete určit, kolik paketů k odeslání.
  • – s: tato volba umožňuje změnit výchozí velikost paketů.
  • – v: upovídaný režim.
  • – w: určuje dobu v sekundách, po které bude příkaz ukončen. Bez ohledu na to, kolik paketů příkaz odeslal nebo přijal.
  • – i: pomocí této možnosti můžete zadat síťové rozhraní, které chcete použít.,

cílový uzel lze zadat pomocí IP adresy nebo názvu hostitele.

mohu ping s proxy?

proxy je server nebo aplikace, která funguje jako prostředník pro spojení mezi dvěma body v síti. Je to muž uprostřed, který podává žádost přímo do jiného uzlu.

problém je v tom, že příkaz Ping vyžaduje přímé síťové připojení mezi uzly.

příkaz Ping proto obecně nemůže fungovat správně,pokud je za ním proxy.

možným řešením je, že mnoho webových stránek nabízí příkazovou službu Ping., Na druhé straně je pro některé úkoly příkazu ping možné použít příkaz curl. Také můžete použít VPN tak, aby skryla vaši IP.

v některých distribucích Linuxu však tento příkaz není ve výchozím nastavení nainstalován. Nejprve jej ověřte a poté jej nainstalujte, pokud není nainstalován.

ping IPv6 protocol

normálně při použití příkazu Ping používáme IP adresy s protokolem IPv4. S příchodem protokolu IPv6 je však stále častější zaznamenávat adresy v tomto formátu.

Linuxové jádro podporuje protokol IPv6 od verze 2.,2, takže všechny distribuce Linuxu ji v současné době podporují.

Základní syntaxe je následující:

$ ping -6 2001:4860:4860::8888

u starých verzí byl příkaz ping6. V nedávných verzích Linuxu již ping6 neexistuje a jeho funkce byla sloučena do pingu a funguje stejným způsobem, jak jste viděli.

základní syntaxe je následující:

ping6 

S volbou-c, můžeme určit počet paketů k odeslání a s -i pro síťové rozhraní, které budete používat., Například:

ping6 2001:4860:4860::8888

Ping konkrétní port

Někdy chceme vědět, jestli konkrétní port na uzlu je aktivní. Příkaz ping však tuto funkci neposkytuje, ale je možné to provést příkazem telnet, který je ve výchozím nastavení nainstalován v systému Linux.

K tomu, stačí použít následující syntaxi:

telnet 
telnet google.com 80

tímto způsobem je možné ping konkrétní port sítě uzlu v primitivním způsobem.,

Ping s časem

přestože příkaz ping zobrazuje užitečné informace, může to být trochu jednoduché. Je však možné trochu upravit operaci příkazu, aby se zobrazilo datum odeslání paketu.

díky tomu mohou být informace příjemné pro oko a mohou být užitečné pro skripty a protokoly.

tato syntaxe je dostatečná k tomu. Musíte však nainstalovat balíček ccze.

ping | xargs -n1 -i bash -c 'echo `date +%F\ %T`" {}"' | ccze

jak vidíte, ukazuje čas pro každý odeslaný paket.,

Ping všechny hostitele na dané podsíti

můžete poslat ping signál všem hostitelům v síti nebo podsíti. Za tímto účelem stačí přidat možnost-b a ping vysílací IP adresu jakékoli sítě, která končí 255.

například:

ping -b -c 4 192.168.1.255

je-li cíl nedosažitelný, možná, že blokovat ICMP pakety odeslané pomocí příkazu ping, nebo možná tam je problém sítě nebo problém na směrovací tabulky.

jak ukončit ping?,

ve výchozím nastavení příkaz ping na Linuxu nepřetržitě odesílá testovací pakety hostitelům. Jakmile jsou však informace k dispozici, je nutné ukončit provedení příkazu ping.

K tomu, jednoduše stiskněte následující klávesy:

CTRL + C

Tímto způsobem, bude příkaz okamžitě zastavit práci.

konec po určitém počtu

můžete omezit počet paketů na 10 nebo cokoli jiného. Po dokončení odesílání deseti paketů se zastaví.,

ping -c 10 

kde se příkaz ping nachází na Linuxu?

v unixovém systému, jako je Linux, se binárky běžně nacházejí v cestě:

/usr/bin/

v tomto adresáři najdete mnoho binárních souborů, které používáme jako příkazy na terminálu. V jiných operačních systémech rodiny Linux je také možné jej umístit do adresáře

/usr/sbin/

.,

Takže, můžeme zkontrolovat pomocí příkazu ls:

$ ls /usr/bin | grep ping

Na tomto obrázku můžete vidět, že ping příkazy jsou umístěny v

/usr/bin/

Další způsob, můžete použít ten, který příkaz najít libovolný příkaz na Linux:

$ which ping

To vám ukáže následující:

/usr/bin/ping

Zkontrolujte, zda latence pomocí příkazu ping

Jedna z možností, které nabízí příkaz ping je, že můžete měřit připojení odezvy. To je latence.,

K měření latencí pomocí příkazu ping, použijte ho a dávejte pozor na obrazovku výstup:

ping -c 4 ping -c 4 192.168.1.1

Jak můžete vidět, čtyři pakety byly odeslány na místo určení s určitou dobou odezvy.

V dolní části, tam je řádek, který začíná takto:

rtt min/avg/max/mdev

druhá hodnota po znaménko rovná se je latence hodnotu. V tomto případě je hodnota 6,798.,

s latencí je možné určit hostitele, kteří mají konektivitu nižší než ostatní. Tímto způsobem budeme schopni přijmout příslušná opatření.

najděte ideální MTU

MTU (maximální přenosová jednotka) je hodnota, která staticky vyjadřuje velikost v bajtech největší datové jednotky, kterou lze odeslat přes síť.

V současné době kvůli bezpečnostním opatřením stále více sítí brání MTU v práci. Většina místních sítí Ethernet však používá 1500 bajtů MTU.,

Pokud chcete najít ideální hodnotu MTU pomocí příkazu ping, nastavte počáteční hodnoty a snižte, dokud nedojde k žádné chybě. Pokud hodnota je příliš vysoká, budeme mít další chyba:

ping: local error: Message too long

, použijte následující syntaxi:

ping -M do -s 

například:

ping -M do -s 1473 192.168.1.1

V tomto případě, hodnota velikost balení je velmi velký. Takže to snížím. V tomto případě je optimální hodnota 1472.,

Pokud dostanete další zprávu, musí být počáteční hodnota snížena jeden po druhém, dokud nedosáhnete požadovaného výsledku.

Pokud je známa hodnota MTU, může být použita ke zlepšení chování sítě, zejména pokud se jedná o velkou nebo dokonce metropolitní síť.

Ping na vrstvě 2 (pomocí arpingu)

pomocí příkazu ping budeme moci provádět testy s vědomím IP adresy konkrétního uzlu v síti. Je to proto, že příkaz ping pracuje na vrstvě 3 modelu OSI (síť).,

Na druhé straně je možné použít jiný příkaz, který je zabudován do Linuxu jako arping. Tento příkaz funguje velmi podobně jako ping, ale pracuje na vrstvě 2 modelu OSI.

syntaxe příkazu je následující:

$ sudo arping 
$ sudo arping 192.168.1.1

dostanete výsledek, jako je tento:

Na obrazovce výstup příkazu zobrazí první velikosti odesílaného paketu a MAC adresu uzlu a doba odezvy.

Všimněte si, že tento příkaz není ve výchozím nastavení nainstalován na Debian Linux a deriváty., Takže ji musíte nainstalovat, pak ji můžete spustit jako root.

ping a hostname

příkaz ping ve výchozím nastavení odešle testovací pakety do cíle pomocí adresy IP nebo názvu hostitele cíle. Je třeba také poznamenat, že většina implementací ping na Linuxu nevyřeší DNS v opačném směru.

Pokud například použijete příkaz Ping přidáním adresy IP, vrátí na výstupu pouze IP adresu hostitele. Naopak, pokud jsme zadali název hostitele, vyřeší to a zobrazí IP na výstupu.,

Zkontrolujte, zda výstup následující příkaz:

$ ping google.com

Ping route (pomocí traceroute)

příkaz ping neukáže cestu od zdroje k dosažení cíle.

a to může být docela užitečné v případě, že spojení s hostitelem bylo ztraceno, protože můžeme pochopit, v jakém okamžiku bylo spojení ztraceno.

příkaz tracert nebo traceroute funguje velmi podobně jako příkaz ping. Výhodou je, že ukazuje cestu, kterou paket vede, a ukazuje tak jeho trasu.,

jako příkaz ping je nainstalován ve většině distribucí Linuxu. Základní syntaxe je následující:

traceroute 

tímto způsobem, můžeme vidět trasa, kterou pakety, které užíváte.

spustit příkaz, pokud ping selže

Předpokládejme, že chcete být upozorněni, když příkaz ping selže. Chcete-li to provést, musíte začlenit příkaz ping do skriptu bash pro nastavení požadovaného stavu.,

například, tento skript umožňuje zkontrolovat, pokud příkaz ping příkaz se nezdaří.

#! /bin/bashping -c 1 If ; then #Your_command_hereFi

Nastavit velikost paketu ping

výchozí velikost pakety odeslané pomocí příkazu ping na hostitele, je 56 bajtů. Je to dostatečně nízká hodnota, která neovlivňuje provoz sítě.

je však možné jej změnit na jinou hodnotu. Chcete-li to provést, jednoduše přidejte možnost-s s požadovanou velikostí paketu.,

například:

ping -s hostname/IP

Pokud chcete velikost paketu být 100 bajtů, stačí použít následující příkaz:

ping -s 100 192.168.1.1

Pamatujte si, že to může mírně lišit podle MTU.

zakažte příkaz ping

Pokud jsme zodpovědní za udržování sítě, možná budeme chtít kdykoli zakázat odpovědi ping. Můžeme to udělat dočasně nebo trvale, podle našich potřeb.,

chceme-Li deaktivovat dočasně, to je dost, aby použít tento příkaz jako uživatel root:

$ su$ echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all

Tento bude zakázat příkaz ping odezvy, ale pouze do restartu systému.

Pokud chcete, aby to trvale, musíte upravit následující soubor

/etc/sysctl.conf

přidejte následující řádek:

$ nano /etc/sysctl.conf
net.ipv4.icmp_echo_ignore_all=1

uložte soubor a ukončete., Chcete-li použít změny, použijte tento příkaz:

$ sysctl -p

Tento bude zakázat příkaz ping nebo ICMP pakety reakci.

závěr

v tomto příspěvku jsme podrobně vysvětlili, jak příkaz ping funguje na Linuxu. Od jeho nástroje až po jeho deaktivaci. Ping je jedním z nejjednodušších příkazů k použití.

díky tomu osoba odpovědná za provoz sítě ví, kde je problém, aby mohla podniknout kroky.

doufám, že vám příspěvek bude užitečný. Vrať se.

Děkuji.,

Zakladatel LikeGeeks. Od roku 2010 pracuji jako správce systému Linux. Jsem zodpovědný za údržbu, zabezpečení a odstraňování problémů s linuxovými servery pro více klientů po celém světě. Miluji psaní skriptů shell a Python pro automatizaci mé práce.