GNU/Linux >> Znalost Linux >  >> Linux

Diagnostikujte problémy s připojením pomocí příkazu Linux ping

Síťové počítače jsou v dnešní době tak běžné, že většina z nás považuje za samozřejmost, že počítač na jedné straně místnosti může kontaktovat počítač na druhé straně místnosti, natož na druhé straně světa. Když to funguje tak, jak bylo navrženo, je síť to, co umožňuje internet, cloud, sdílení souborů, streamování médií, vzdálenou správu, tisk a mnoho dalšího. Když se něco pokazí, může být někdy náročné diagnostikovat. Jedním z nejzákladnějších diagnostických nástrojů pro síťové připojení je ping příkaz.

Další zdroje pro Linux

  • Cheat pro příkazy Linuxu
  • Cheat sheet pro pokročilé příkazy systému Linux
  • Bezplatný online kurz:Technický přehled RHEL
  • Síťový cheat pro Linux
  • Cheat sheet SELinux
  • Cheat pro běžné příkazy pro Linux
  • Co jsou kontejnery systému Linux?
  • Naše nejnovější články o Linuxu

Základní ping

Když se nemůžete spojit s počítačem v místní síti nebo se serverem na internetu, můžete na něj pingnout. Ping odešle paket ICMP (Internet Control Message Protocol) na cílovou IP adresu. ICMP je ze své podstaty základní formát používaný většinou pro diagnostiku:je to v podstatě signál volání a odpovědi.

Existuje však příkaz k odstraňování problémů a začíná co nejblíže domova. Pokud si nejste jisti, nejprve odešlete příkaz ping svému vlastnímu počítači, abyste se ujistili, že používáte síťový zásobník. Počítač, který provozujete, se také nazývá váš místní hostitel a má přidělenou speciální IP adresu pro mluvení sama se sebou:12.0.0.1.

ping   příkaz rozumí localhost název hostitele, jeho IP adresu a zkratku pouze 0 .

Pomocí -c můžete ovládat, kolik signálů odešlete (jako v počet ) možnost.

$ ping 0 -c1
PING 0 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.069 ms

--- 0 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.069/0.069/0.069/0.000 ms

Poté, co se přesvědčíte, že váš zásobník lokální sítě je v provozu, můžete pingnout váš router. Adresa routeru obvykle začíná 192,168 nebo 10. Přesná IP adresa závisí na konfiguraci routeru.

Pokud neurčíte, kolik pingů se má odeslat, můžete ping zastavit od spuštění pomocí Ctrl +C .

$ ping 192.168.0.1 
PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
From 192.168.0.100: icmp_seq=2 Redirect Host(New nexthop: 192.168.0.1)
From 192.168.0.100: icmp_seq=3 Redirect Host(New nexthop: 192.168.0.1)
From 192.168.0.100: icmp_seq=4 Redirect Host(New nexthop: 192.168.0.1)
From 192.168.0.100: icmp_seq=5 Redirect Host(New nexthop: 192.168.0.1)
^C

Pokud se dostanete k routeru, znamená to, že vaše kabelové nebo bezdrátové připojení funguje.

Co ostatní hostitelé v mé síti? Můžete pingnout všechny druhy zařízení. Ne u všech je zaručena odpověď (některá zařízení zahazují pakety ICMP), ale mnoho ano. Například mohu pingnout svou tiskárnu:

$ ping 192.168.0.4 

Ping mimo vaši síť

Kromě ověření, že vaše vlastní síť funguje podle očekávání, můžete také pingnout do širšího světa za vaším routerem. Opět platí, že ne všechny servery mohou přijímat, natož odpovídat na ICMP. Existují však některé, které ano, a nezbytným serverem pro fungování internetu je jmenný server.

DNS server Google je relativně snadno zapamatovatelný a na ping odpovídá:

$ ping -c 2 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=116 time=53.3 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=116 time=53.5 ms

--- 8.8.8.8 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 53.304/53.424/53.544/0.120 ms

Když web zjevně zmizel, můžete být schopni prozkoumat celosvětovou síť DNS, abyste zjistili, jaká je adresa jeho hostitelského serveru, a poté tento server pingnout. To vám alespoň řekne, zda je hostitel mimo provoz, nebo zda jde pouze o problém webového serveru.

Řekněme například, že se neúspěšně pokoušíte dostat na example.com. Nejprve najděte IP adresu pomocí host příkaz:

$ host example.com
example.com has address 93.184.216.34
example.com has IPv6 address 2606:2800:220:1:248:1893:25c8:1946
example.com mail is handled by 0

A pak ping na hostitele webu podle IP:

$ ping 93.184.216.34 -c 1

Ping a IPv6

Ping funguje přes IPv4 i IPv6. Explicitní použití pouze jednoho z nich lze vynutit zadáním -4 nebo -6 .

Velikost paketu

Velikost paketů ICMP, které odesíláte, můžete změnit pomocí -s volba. Výchozí velikost paketu je 56, což v kombinaci s 8bajtovou hlavičkou znamená 64 datových bytů ICMP. Tento příkaz odešle 43 bajtů:

$ ping -s 35 -c 5 8.8.8.8

Pomocí -D můžete vytisknout časové razítko před každou zprávou ping ve vašem terminálu volba. To poskytuje UNIX epoch time plus mikrosekundy:

$ ping -D 8.8.8.8 
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
[1634013430.297468] 64 bytes from 8.8.8.8: icmp_seq=1 ttl=116 time=53.3 ms
[1634013431.298738] 64 bytes from 8.8.8.8: icmp_seq=2 ttl=116 time=53.1 ms

Doba pingu

Časový interval mezi pingy můžete změnit pomocí -i volba. Tím se interval pingu změní na dvě sekundy:

$ ping -i 2 

Ping můžete také zastavit po určité době (v sekundách) pomocí -w možnost:

$ ping -w 6

Varianty

Existuje mnoho implementací pingu. iputils balíček poskytuje ping příkaz, Busybox má ping a je tu jeden z BSD a dalších. Existuje dokonce i GUI pro ping :Gping je k dispozici pro Linux, macOS a Windows. Další informace naleznete pro gping na Github.

Naučte se používat ping

ping příkaz je jednoduchý, ale může to být očima a ušima na rozlehlé rozloze vaší sítě. Až budete mít příště problémy s připojením, nechte ping být prvním nástrojem, na který se obrátíte.


Linux
  1. Sledujte příkazy a úkoly pomocí příkazu watch v systému Linux

  2. Nahraďte chytré uvozovky příkazem sed pro Linux

  3. Zkontrolujte stav souboru v systému Linux pomocí příkazu stat

  1. Plánování úloh pomocí linuxového příkazu cron

  2. Naplánujte si úlohu pomocí příkazu Linux at

  3. Zvládněte příkaz Linux ls

  1. Začínáme s příkazem tac systému Linux

  2. Začínáme s linuxovým příkazem cat

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