Comando ping: opzioni di ping su Linux e come verificare il 100% packet loss
Su un server Linux, il comando ping verifica se i pacchetti raggiungono un altro server e quanto dura il viaggio di andata e ritorno. Inviando a example.com da server AlmaLinux 9 e Debian 12 con un numero fissato da -c, il tempo di andata e ritorno è stato di 1-3 ms, mentre un server che blocca ICMP ha mostrato 100% packet loss con ping pur rispondendo alle richieste web.
L'output qui sotto proviene da un server AlmaLinux 9.8 (account root) e da un server Debian 12 (account normale). Ogni ping è stato eseguito con il numero di invii fissato da -c. Gli IP privati dei router intermedi sono stati sostituiti con valori di esempio, mentre gli indirizzi ottenuti da domini pubblici come example.com sono stati lasciati così com'erano.
1️⃣ Come usare il comando ping
ping invia una richiesta di eco ICMP all'altro server e stampa, riga per riga, quanto tempo ha impiegato la risposta di eco a tornare. Su Linux, se non fissi un numero con -c, ping continua a inviare finché non lo fermi con Ctrl+C (secondo il manuale ufficiale), quindi eseguilo fin dall'inizio con un numero, come -c 4.
ping -c 4 example.comPING example.com (172.66.147.243) 56(84) bytes of data.
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=1 ttl=58 time=1.46 ms
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=2 ttl=58 time=1.30 ms
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=3 ttl=58 time=1.28 ms
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=4 ttl=58 time=1.30 ms
--- example.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 1.279/1.336/1.464/0.074 msInviando quattro pacchetti a example.com dal server Debian 12 sono tornate tutte e quattro le risposte, con un tempo di andata e ritorno di 1,28-1,46 ms. Ecco cosa mostra ogni riga.
| Output | Cosa mostra |
|---|---|
| PING example.com (172.66.147.243) 56(84) bytes of data. | L'indirizzo ottenuto risolvendo il nome e la dimensione inviata — 56 byte di dati più 20 byte di intestazione IP e 8 byte di intestazione ICMP fanno 84 byte |
| 64 bytes from … | Dimensione della risposta ricevuta (56 byte di dati + 8 byte di intestazione ICMP) |
| icmp_seq=1 | Numero di sequenza dell'invio |
| ttl=58 | TTL rimasto nel pacchetto di risposta — scende di 1 a ogni router attraversato |
| time=1.46 ms | Tempo di andata e ritorno di quel pacchetto |
| 4 packets transmitted, 4 received, 0% packet loss | Pacchetti inviati, pacchetti ricevuti e quota rimasta senza risposta |
| time 3003ms | Tempo dal primo invio alla fine |
| rtt min/avg/max/mdev | Tempo di andata e ritorno minimo, medio e massimo e la sua dispersione (mdev) |
mdev indica quanto i tempi di andata e ritorno si discostano dalla media, e il manuale ufficiale spiega che più il valore è alto, meno regolari sono quei tempi. In questo risultato, con tutte e quattro le risposte sotto 1,5 ms, mdev era 0,074 ms.
Lo stesso comando sul server AlmaLinux 9 ha inviato all'indirizzo IPv6 di example.com, e la prima riga mostrava solo 56 data bytes, senza l'84.
ping -c 4 example.comPING example.com(2606:4700:10::ac42:93f3 (2606:4700:10::ac42:93f3)) 56 data bytes
64 bytes from 2606:4700:10::ac42:93f3 (2606:4700:10::ac42:93f3): icmp_seq=1 ttl=51 time=2.20 ms
64 bytes from 2606:4700:10::ac42:93f3 (2606:4700:10::ac42:93f3): icmp_seq=2 ttl=54 time=2.30 ms
64 bytes from 2606:4700:10::ac42:93f3 (2606:4700:10::ac42:93f3): icmp_seq=3 ttl=51 time=2.55 ms
64 bytes from 2606:4700:10::ac42:93f3 (2606:4700:10::ac42:93f3): icmp_seq=4 ttl=54 time=2.26 ms
--- example.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 2.203/2.326/2.547/0.131 msControlla la versione di ping installata con -V. Il server Debian 12 aveva iputils 20221126 e il server AlmaLinux 9 iputils 20210202.
ping -Vping from iputils 20221126
libcap: yes, IDN: yes, NLS: no, error.h: yes, getrandom(): yes, __fpending(): yesping -Vping from iputils 202102022️⃣ Opzioni di numero e intervallo di ping
Tra le opzioni di ping, -c è il numero di invii e -i l'intervallo tra un invio e l'altro (secondi). L'intervallo predefinito è 1 secondo, e con -i 0.5 il tempo per inviare quattro pacchetti è sceso da 3003 ms a 1502 ms.
ping -c 4 -i 0.5 example.comPING example.com (172.66.147.243) 56(84) bytes of data.
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=1 ttl=58 time=1.26 ms
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=2 ttl=58 time=1.31 ms
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=3 ttl=58 time=1.37 ms
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=4 ttl=58 time=1.44 ms
--- example.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 1502ms
rtt min/avg/max/mdev = 1.264/1.343/1.436/0.065 msSecondo il manuale di iputils 20210202 del server AlmaLinux 9, solo root può usare un intervallo inferiore a 0,2 secondi, mentre il manuale di iputils 20221126 del server Debian 12 fissa quel limite a 2 ms. Intervalli brevi possono caricare l'altro server e la rete.
-w è il tempo (secondi) dopo cui ping termina del tutto, indipendentemente da quanti invii ha fatto. Insieme a -c, termina quando riceve il numero di risposte fissato o quando scade il tempo di -w. Con -c 10 -w 3 ha inviato solo tre pacchetti e si è fermato dopo 3 secondi.
ping -c 10 -w 3 example.comPING example.com (172.66.147.243) 56(84) bytes of data.
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=1 ttl=58 time=1.34 ms
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=2 ttl=58 time=1.27 ms
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=3 ttl=58 time=1.34 ms
--- example.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 1.272/1.318/1.342/0.032 msTutte e tre le risposte sono arrivate, ma poiché i 10 invii fissati non sono stati raggiunti, il codice di uscita di ping era 1. Anche il manuale ufficiale spiega che, usando insieme -c e -w, ping termina con 1 se non riceve il numero di risposte fissato.
-W è il tempo (secondi) di attesa di una singola risposta. Secondo il manuale ufficiale, questo valore vale solo quando non arriva nessuna risposta; con una destinazione che risponde, ping aspetta il doppio del tempo di andata e ritorno.
Per vedere solo il riepilogo senza le righe dei risultati, aggiungi -q. Dopo quattro invii sono rimaste solo la prima riga e le statistiche finali.
ping -c 4 -q example.comPING example.com (104.20.23.154) 56(84) bytes of data.
--- example.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 1.551/1.649/1.715/0.060 ms3️⃣ Opzioni di dimensione del pacchetto e IPv6 di ping
La dimensione dei dati inviati si cambia con -s. Con -s 1000, la prima riga è diventata 1000(1028) bytes e le righe di risposta 1008 bytes.
ping -c 2 -s 1000 example.comPING example.com (172.66.147.243) 1000(1028) bytes of data.
1008 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=1 ttl=58 time=1.21 ms
1008 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=2 ttl=58 time=1.31 ms
--- example.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 1.214/1.262/1.311/0.048 ms1028 sono 1000 byte di dati più 20 byte di intestazione IP e 8 byte di intestazione ICMP, e 1008 sono i dati più la sola intestazione ICMP. Il tempo di andata e ritorno è stato di 1,21-1,31 ms, quasi come con la dimensione predefinita (56 byte).
-t fissa il TTL dei pacchetti inviati. Il TTL scende di 1 a ogni router e, quando arriva a 0, quel router scarta il pacchetto e restituisce [Time to live exceeded].
ping -c 2 -t 3 example.comPING example.com (172.66.147.243) 56(84) bytes of data.
From 192.0.2.103 (192.0.2.103) icmp_seq=1 Time to live exceeded
From 192.0.2.103 (192.0.2.103) icmp_seq=2 Time to live exceeded
--- example.com ping statistics ---
2 packets transmitted, 0 received, +2 errors, 100% packet loss, time 1001msCon il TTL abbassato a 3, il terzo router ha restituito [Time to live exceeded] entrambe le volte. Alzando il TTL di uno alla volta a partire da 1, la prima risposta da example.com è arrivata con 8.
-4 e -6 limitano il tipo di indirizzo di destinazione a IPv4 o IPv6. Il server AlmaLinux 9 inviava all'indirizzo IPv6 di example.com anche senza opzioni, quindi per inviare all'indirizzo IPv4 è stato aggiunto -4.
ping -4 -c 4 example.comPING (172.66.147.243) 56(84) bytes of data.
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=1 ttl=54 time=2.64 ms
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=2 ttl=54 time=2.55 ms
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=3 ttl=54 time=2.57 ms
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=4 ttl=54 time=2.58 ms
--- ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 2.553/2.585/2.642/0.033 msCon iputils 20210202 sul server AlmaLinux 9, aggiungendo -4 il campo del nome è rimasto vuoto nella prima riga e nella riga delle statistiche. Lo stesso comando con iputils 20221126 sul server Debian 12 mostrava example.com come al solito.
Sul server Debian 12, che non ha una rotta IPv6 predefinita, aggiungere -6 ha fatto terminare subito con [connect: Network is unreachable], senza righe di risposta.
ping -6 -c 2 example.comping: connect: Network is unreachable🔲 Opzioni del comando ping
📌 Opzioni principali: risultati di questo articolo
| Opzione | Compito | Risultato in questo articolo | |
|---|---|---|---|
| -c numero | Fissa quanti pacchetti inviare e termina dopo averli inviati | -c 4 sul server Debian 12: quattro invii, quattro risposte, andata e ritorno 1,28–1,46 ms | |
| -i intervallo | Intervallo tra gli invii (secondi), predefinito 1 secondo | Con -i 0.5 il tempo per inviare quattro pacchetti è sceso da 3003 ms a 1502 ms | |
| -w tempo | Tempo (secondi) dopo cui ping termina del tutto, indipendentemente da quanti invii ha fatto | -c 10 -w 3 ha inviato solo tre pacchetti in 3 secondi ed è terminato con codice di uscita 1 | |
| -W tempo | Tempo (secondi) di attesa di una singola risposta quando non ne arriva nessuna | Due invii a 192.0.2.1 con -W 1: [100% packet loss], codice di uscita 1 | |
| -q | Stampa solo la prima riga e le statistiche finali, senza righe di risposta | Dopo quattro invii restano solo la prima riga e la riga delle statistiche | |
| -s dimensione | Dimensione dei dati inviati (byte), predefinita 56 | Con -s 1000 la prima riga mostra 1000(1028) bytes e le righe di risposta 1008 bytes | |
| -t TTL | TTL dei pacchetti inviati | Con -t 3 il terzo router ha restituito [Time to live exceeded] entrambe le volte | |
| -4 | Invia solo a indirizzi IPv4 | Sul server AlmaLinux 9 ha inviato all'indirizzo IPv4 invece che IPv6; il campo del nome resta vuoto | |
| -6 | Invia solo a indirizzi IPv6 | Sul server Debian 12 senza rotta IPv6 predefinita: [connect: Network is unreachable] | |
| -D | Aggiunge davanti a ogni riga di risposta l'ora Unix (secondi.microsecondi) | Davanti a ogni riga di risposta compare un orario come [1793227536.574201] | |
| -V | Stampa le informazioni sulla versione | Debian 12 ha iputils 20221126, AlmaLinux 9 ha iputils 20210202 |
📎 Altre opzioni: secondo il manuale ufficiale
| Opzione | Compito | |
|---|---|---|
| -n | Mostra gli indirizzi solo come numeri, senza risolverli in nomi | |
| -I interfaccia | Indica l'interfaccia o l'indirizzo di origine da cui inviare | |
| -A | Adatta da solo l'intervallo di invio al tempo di andata e ritorno; senza root intervallo minimo di 200 ms | |
| -f | Ping flood che invia velocemente senza attendere risposte; intervallo 0 solo per root | |
| -l numero | Numero di pacchetti inviati in anticipo senza attendere risposta; più di 3 solo per root | |
| -M do | Fissa la modalità di Path MTU Discovery; do impedisce la frammentazione (accetta anche want e dont) | |
| -p pattern | Pattern di byte con cui riempire i pacchetti inviati, fino a 16 byte | |
| -O | Segnala le richieste senza risposta prima di inviare il pacchetto successivo; si usa con -D per registrare | |
| -R | Registra il percorso seguito (solo IPv4; molti host ignorano questa opzione) | |
| -b | Consente l'invio a un indirizzo di broadcast | |
| -a | Emette un suono a ogni risposta ricevuta |
🔲 Simulatore del comando ping
Nel simulatore qui sotto puoi digitare tu stesso i comandi e vedere i risultati per numero e intervallo, dimensione del pacchetto e invio a un indirizzo che non risponde.
4️⃣ ping senza risposta
[100% packet loss] significa che ai pacchetti inviati non è tornata nessuna risposta. Due invii con -W 1 a 192.0.2.1, un indirizzo riservato alla documentazione, hanno mostrato solo le statistiche, senza righe di risposta.
ping -c 2 -W 1 192.0.2.1PING 192.0.2.1 (192.0.2.1) 56(84) bytes of data.
--- 192.0.2.1 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 1024msQuando non è arrivata nessuna risposta, il codice di uscita di ping era 1, e con le risposte era 0. Gli script usano questo valore per controllare se un altro server risponde.
ping -c 2 -W 1 192.0.2.1 > /dev/null; echo $?; ping -c 1 example.com > /dev/null; echo $?1
0ping verifica solo ICMP, quindi un server che blocca ICMP può rispondere alle richieste web e ignorare ping. Due invii ad amazon.com dal server Debian 12 hanno dato [100% packet loss], mentre una richiesta web con curl allo stesso indirizzo ha ricevuto una risposta 301.
ping -c 2 -W 1 amazon.comPING amazon.com (98.82.161.185) 56(84) bytes of data.
--- amazon.com ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 1002mscurl -sI https://amazon.com/ | head -1HTTP/1.1 301 Moved PermanentlyUn server che blocca ICMP è come un negozio che ha tolto il campanello.
Alcuni server cloud rispondono a ping solo dopo che ICMP è stato consentito nelle regole del firewall. Un'istanza VM di Oracle Cloud ha risposto a ping dopo che il tipo ICMP nella lista di sicurezza della subnet pubblica è stato cambiato in 8.
Se ping non riesce a risolvere il nome in un indirizzo IP, termina subito con [Name or service not known], senza prima riga, e il codice di uscita era 2. .invalid è un nome riservato perché non venga risolto da nessuna parte, per questo è stato usato per verificare questo errore.
ping -c 1 no-such-host.invalidping: no-such-host.invalid: Name or service not knownSe questo errore compare con un dominio reale, usa il comando nslookup per verificare se il server DNS restituisce un indirizzo per quel nome. Qui sotto trovi i quattro output visti quando non c'era risposta e cosa controllare dopo.
| Output | Significato | Cosa controllare dopo |
|---|---|---|
| 100% packet loss | Ai pacchetti inviati non è tornata nessuna risposta | Il servizio web con curl, il firewall con una regola che consente ICMP |
| Name or service not known | Non è stato possibile risolvere il nome in un indirizzo IP | Risposta DNS con nslookup |
| connect: Network is unreachable | Nessuna rotta in uscita per quel tipo di indirizzo | Inviare all'indirizzo IPv4 con -4 |
| Time to live exceeded | Il TTL è arrivato a 0 su un router intermedio | Alzare il valore di -t o toglierlo e inviare di nuovo |
🔢 FAQ & contenuti consigliati
Rete · Configurazione
[Linux] Comando ip: gestire interfacce di rete e impostazioni
Il comando ip, per controllare e gestire le interfacce di rete, gli indirizzi IP e il routing di un server.
Rete · DNS
Comando host di Linux | comando di interrogazione DNS
Il comando host, per trovare l'indirizzo IP di un nome host o convertire un indirizzo IP in nome host.
Accesso · trasferimento
Comando SSH: opzioni e come usarlo
Opzioni e uso del comando SSH, che si collega a un server remoto tramite una connessione cifrata per eseguire comandi.
ℹ️ Informativa sull'affiliazione
I contenuti di questo sito includono link di affiliazione. Se un visitatore acquista un prodotto o un servizio tramite uno di questi link, il sito riceve una commissione dal venditore. In questo processo l'importo pagato dall'acquirente (durante le promozioni l'importo scende↓) non aumenta. Prezzi, sconti e disponibilità indicati si riferiscono al momento della stesura e possono differire da quelli reali: prima di acquistare verifica sempre presso il venditore. I prodotti vengono scelti e valutati secondo criteri propri, e le commissioni non influiscono sull'ordine di presentazione né sul contenuto delle valutazioni.