GNU/Linux >> Linux Esercitazione >  >> Linux

Pratico comando Ping negli esempi di Linux

Uno strumento indispensabile per l'amministrazione della rete è il comando Ping in Linux. Potresti aver usato ping prima per la risoluzione dei problemi di base, ma cosa fa questo comando?

Non sei un lettore? Guarda questo video tutorial correlato! Non vedi il video? Assicurati che il blocco degli annunci sia disattivato.

Il ping Il comando invia richieste ICMP (Internet Control Message Protocol) a host remoti o locali e attende una risposta. Nessuna risposta potrebbe indicare un problema con la connessione o gli host stessi.

Continua a leggere ed esplora i modi pratici per usare il comando ping in Linux!

Prerequisiti

Questo tutorial sarà una dimostrazione pratica. Se desideri continuare, assicurati di avere un computer Linux con una connessione Internet. Questo tutorial utilizza un computer Ubuntu 20.04.

Inoltre, assicurati di aver già aperto una sessione terminale sul tuo computer Linux.

Verifica della connettività della rete locale

Immagina di sviluppare un'applicazione web. Il test ha esito negativo quando si tenta di accedere all'applicazione tramite l'indirizzo di loopback dell'host (127.0.0.1). Prima di risolvere i problemi dell'applicazione, assicurati che il protocollo TCP/IP funzioni internamente utilizzando il ping comando.

Gli indirizzi di loopback predefiniti sono 127.0.0.1 e 0:0:0:0:0:0:0:1 (o ::1) rispettivamente per IPv4 e IPv6.

Per verificare la connettività dell'indirizzo di loopback, esegui ping di seguito comando seguito dall'indirizzo di loopback sul terminale. Questo comando mostra l'uso più elementare di ping comando in Linux.

ping 127.0.0.1

E se il loopback funziona correttamente, dovresti vedere un output simile allo screenshot qui sotto.

In alternativa, eseguire il ping di localhost hostname dovrebbe dare lo stesso risultato perché si risolve nell'indirizzo di loopback per impostazione predefinita.

Per terminare il ping comando, premi CTRL+C sul terminale. In caso contrario, il comando ping verrà eseguito continuamente.

Nota:non premere CTRL+Z per interrompere il comando ping. In questo modo il comando verrà interrotto, ma il processo rimarrà in esecuzione in background.

Comprendere l'output Linux del comando Ping

Prima di andare oltre, trarresti vantaggio dalla comprensione esplicita dell'output invece di interpretarlo solo come "funziona". Fare riferimento all'immagine sottostante e alla suddivisione dei valori che segue.

  • A (bytes ) – Mostra la dimensione della richiesta di eco ICMP (pacchetto) in byte.
  • B (from ) – Mostra l'indirizzo IP dell'host di destinazione from dove il ping comando riceve la risposta.
  • C (icmp_seq ) – Indica l'ordine di trasmissione dei pacchetti. Come puoi vedere, ping invia le richieste ICMP in sequenza. Il valore mostra icmp_seq=N , dove N è il numero dell'ordine.
  • D (TTL ) – Mostra il valore Time-To-Live (TTL) della richiesta ICMP. Il valore predefinito è 64, il che significa che la richiesta può durare solo fino a un massimo di 64 hop e scadrà dopo. Il valore massimo possibile è 255.
  • E (time ) – Il tempo totale (millisecondi) trascorso in cui la richiesta ha raggiunto la destinazione ed è tornata alla fonte. Questo valore è anche noto come Round Trip Time (RTT). Nota che il time i valori sono inferiori a 0,1 millisecondi in questo esempio poiché la destinazione è la stessa macchina. Il time il valore aumenta naturalmente quando il ping le destinazioni sono remote o hanno un indirizzo Internet.
  • F (statistics ) – Mostra il riepilogo e le statistiche del ping risultati del comando. Il riepilogo mostra il numero di pacchetti trasmessi e ricevuti, la percentuale di perdita di pacchetti e il tempo totale. La riga inferiore mostra la deviazione minima, media (valore medio), massima e standard dell'RTT totale.

Forzare la versione del protocollo Internet

Il comando ping utilizza IPv4 per impostazione predefinita. Ma cosa succede se stai testando la compatibilità della tua applicazione con IPv6? Per forzare il comando ping a utilizzare IPv6, devi specificare l'opzione -6 nel comando ping in Linux, come puoi vedere nel codice seguente.

ping -6 localhost

