Quando un sito web, un server o un servizio online smette di rispondere, non è sempre chiaro dove si trova il problema. Il tuo computer potrebbe essere connesso alla rete locale, ma la destinazione rimane irraggiungibile. Il problema potrebbe essere nel tuo router domestico, nella rete del tuo provider di Internet, in una rete remota o nel server stesso di destinazione.
Traceroute è uno strumento di diagnostica di rete che aiuta a mostrare il percorso dei pacchetti dal tuo dispositivo verso una destinazione. Elencata i router intermedi, comunemente chiamati salti, e misura quanto tempo impiegano le risposte da ciascuno. Questo può aiutarti a identificare dove il percorso cambia, dove iniziano i ritardi o dove le risposte smettono di apparire.
Traceroute non mostra ogni dettaglio su come funziona l'instradamento Internet, e un timeout non significa automaticamente che un router o un collegamento sia guasto. Molti router limitano o filtrano le risposte su cui si basa traceroute. Tuttavia, quando si comprende cosa può e non può dire l'output, diventa un primo passo utile per la risoluzione dei problemi.
Questo manuale spiega come funziona traceroute, come eseguirlo su Windows, macOS e Linux, e come interpretare i risultati comuni. Se stai imparando i fondamenti della rete, ti è anche utile comprendere il ruolo di un gateway predefinito e come sono organizzati gli intervalli di indirizzi IP sottoreti.
Cosa è Traceroute?
Traceroute è uno strumento da riga di comando che tenta di identificare i router attraverso cui passa un pacchetto mentre si reca verso una destinazione. Su Windows, lo strumento integrato si chiama tracert. Su macOS e la maggior parte delle distribuzioni Linux, è chiamato tracciamento percorsoI nomi sono diversi, ma il loro scopo principale è simile.
Lo strumento invia una serie di sondaggi con limiti di salti crescenti. Un limite di salto indica a un pacchetto quanti router può attraversare prima di essere eliminato. In IPv4, questo campo è chiamato il Tempo di vita, o TTL. Nell'IPv6 è chiamato il Limite di salto.
Quando un router inoltra un pacchetto, riduce il TTL o il limite di salti. Quando il valore raggiunge zero, il router scarta il pacchetto e potrebbe inviare una risposta indietro alla sorgente. Traceroute utilizza queste risposte per identificare i router successivi. Dopo che lo strumento ha appreso il primo salto, invia un'altra indagine con un limite più alto, poi un'altra, proseguendo verso la destinazione.
Traceroute misura il tempo tra l'invio di un probe e la ricezione della risposta. Di solito invia diversi probe per ogni salto, per questo motivo l'output contiene spesso tre tempi di risposta. Quei numeri misurano il tempo necessario per far viaggiare il probe e la risposta tra il tuo dispositivo e il router che risponde. Non misurano solo il tempo impiegato dal pacchetto all'interno di quel router.
Cosa Mostra un Traceroute?
Un risultato tipico ha una riga numerata per ogni salto. Il primo salto è di solito il tuo router locale o un altro primo dispositivo nella rete locale. I salti successivi possono appartenere al tuo fornitore di Internet, reti di transito, fornitori di hosting o alla rete della destinazione.
Un esempio semplificato potrebbe sembrare così:
traccia per example.com, 30 salti massimi
1 192.168.1.1 2,1 ms 1,8 ms 2,0 ms
2 100.64.0.1 8,4 ms 8,1 ms 8,6 ms
3 203.0.113.10 13,2 ms 12,9 ms 13,5 ms
4 * * *
5 198.51.100.20 25,6 ms 25,1 ms 26,0 ms
La prima colonna identifica il numero di salto. Il valore successivo è l'indirizzo o il nome del router che risponde. I valori rimanenti sono i tempi di risposta per i sondaggi inviati a quel salto. In questo esempio, il salto 4 non ha risposto ai sondaggi, ma il salto 5 ha risposto.
Un salto di risposta è una prova che un'indagine ha ricevuto una risposta da quel punto. Non dimostra che ogni altra parte del percorso sia in buone condizioni. Analogamente, un salto che non risponde non dimostra che il router sia disattivato. Il dispositivo potrebbe essere configurato per inoltrare il traffico ignorando o limitando le indagini diagnostiche.
Traceroute può mostrare percorsi diversi in momenti diversi. La rotta Internet cambia quando le reti modificano le rotte, bilanciano il traffico, gestiscono interruzioni o applicano politiche. Una rotta osservata in un tracciamento è uno screenshot, non una mappa permanente.
Come eseguire Traceroute su Windows
Windows include tracert. Apri Prompt dei comandi o PowerShell e immetti un nome host o un indirizzo IP:
tracert example.com
Windows risolve il nome host in un indirizzo IP e poi mostra i salti che può osservare. Puoi utilizzare - d per prevenire tracert dalla risoluzione degli indirizzi del router in nomi:
tracert -d example.com
Utilizzando - d può far apparire i risultati più velocemente perché Windows salta le ricerche DNS inverse per gli indirizzi intermedi. Questo è utile quando ti importa il percorso e il tempo, piuttosto che i nomi associati a ciascun router.
Puoi limitare il numero massimo di salti con -h e imposta il tempo di attesa per ogni risposta con -wAd esempio:
tracert -d -h 20 -w 2000 example.com
Questo comando salta le ricerche di nome, si ferma dopo un massimo di 20 salti e attende fino a 2000 millisecondi per una risposta a ciascuna indagine. Se una destinazione è lontana o il percorso è lento, un limite basso di salti potrebbe interrompere la traccia prima che raggiunga la destinazione.
Per testare un indirizzo IP specifico invece di un nome host, eseguire:
tracert -d 203.0.113.25
Quando si confrontano i risultati, testare sempre lo stesso destinatario in modo coerente. Una traccia verso un nome di dominio e una traccia verso un indirizzo IP specifico potrebbero seguire percorsi diversi se il dominio risolve a server diversi.
Come eseguire Traceroute su macOS
Su macOS, apri Terminal e esegui:
traceroute example.com
Per visualizzare gli indirizzi numerici senza provare a risolvere i nomi, utilizzare:
traceroute -n example.com
Puoi limitare il numero massimo di salti con -m e regola il tempo di attesa con -wAd esempio:
traceroute -n -m 20 -w 2 example.com
Richiede un output numerico, limita il tracciamento a 20 salti e attende fino a due secondi per una risposta a ogni salto. Le opzioni esatte disponibili potrebbero variare leggermente tra le implementazioni, quindi consulta il manuale locale se un'opzione del comando non è riconosciuta:
man traceroute
Il tracciamento potrebbe richiedere del tempo per completarsi perché invia diverse indagini a ciascun salto e aspetta le risposte. Se sembra che si fermi su una riga, potrebbe essere in attesa di risposte da router che non rispondono a queste indagini.
Come eseguire Traceroute su Linux
Molte distribuzioni Linux includono tracciamento percorso, ma alcuni potrebbero richiederti di installarli prima. Un test base è:
traceroute example.com
Per evitare le ricerche DNS inverse e visualizzare solo indirizzi numerici, utilizzare:
traceroute -n example.com
Puoi anche impostare un numero massimo di salti e un tempo di attesa per la risposta:
traceroute -n -m 20 -w 2 example.com
Su Linux, le opzioni del comando dipendono dall'implementazione di traceroute installata. Se il comando non è disponibile, utilizza il gestore dei pacchetti della tua distribuzione per installare il pacchetto appropriato, oppure utilizza un alternativa disponibile come tracepath.
Per destinazioni IPv6, molti sistemi Linux supportano:
traceroute -6 example.com
Se il dominio ha sia record IPv4 che IPv6, lo strumento potrebbe selezionare una famiglia di indirizzi per impostazione predefinita. Per confrontare i percorsi, eseguire tracce separate per IPv4 e IPv6, dove supportato. Questo può aiutare a identificare se un problema di connettività riguarda una famiglia di indirizzi ma non l'altra.
Come leggere ogni salto
Inizia verificando il primo salto. In una rete domestica, è spesso il router locale. Se il primo salto risponde rapidamente, il tuo dispositivo può almeno raggiungere un router sulla rete locale. Se non risponde, questo da solo non prova un malfunzionamento locale perché il router potrebbe filtrare le risposte di diagnostica. Verifica se altri dispositivi locali e i servizi Internet funzionano prima di trarre una conclusione.
Inoltre, confronta i tempi di risposta man mano che il percorso procede. Un aumento improvviso e costante che continua attraverso i salti successivi potrebbe indicare un cambiamento nel percorso o un punto in cui inizia il ritardo di rete. Tuttavia, un alto tempo di risposta a un router seguito da tempi più bassi nei router successivi riflette spesso come quel router gestisce il traffico diagnostico, non necessariamente un ritardo che influisce sul traffico inoltrato.
Cerca l'ultimo salto che risponde, ma trattalo come un indizio invece che come una localizzazione definitiva del guasto. Il router successivo potrebbe filtrare i sondaggi, il percorso di ritorno potrebbe essere diverso o la rete di destinazione potrebbe bloccare il tipo di risposta che traceroute si aspetta.
Infine, confronta diversi test e, se possibile, prova una seconda destinazione nello stesso servizio o rete. Un singolo tracciamento può essere influenzato da congestionamenti temporanei o filtraggi. I pattern ottenuti da test ripetuti sono più informativi rispetto a un unico risultato isolato.
Cosa significa un asterisco?
Un asterisco (*) indica che traceroute non ha ricevuto una risposta al probe entro il periodo di attesa. Un router potrebbe aver comunque inoltrato il probe verso la destinazione. Potrebbe semplicemente aver rifiutato di inviare una risposta diagnostica.
Router e firewall spesso limitano i messaggi del Protocollo di Messaggi di Controllo Internet (ICMP) o altre risposte diagnostiche per proteggere le prestazioni e ridurre il traffico indesiderato. Alcune reti consentono il traffico delle applicazioni normali mentre filtrano i sondaggi traceroute. Di conseguenza, un tracciamento può mostrare uno o più asterischi e poi continuare con i salti che rispondono in seguito nel percorso.
Se ogni salto successivo a un certo punto mostra asterischi, il percorso potrebbe essere filtrato in quel punto, la destinazione potrebbe non essere raggiungibile o il traffico di ritorno potrebbe essere bloccato. Per distinguere questi casi, testa il servizio effettivo utilizzando l'applicazione corrispondente, ad esempio un browser web o un client SSH, e confronta i tracciamenti con altre destinazioni.
Tempi di risposta e latenza
I valori di tempo di Traceroute indicano quanto tempo è necessario per un'indagine per raggiungere un salto che risponde e per il ritorno della risposta. Includono ritardi di rete in entrambe le direzioni e possono essere influenzati da sovraccarico, coda e politica di risposta del router.
Un alto valore a un salto può essere ingannevole. I router privilegiano la trasmissione del traffico transitato rispetto alla risposta ai pacchetti diagnostici indirizzati a se stessi. Un router può impiegare molto tempo per rispondere a un traceroute mentre trasmette velocemente il traffico ordinario. Se i salti seguenti mostrano tempi di risposta più bassi, quel alto valore è meno probabile che rappresenti un ritardo persistente nel percorso dei dati.
Un modello più utile è un aumento del ritardo che inizia a un salto e rimane visibile in salti successivi e nella destinazione attraverso più test. Anche in questo caso, traceroute da solo non può dimostrare la causa esatta. Può indicare dove effettuare ulteriori indagini, ad esempio un passaggio tra provider, un collegamento congestionato o una segmento di rete distante.
Modelli comuni di Traceroute
Se il primo salto risponde ma i salti successivi non lo fanno, la rete locale potrebbe funzionare mentre una rete successiva filtra il traffico diagnostico. Verifica se il servizio di destinazione è raggiungibile prima di assumere che la connessione sia interrotta.
Se il tracciato raggiunge la destinazione ma l'applicazione continua a fallire, il percorso di rete potrebbe funzionare mentre il servizio ha un altro problema. Il server potrebbe rifiutare le connessioni, l'applicazione potrebbe non essere disponibile o un firewall potrebbe bloccare la porta specifica.
Se il tracciamento si ferma sempre nello stesso punto e la destinazione è inaccessibile, l'ultimo dispositivo di rete che risponde può aiutare a restringere dove richiedere supporto. Non identifica necessariamente il dispositivo responsabile, poiché il filtraggio e i percorsi di ritorno asimmetrici possono rendere il punto di arresto apparente ingannevole.
Se IPv4 funziona ma IPv6 non funziona, o viceversa, esegui tracce separate per ogni famiglia di indirizzi. I due percorsi potrebbero utilizzare fornitori diversi, router, politiche dei firewall o server di destinazione. Il confronto può rivelare se il problema è specifico di un lato della rete.
Traceroute e Tracert non sono identici
I comandi tracert e tracciamento percorso servono a scopi simili, ma i loro metodi di indagine e le opzioni possono variare in base al sistema operativo e all'implementazione. Windows tracert utilizza comunemente sondaggi ICMP Echo. Le implementazioni Unix-like possono utilizzare UDP di default, con alcune che supportano anche i modi di sondaggio ICMP o TCP.
È importante perché un firewall potrebbe permettere un tipo di sondaggio e bloccarne un altro. Due strumenti possono quindi produrre output diversi anche quando vengono eseguiti dallo stesso computer verso la stessa destinazione.
Alcuni implementazioni di traceroute permettono di selezionare il metodo di indagine. Ad esempio, le versioni di Linux possono supportare opzioni per indagini UDP, ICMP o TCP. Il tracciamento basato su TCP può essere utile quando le indagini normali vengono filtrate ma un particolare servizio TCP è raggiungibile. La sintassi delle opzioni varia, quindi consulta il manuale locale prima di fare affidamento su un flag specifico.
Quando si condividono i risultati con un amministratore di rete o un provider, includere il sistema operativo, il comando, le opzioni, la destinazione e l'ora approssimativa del test. Questo contesto li aiuta a interpretare le differenze tra i tracciamenti.
Traccia di percorso vs Ping
Test di ping verifica se una destinazione risponde a un determinato tipo di sondaggio di rete e misura il tempo di andata e ritorno. È utile per verificare la raggiungibilità di base, ma non mostra il percorso intermedio.
Il tracert tenta di rivelare la sequenza dei router che rispondono verso una destinazione. Può aiutare a restringere dove smettono le risposte o dove inizia un ritardo, ma è più sensibile al filtraggio e alle politiche di risposta dei router.
Questi strumenti rispondono a domande diverse. Utilizza ping per verificare se una destinazione risponde. Utilizza traceroute per ispezionare il percorso verso di essa. Nessuno di questi strumenti garantisce da solo che un sito web o un'applicazione siano in salute, poiché possono verificarsi problemi specifici dell'applicazione anche quando le indagini di rete di base hanno successo.
Un flusso di lavoro per il troubleshooting pratico
Inizia confermando il nome e l'indirizzo della destinazione. Se stai utilizzando un nome host, verifica che venga risolto correttamente. Esegui poi traceroute e annota il tempo, la famiglia di indirizzi, le opzioni del comando e la destinazione.
Testa la stessa destinazione più volte. Se l'output cambia in modo significativo, il problema potrebbe essere intermittente o la rotta potrebbe essere cambiata. Se il tracciamento è stabile ma l'applicazione fallisce, verifica se il servizio sta ascoltando, se un firewall blocca la sua porta e se il server restituisce un errore.
Confronta con un'altra destinazione ospitata dallo stesso provider o nella stessa regione. Se diverse destinazioni mostrano un problema simile a partire dallo stesso punto, ciò fornisce una maggiore indicazione che il segmento di rete interessato potrebbe meritare attenzione.
Se stai segnalando il problema a un fornitore di Internet o a un'azienda di hosting, fornisci l'output grezzo invece di dire solo "traceroute non riesce". Includi la destinazione, il tempo, il sistema operativo e se il servizio di destinazione è irraggiungibile. Questi dettagli rendono più facile l'indagine del report.
Limitazioni di Traceroute
Traceroute non mostra ogni router su Internet. Alcune reti nascondono o filtrano le loro risposte, e alcune rotte utilizzano tecnologie che rendono informazioni sui salti incomplete. Il bilanciamento del carico può anche inviare indagini diverse lungo percorsi diversi, quindi le righe adiacenti non rappresentano sempre un percorso end-to-end stabile.
I tempi di risposta non sono misurazioni dirette di quanto velocemente il router inoltra il traffico normale. Misurano il tempo per il sondaggio e la risposta, e i router possono trattare quei pacchetti diagnostici in modo diverso dal traffico applicativo regolare.
Traceroute non dimostra neppure chi possiede un indirizzo router, identifica la causa esatta della perdita di pacchetti o conferma che un percorso è autorizzato. I dati di routing e di registrazione pubblici richiedono verifiche separate. Per una panoramica più ampia di una risorsa IPv4 o IPv6 pubblica, utilizzare il Verifica della disponibilità delle risorse IP.
Domande frequenti
È sicuro utilizzare traceroute?
Traceroute è un strumento di diagnostica standard che invia probe di rete verso una destinazione. Eseguire alcuni test per il troubleshooting è normale. Evitare di generare traffico eccessivo o di sondare sistemi che non si amministrano a velocità elevate.
Perché traccia un percorso diverso ogni volta?
I network possono modificare le rotte, utilizzare il bilanciamento del carico o indirizzare il traffico attraverso diversi provider. Il traffico di probing può essere gestito in modo diverso rispetto al traffico delle applicazioni normali. Piccole differenze nel percorso non indicano automaticamente un guasto.
Un asterisco indica che un router è irraggiungibile?
No. Significa che traceroute non ha ricevuto una risposta al sondaggio entro il timeout. Il router potrebbe comunque inoltrare il traffico mentre filtra o limita le risposte di diagnostica.
Perché traccia non raggiunge un sito web?
La rete di destinazione o un firewall intermedio potrebbe bloccare il tipo di sondaggio. Il sito web potrebbe comunque essere raggiungibile tramite traffico HTTPS normale. Testa il servizio stesso prima di concludere che il percorso non sia disponibile.
Traceroute può identificare dove si verifica la perdita di pacchetti?
Può aiutare a identificare dove si interrompono le risposte, ma non può sempre dimostrare dove viene persa il traffico dell'applicazione. Confronta più esecuzioni, salti successivi e il servizio effettivo. Strumenti come mtr può fornire misurazioni ripetute, ma il suo output deve anche essere interpretato con attenzione.
Posso eseguire un traceroute a un indirizzo IPv6?
Sì. Windows, macOS e Linux supportano il tracciamento delle rotte IPv6, sebbene i nomi dei comandi e le opzioni siano diversi. Su Linux, traceroute -6 è comunemente supportato. Su Windows, tracert can trace IPv6 when given an IPv6 destination.
Traceroute ti aiuta a vedere quali router rispondono mentre il traffico viaggia dal tuo dispositivo verso una destinazione. Il primo salto è spesso la tua porta di accesso locale, e i salti successivi possono appartenere al tuo fornitore di Internet e ad altre reti prima di raggiungere la destinazione.
Usa tracert su Windows e tracciamento percorso su macOS o Linux. Controlla il primo salto, confronta i pattern di risposta nei salti successivi e ripeti il test quando i risultati sembrano insoliti. Asterischi e tempi di risposta elevati isolati sono comuni e non provano automaticamente che una rete sia danneggiata.
Le conclusioni più utili derivano dal combinare il traceroute con test delle applicazioni, verifiche DNS, misurazioni ripetute e report da altri utenti o reti. Tratta l'output come prova che aiuta a guidare l'indagine, piuttosto che come diagnosi completa in sé.
Per comprendere la parte della rete locale del percorso, continua con la nostra guida a gateway predefiniti. Per i controlli di indirizzamento e instradamento pubblici, consulta il Verifica della disponibilità delle risorse IP.