Comando ping: opzioni di ping su Linux e come verificare il 100% packet loss

Ambiente di testFamiglia RHELAlmaLinux 9.8iputils 20210202account rootDebian 12 · iputils 20221126 account normale
Comandi di retepingPosizione/usr/bin/pingVerificato il 2026-11-04

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

  • ↪️ Leggere le righe di output

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.com
PING 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 ms

Inviando 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.

OutputCosa 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=1Numero di sequenza dell'invio
ttl=58TTL rimasto nel pacchetto di risposta — scende di 1 a ogni router attraversato
time=1.46 msTempo di andata e ritorno di quel pacchetto
4 packets transmitted, 4 received, 0% packet lossPacchetti inviati, pacchetti ricevuti e quota rimasta senza risposta
time 3003msTempo dal primo invio alla fine
rtt min/avg/max/mdevTempo 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.com
PING 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 ms

Controlla la versione di ping installata con -V. Il server Debian 12 aveva iputils 20221126 e il server AlmaLinux 9 iputils 20210202.

ping -V
ping from iputils 20221126
libcap: yes, IDN: yes, NLS: no, error.h: yes, getrandom(): yes, __fpending(): yes
ping -V
ping from iputils 20210202

2️⃣ Opzioni di numero e intervallo di ping

  • ↪️ -c, -i, -w, -W, -q

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.com
PING 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 ms

Secondo 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.com
PING 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 ms

Tutte 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.com
PING 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 ms

3️⃣ Opzioni di dimensione del pacchetto e IPv6 di ping

  • ↪️ -s, -t, -4, -6

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.com
PING 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 ms

1028 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.com
PING 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 1001ms

Con 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.com
PING  (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 ms

Con 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.com
ping: connect: Network is unreachable

🔲 Opzioni del comando ping

📌 Opzioni principali: risultati di questo articolo

OpzioneCompitoRisultato in questo articolo
-c numeroFissa 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 intervalloIntervallo tra gli invii (secondi), predefinito 1 secondoCon -i 0.5 il tempo per inviare quattro pacchetti è sceso da 3003 ms a 1502 ms
-w tempoTempo (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 tempoTempo (secondi) di attesa di una singola risposta quando non ne arriva nessunaDue invii a 192.0.2.1 con -W 1: [100% packet loss], codice di uscita 1
-qStampa solo la prima riga e le statistiche finali, senza righe di rispostaDopo quattro invii restano solo la prima riga e la riga delle statistiche
-s dimensioneDimensione dei dati inviati (byte), predefinita 56Con -s 1000 la prima riga mostra 1000(1028) bytes e le righe di risposta 1008 bytes
-t TTLTTL dei pacchetti inviatiCon -t 3 il terzo router ha restituito [Time to live exceeded] entrambe le volte
-4Invia solo a indirizzi IPv4Sul server AlmaLinux 9 ha inviato all'indirizzo IPv4 invece che IPv6; il campo del nome resta vuoto
-6Invia solo a indirizzi IPv6Sul server Debian 12 senza rotta IPv6 predefinita: [connect: Network is unreachable]
-DAggiunge davanti a ogni riga di risposta l'ora Unix (secondi.microsecondi)Davanti a ogni riga di risposta compare un orario come [1793227536.574201]
-VStampa le informazioni sulla versioneDebian 12 ha iputils 20221126, AlmaLinux 9 ha iputils 20210202

📎 Altre opzioni: secondo il manuale ufficiale

OpzioneCompito
-nMostra gli indirizzi solo come numeri, senza risolverli in nomi
-I interfacciaIndica l'interfaccia o l'indirizzo di origine da cui inviare
-AAdatta da solo l'intervallo di invio al tempo di andata e ritorno; senza root intervallo minimo di 200 ms
-fPing flood che invia velocemente senza attendere risposte; intervallo 0 solo per root
-l numeroNumero di pacchetti inviati in anticipo senza attendere risposta; più di 3 solo per root
-M doFissa la modalità di Path MTU Discovery; do impedisce la frammentazione (accetta anche want e dont)
-p patternPattern di byte con cui riempire i pacchetti inviati, fino a 16 byte
-OSegnala le richieste senza risposta prima di inviare il pacchetto successivo; si usa con -D per registrare
-RRegistra il percorso seguito (solo IPv4; molti host ignorano questa opzione)
-bConsente l'invio a un indirizzo di broadcast
-aEmette 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.

Simulatore del comando pingiputils 20221126
[root@server work]#
Funziona solo nel browser e non invia pacchetti reali. Con ↑↓ richiami i comandi digitati prima.

4️⃣ ping senza risposta

  • ↪️ 100% packet loss e risoluzione dei nomi non riuscita

[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.1
PING 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 1024ms

Quando 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
0

ping 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.com
PING amazon.com (98.82.161.185) 56(84) bytes of data.

--- amazon.com ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 1002ms
curl -sI https://amazon.com/ | head -1
HTTP/1.1 301 Moved Permanently

Un 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.invalid
ping: no-such-host.invalid: Name or service not known

Se 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.

OutputSignificatoCosa controllare dopo
100% packet lossAi pacchetti inviati non è tornata nessuna rispostaIl servizio web con curl, il firewall con una regola che consente ICMP
Name or service not knownNon è stato possibile risolvere il nome in un indirizzo IPRisposta DNS con nslookup
connect: Network is unreachableNessuna rotta in uscita per quel tipo di indirizzoInviare all'indirizzo IPv4 con -4
Time to live exceededIl TTL è arrivato a 0 su un router intermedioAlzare il valore di -t o toglierlo e inviare di nuovo

🔢 FAQ & contenuti consigliati

Sul server Debian 12, anche con un account normale sono arrivate risposte senza sudo. Su questo server /usr/bin/ping ha il permesso cap_net_raw (capability), quindi poteva inviare pacchetti ICMP anche senza essere root.

Sui due server verificati, ping era installato dal pacchetto iputils su AlmaLinux 9 e dal pacchetto iputils-ping su Debian 12. Per questo si installa con [sudo dnf install iputils] nella famiglia RHEL e con [sudo apt install iputils-ping] nella famiglia Debian.

Con -D, davanti a ogni riga di risposta compare l'ora Unix (secondi.microsecondi). Due invii a example.com dal server Debian 12 hanno registrato un orario come [1793227536.574201] davanti a ogni riga di risposta.

ℹ️ 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.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Dimostra di essere umano: 0   +   9   =