Come puoi vedere di seguito, la risposta from mostra che la risposta proveniva dall'indirizzo di loopback IPv6 (::1).

Invece dell'opzione -6, l'opzione -4 forza il ping a utilizzare IPv4. Ma poiché il ping è predefinito su IPv4, in genere non è necessario specificare l'opzione -4.

Limitare il numero di risposte

Negli esempi precedenti, dovevi premere CTRL+C per terminare il comando ping perché altrimenti verrebbe eseguito continuamente.

L'opzione -c consente di specificare il numero di risposte che il comando ping riceve prima che si interrompa. Perché usare questa opzione? In alcuni casi, potresti voler testare la risposta del tuo sistema a 10, 100, 1000 pacchetti ICMP e così via.

Eseguire il comando seguente per inviare cinque pacchetti ICMP all'host di destinazione. Sostituisci 5 con il numero di risposte ICMP da ricevere prima di interrompere.

ping -c 5 localhost

Come puoi vedere di seguito, il comando ping si è interrotto dopo la quinta richiesta (icmd_seq=5) e non è stato necessario premere CTRL+C per terminarlo.

Regolazione dell'intervallo di richiesta

Supponiamo di voler testare la connessione di rete tra due dispositivi e uno di essi ha una larghezza di banda ridotta. In questo caso, puoi aumentare l'intervallo tra ogni richiesta in modo che il secondo dispositivo abbia abbastanza tempo per elaborare il pacchetto ICMP corrente.

Il ping Il comando invia la successiva richiesta ICMP un secondo dopo aver completato la precedente per impostazione predefinita. Per regolare il ritardo, devi specificare il -i opzione seguita dal valore del ritardo in secondi.

Ad esempio, esegui il seguente ping comando per inviare cinque richieste ICMP con un intervallo di due secondi tra le richieste.

ping -c 5 -i 2 localhost

Un altro esempio, esegui il seguente ping comando per inviare cinque richieste ICMP con un intervallo di mezzo secondo tra ciascuna richiesta.

ping -c 5 -i 0.5 localhost

Confrontando i risultati di entrambi i comandi con intervalli diversi mostra la differenza tra il totale time valori.

Simulazione di un attacco di allagamento

Un ping flood è un tipo di attacco Denial of Service (DoS) in cui l'attaccante tenta di sovraccaricare un dispositivo mirato con pacchetti ICMP. L'attacco mira a sopraffare la macchina presa di mira per rispondere a così tante richieste da renderla sovraccarica e non disponibile per gli utenti legittimi.

Puoi simulare un attacco flood per testare come il tuo sistema risponde a un attacco. Non preoccuparti, però. La simulazione di ping flood è controllata e puoi interromperla in qualsiasi momento premendo CTRL+C.

Esegui il comando seguente sul tuo computer locale per vedere quante richieste il tuo dispositivo può gestire al secondo. Il -f opzione significa inviare più pacchetti ping rapidamente e senza limiti arbitrari.

Sostituisci localhost con l'indirizzo IP o il nome host dell'app che desideri testare. Questo esempio simula il flusso di ping solo sull'host locale. Lascia che il comando ping venga eseguito per circa cinque secondi, quindi premi CTRL+C terminare.

Il comando ping -f richiede che tu sia l'utente root o disponga dei privilegi sudo.

ping -f localhost

Come puoi vedere di seguito, il comando ping è riuscito a inviare e ricevere 124,685 Pacchetti ICMP all'interno di 4276 millisecondi con 0% perdita di pacchetti. Abbastanza bene, eh? Ma, in un caso d'uso reale, vedrai una perdita di pacchetti. La perdita di pacchetti è inevitabile perché la rete non è perfetta.

Verifica della connettività Internet

Tutti usano Internet in qualche modo, giusto? Supponiamo di provare a caricare un sito Web utilizzando il browser, ma il tempo di caricamento della pagina sembra lento. Il sintomo indicherebbe che la risoluzione DNS funziona, ma qualcosa influisce sulla velocità della rete.

La diagnosi del problema senza strumenti di terze parti includerebbe il ping comando. L'utilizzo del comando è lo stesso di quando si verifica la connettività di rete locale. Ma invece di scegliere come target l'indirizzo di loopback, dovresti specificare un IP pubblico o un indirizzo web.

Esegui il comando seguente per eseguire il ping di un sito Web pubblico esterno. Sostituisci adamtheautomator.com con un altro indirizzo web come desideri.

ping -c 5 adamtheautomator.com

