Comando ping in Linux: verificare risposte, RTT e perdita di pacchetti

ping invia richieste ICMP Echo per verificare se una destinazione risponde e misurare il tempo di andata e ritorno, detto RTT. Una risposta conferma quello scambio ICMP; la sua assenza non dimostra da sola che il server o tutti i suoi servizi siano fuori uso.

ICMP significa Internet Control Message Protocol. Il RTT (Round-Trip Time) comprende il percorso verso la destinazione e il ritorno della risposta: può cambiare con instradamento, congestione e politiche di trattamento dei pacchetti. Alcuni sistemi limitano o bloccano ICMP pur continuando a offrire servizi web o SSH.

Sintassi e preparazione

ping [options] destination

Le parentesi e i segnaposto descrivono la sintassi e non si digitano. Sostituisci la destinazione con il nome o l'indirizzo del sistema che devi diagnosticare. Gli esempi usano la sintassi Linux di iputils: controlla ping -V e man ping sulla tua distribuzione, perché altre implementazioni possono avere opzioni diverse.

Se specifichi un nome, deve essere risolto in un indirizzo, normalmente tramite DNS (Domain Name System). Annota l'indirizzo effettivamente scelto nella prima riga dell'output. Confrontare nome e indirizzo aiuta soltanto se stai verificando lo stesso sistema e la stessa famiglia IP.

Esempi con un numero limitato di richieste

Inviare quattro richieste

ping -c 4 example.com

-c 4 limita le richieste inviate, non garantisce quattro risposte. Alla fine leggi quanti pacchetti sono stati trasmessi e ricevuti. example.com è il nome usato nell'esempio: non considerarlo una destinazione che debba sempre rispondere a ICMP né un riferimento per certificare la tua connessione.

Selezionare IPv4

ping -4 -c 4 example.com

-4 sceglie IPv4; -6 sceglie IPv6 quando il nome e la rete lo consentono. Questo comando controlla le risposte sulla famiglia selezionata e non elenca i router attraversati. Un risultato IPv4 positivo non prova che IPv6 funzioni, o viceversa.

Limitare l'attesa quando non arrivano risposte

ping -c 4 -W 2 192.0.2.1

192.0.2.1 appartiene a un intervallo riservato alla documentazione. La riga illustra la sintassi; per una diagnosi reale sostituiscilo con un indirizzo pertinente e autorizzato. Non aspettarti una risposta Internet da questo indirizzo di esempio.

In iputils, -W 2 specifica due secondi di attesa in assenza di risposte; quando ne sono già arrivate, il programma usa due RTT per l'attesa prevista. Non significa che l'intera esecuzione duri al massimo due secondi. Per una scadenza complessiva usa -w, controllando anche la sua interazione con -c.

Senza un limite ping può continuare finché lo interrompi: usa Ctrl+C per terminare e leggere il riepilogo. Mantieni il test breve e non ridurre inutilmente l'intervallo tra richieste.

Leggere il riepilogo e il tempo di risposta

Il loopback è l'indirizzo interno della macchina. Questo esempio invia due richieste locali:

ping -c 2 127.0.0.1

Un possibile riepilogo Linux con due risposte è il seguente. È un output illustrativo, non una misura della tua macchina:

2 packets transmitted, 2 received, 0% packet loss

Sono state inviate due richieste e ricevute due risposte, senza perdite osservate in quel breve campione. Il loopback non attraversa il collegamento fisico verso il router: anche un risultato positivo non verifica il Wi-Fi, la rete esterna o Internet.

Nelle righe di risposta, time= indica il RTT in millisecondi. Leggi anche le statistiche minime, medie e massime quando disponibili. Il tempo ICMP non misura la velocità di download né il tempo necessario a caricare una pagina web; inoltre la sola media può nascondere risposte molto variabili.

La perdita riguarda le risposte non ricevute per quel test. Non identifica da sola dove sia il problema: possono intervenire percorso di andata o ritorno, congestione, filtri o limiti ICMP. Poche richieste senza perdite non garantiscono che la rete sia sempre stabile.

Opzioni principali di iputils

Opzione Significato
-c count Limita il numero di richieste inviate; count va sostituito con un numero.
-4 / -6 Seleziona IPv4 oppure IPv6.
-W seconds Imposta l'attesa senza risposte; non è la scadenza complessiva.
-w seconds Imposta una scadenza del test, con interazione specifica con -c.
-i seconds Imposta l'intervallo tra le richieste, non il tempo di attesa delle risposte.

Con -c e -w insieme, iputils attende il numero di risposte richiesto oppure la scadenza, salvo altri errori. Il valore della scadenza e il numero ricevuto vanno quindi interpretati insieme. I segnaposto seconds si sostituiscono con un valore numerico in secondi.

Distinguere DNS, percorso e servizio

  1. Se compare un errore di risoluzione del nome, verifica prima il nome e il sistema di risoluzione. Un errore prima dell'invio non equivale a quattro pacchetti persi.
  2. Se il nome viene risolto ma non arrivano risposte, confronta un test breve sul medesimo indirizzo e sulla medesima famiglia. Non concludere subito che il DNS sia guasto o che il server sia spento.
  3. Controlla l'instradamento e le politiche ICMP pertinenti. La guida al comando ip e alla selezione del percorso distingue indirizzi e route dalla risposta del destinatario.
  4. Verifica il servizio con il suo protocollo e dalla posizione del client interessato. Sul server, ss mostra porte in ascolto e socket, ma neppure un listener locale dimostra da solo l'accessibilità esterna.

Usa soltanto la quantità di traffico necessaria alla diagnosi. Richieste continue o molto frequenti possono gravare sul sistema o sulla rete; un test più aggressivo non elimina l'ambiguità causata dai filtri. Se l'esecuzione fallisce per permessi o disponibilità del programma, leggi l'errore: non è una prova di guasto del destinatario.

Domande frequenti

Se ping non riceve risposte, il server è spento?

Non si può dedurre dal solo ping. Il server o un firewall può bloccare ICMP mentre il sito web o SSH continuano a funzionare. Controlla percorso, regole e protocollo del servizio che ti interessa.

Documentazione di riferimento

Il manuale ping di iputils specifica opzioni e tempi di attesa. La RFC 5737 sugli indirizzi IPv4 di documentazione spiega perché 192.0.2.1 è un esempio e non un riferimento per prove di connettività pubblica.