Immediatamente, noterai che il valore del tempo è relativamente più alto rispetto a quando esegui il ping di localhost. Questo aumento del tempo speso è dovuto all'indirizzo di destinazione adamtheautomator.com non è all'interno dello stesso host e nemmeno sulla stessa rete.

Nei passaggi precedenti, il comando ping ha esito positivo, ma nell'utilizzo nel mondo reale, a volte il comando ping fallisce per molte possibili ragioni.

Di seguito sono riportati alcuni errori comuni e come risolverli.

  • Host di destinazione irraggiungibile – Questo errore indica che non esiste un percorso verso l'host di destinazione. Questo errore può verificarsi se l'host o il dominio è inattivo.
  • Richiesta scaduta – Questo errore indica che la richiesta all'host di destinazione ha richiesto troppo tempo (più di 4 secondi o 4000 millisecondi) e la connessione è scaduta. Questo errore può verificarsi se l'host di destinazione è troppo occupato per rispondere, un firewall blocca la connessione o se l'hardware di rete è difettoso (cavo, router, ecc.).
  • Host sconosciuto – Questo errore significa che il DNS non può risolvere il nome host in un indirizzo IP. Verifica di aver inserito il nome host corretto. Se sospetti che il tuo router possa non funzionare correttamente, prova a riavviare il router.
  • TTL scaduto in transito – Questo errore indica che la richiesta ICMP era scaduta prima di raggiungere la sua destinazione. Il tuo pacchetto ping si riduce a zero (0) prima di raggiungere l'host di destinazione. Nella maggior parte dei casi, un'errata configurazione nella tabella di routing può causare questo errore. Considera la possibilità di controllare la tabella dei percorsi per vedere se c'è un problema.

Nel caso non lo sapessi:i giocatori fanno riferimento al ping come alla loro connessione al server di gioco nella comunità di gioco. Un ping basso significa una connessione più reattiva, specialmente nei giochi frenetici. Un ping alto indica una connessione meno reattiva e può rendere il gioco lento.

Alcuni provider di servizi Internet (ISP) restituiscono una pagina di ricerca anziché un messaggio di errore quando tenti di connetterti a un sito Web che non esiste. Potresti ottenere un risultato falso positivo perché stai ricevendo una risposta anziché un errore.

Salvare l'output del ping su un file

La maggior parte dei comandi, se non tutti, restituisce solo i risultati sullo schermo e il ping il comando in Linux non è diverso. Il terminale Linux dispone di operatori di reindirizzamento dell'output integrati che consentono di reindirizzare l'output su un file.

Questi operatori di reindirizzamento sono i seguenti:

(> ) carattere, che sovrascriverà il contenuto del file, e il;

(>> ) carattere, che aggiungerà l'output al contenuto esistente.

Ma perché vorresti salvare i risultati del ping in un file? Principalmente per la registrazione e l'analisi successiva utilizzando un editor di testo o un parser di log.

Puoi anche utilizzare un programma per fogli di calcolo per creare un grafico che mostra come cambia il tempo del ping nel tempo.

Eseguire il comando seguente per salvare l'output del ping in un file. Questo comando scrive tutto lo standard output da ping comando in un file denominato log.txt su disco.

ping -c 10 localhost > log.txt

Mentre il ping comando è in esecuzione, noterai che non c'è output sullo schermo.

Ora apri il log.txt file in un editor di testo, come nano . Oppure visualizza il contenuto del file eseguendo cat comando.

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

Conclusione

In questo tutorial, hai imparato come usare il comando ping Linux con vari esempi pratici. Hai anche imparato a salvare l'output del ping su un file su disco in modo da poterlo analizzare in seguito.

A questo punto, dovresti avere una buona comprensione di come funziona il comando ping e di come può essere utile. Ma prima di iniziare a eseguire il ping di tutto ciò che è in vista, ci sono alcune regole che devi abilitare nei tuoi gruppi di sicurezza per consentire il traffico ICMP.

Grazie per la lettura e buon apprendimento!


Linux
  1. Comando cp in Linux:7 esempi pratici

  2. Comando di arresto di Linux:5 esempi pratici

  3. 5 Esempi pratici del comando dd in Linux

  4. 10 esempi pratici di comandi Linux nm

  5. 7 Esempi di comandi Linux df

15 esempi pratici di comando Rsync in Linux

5 esempi pratici di Tail Command in Linux

echo Command in Linux:7 esempi pratici

Esempi di comandi ping Linux

comando ping di Linux

Esempi di comandi id in Linux