Comando traceroute: installazione, uso e opzioni -n, -I, -T
Per controllare hop per hop i router attraversati dai pacchetti fino alla destinazione, usa il comando traceroute. Sul server AlmaLinux 9.8 traceroute non era installato, quindi l'abbiamo installato con dnf, e tracciando il percorso verso example.com da un server Debian 12 con traceroute 2.1.2 la destinazione è stata raggiunta al settimo hop.
L'output seguente proviene dal server Debian 12, eseguito con un account normale, e solo l'output di rpm e dnf del capitolo sull'installazione viene dal server AlmaLinux 9.8 (account root). Il nome host del server è stato cambiato in server1, e gli indirizzi di router e destinazioni nei percorsi sono stati sostituiti con indirizzi di esempio (192.0.2.x, 198.51.100.x, 203.0.113.x). Anche il numero di release del pacchetto installato (la versione principale 2.1 non cambia) e l'orario dei metadati di dnf sono valori di esempio, mentre i tempi di risposta sono quelli misurati.
1️⃣ Installare traceroute
L'installazione predefinita di traceroute dipende dalla distribuzione. Sul server AlmaLinux 9.8 l'esecuzione ha restituito [traceroute: command not found], e anche la ricerca con rpm non ha trovato alcun pacchetto installato.
rpm -q traceroutepackage traceroute is not installedNella famiglia RHEL si installa con dnf. Un'anteprima con [--assumeno] ha mostrato un solo pacchetto da installare, traceroute dal repository baseos, senza altri pacchetti.
dnf install --assumeno tracerouteLast metadata expiration check: 0:05:00 ago on Thu Oct 29 09:00:00 2026.
Dependencies resolved.
================================================================================
Package Architecture Version Repository Size
================================================================================
Installing:
traceroute x86_64 3:2.1.0-9.el9 baseos 56 k
Transaction Summary
================================================================================
Install 1 Package
Total download size: 56 k
Installed size: 107 k
Operation aborted.La dimensione del download era di 56k e quella dopo l'installazione di 107k. [--assumeno] risponde no a tutte le domande, quindi non installa nulla e termina con [Operation aborted.] (secondo la documentazione ufficiale di dnf).
L'installazione vera e propria è stata fatta con [dnf install traceroute], senza [--assumeno].
dnf install tracerouteLast metadata expiration check: 0:20:00 ago on Thu Oct 29 09:00:00 2026.
Dependencies resolved.
================================================================================
Package Architecture Version Repository Size
================================================================================
Installing:
traceroute x86_64 3:2.1.0-9.el9 baseos 56 k
Transaction Summary
================================================================================
Install 1 Package
Total download size: 56 k
Installed size: 107 k
Downloading Packages:
traceroute-2.1.0-9.el9.x86_64.rpm 3.6 MB/s | 56 kB 00:00
--------------------------------------------------------------------------------
Total 97 kB/s | 56 kB 00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : traceroute-3:2.1.0-9.el9.x86_64 1/1
Running scriptlet: traceroute-3:2.1.0-9.el9.x86_64 1/1
Verifying : traceroute-3:2.1.0-9.el9.x86_64 1/1
Installed:
traceroute-3:2.1.0-9.el9.x86_64
Complete!Sotto [Installed:] è comparso solo il pacchetto traceroute, e l'installazione è terminata con [Complete!] senza pacchetti di dipendenza.
Dopo l'installazione abbiamo controllato la versione con [traceroute --version].
traceroute --versionModern traceroute for Linux, version 2.1.0
Copyright (c) 2016 Dmitry Butskoy, License: GPL v2 or any laterIl percorso dell'eseguibile trovato con [command -v traceroute] era [/usr/bin/traceroute].
Nella famiglia Debian, installa il pacchetto traceroute dal repository della distribuzione con [apt install traceroute] (secondo le informazioni ufficiali sui pacchetti Debian). Controlla la versione installata con --version.
traceroute --versionModern traceroute for Linux, version 2.1.2
Copyright (c) 2016 Dmitry Butskoy, License: GPL v2 or any laterSul server Debian 12 il pacchetto traceroute era già installato, e la versione è comparsa come [Modern traceroute for Linux] 2.1.2.
2️⃣ Come usare il comando traceroute
traceroute riceve un nome o un indirizzo IP di destinazione e invia pacchetti con un TTL che parte da 1 e aumenta di uno alla volta. Un pacchetto con TTL 1 scade al primo router, uno con TTL 2 al secondo. Dalle risposte [time exceeded] restituite da quei router, traceroute stampa l'indirizzo e il tempo di andata e ritorno di ogni hop (secondo il manuale ufficiale).
Quando un pacchetto raggiunge la destinazione, questa risponde con [port unreachable] e la traccia termina a quell'hop; altrimenti continua fino al numero massimo di hop. Secondo il manuale ufficiale vengono inviati tre pacchetti per hop, quindi ogni riga mostra tre tempi, e per impostazione predefinita si controllano fino a 30 hop.
Per example.com abbiamo stampato solo gli indirizzi con -n e controllato solo fino al decimo hop con -m 10.
traceroute -n -m 10 example.comtraceroute to example.com (203.0.113.154), 10 hops max, 60 byte packets
1 192.0.2.1 0.110 ms 0.083 ms 0.067 ms
2 192.0.2.2 0.348 ms 0.273 ms 0.263 ms
3 198.51.100.77 0.426 ms 0.337 ms 198.51.100.13 1.251 ms
4 198.51.100.49 0.968 ms 1.264 ms 198.51.100.53 1.148 ms
5 * * *
6 203.0.113.19 1.631 ms 203.0.113.25 2.549 ms 203.0.113.14 1.543 ms
7 203.0.113.154 1.544 ms 1.656 ms 1.607 msLa prima riga ha mostrato il nome di destinazione, l'indirizzo realmente usato, il numero massimo di hop e la dimensione del pacchetto di 60 byte. L'indirizzo di destinazione ha risposto al settimo hop, quindi la traccia è terminata senza arrivare al decimo, e l'intera esecuzione ha richiesto meno di un secondo.
| Output | Significato |
|---|---|
| traceroute to example.com (203.0.113.154) | Nome di destinazione e indirizzo risolto a cui i pacchetti sono stati realmente inviati |
| 10 hops max | Numero massimo di hop controllati — si imposta con -m, predefinito 30 |
| 60 byte packets | Dimensione dei pacchetti inviati — 60 byte predefiniti per IPv4, 80 byte per IPv6 (secondo il manuale ufficiale) |
| 1 | Numero di hop — il valore TTL impostato su quel pacchetto |
| 192.0.2.1 | Indirizzo del router che ha risposto a quell'hop |
| 0.110 ms 0.083 ms 0.067 ms | Tempi di andata e ritorno dei tre pacchetti inviati a un hop |
| 198.51.100.77 … 198.51.100.13 | Riga con due indirizzi perché router diversi hanno risposto a pacchetti diversi nello stesso hop |
| * * * | Nessuno dei tre pacchetti ha ricevuto risposta in tempo — ogni asterisco è un pacchetto |
| !H · !N · !P · !X | Simbolo di irraggiungibilità dopo il tempo — host, rete o protocollo irraggiungibile, vietato dall'amministratore (secondo il manuale ufficiale) |
Il terzo e il quarto hop hanno mostrato due indirizzi su una riga, il sesto hop tre. Quando router diversi rispondono ai tre pacchetti inviati a un hop, traceroute stampa di seguito tutti gli indirizzi che hanno risposto, come descrive il manuale ufficiale.
Senza -n, traceroute converte gli indirizzi che rispondono in nomi host.
traceroute localhosttraceroute to localhost (127.0.0.1), 30 hops max, 60 byte packets
1 server1 (127.0.0.1) 0.068 ms 0.048 ms 0.028 msEseguendolo su localhost, la colonna dell'hop ha mostrato il nome host del server Debian 12, con l'indirizzo 127.0.0.1 tra parentesi.
3️⃣ Opzioni di traceroute
Il --help di traceroute 2.1.2 elenca 34 opzioni. Tra queste abbiamo provato con un account normale sul server Debian 12 -n, -q e -m, che cambiano l'output, e -I e -T, che cambiano i pacchetti inviati.
[traceroute -n] stampa solo gli indirizzi IP, senza convertirli in nomi host. Con -n sullo stesso localhost, nella colonna dell'hop è rimasto solo 127.0.0.1.
traceroute -n localhosttraceroute to localhost (127.0.0.1), 30 hops max, 60 byte packets
1 127.0.0.1 0.073 ms 0.075 ms 0.025 ms-q imposta il numero di pacchetti inviati per hop, e il valore predefinito è 3. Con -q 1 è comparso un solo tempo, con -q 5 ne sono comparsi cinque.
traceroute -q 1 -n 127.0.0.1traceroute to 127.0.0.1 (127.0.0.1), 30 hops max, 60 byte packets
1 127.0.0.1 0.096 mstraceroute -q 5 -n 127.0.0.1traceroute to 127.0.0.1 (127.0.0.1), 30 hops max, 60 byte packets
1 127.0.0.1 0.083 ms 0.028 ms 0.024 ms 0.022 ms 0.022 ms-m cambia il numero massimo di hop controllati. Il valore 256 è stato rifiutato con [max hops cannot be more than 255].
traceroute -m 256 -n 127.0.0.1max hops cannot be more than 255Per impostazione predefinita i pacchetti vengono inviati via UDP. -I li invia come ICMP ECHO, -T come TCP SYN (porta 80 predefinita). Queste due opzioni servono a ricontrollare con un altro tipo di pacchetto un percorso che filtra UDP. Con un account normale, entrambe le opzioni hanno lasciato un messaggio di permessi insufficienti e sono terminate con il codice di uscita 1.
traceroute -I -n 127.0.0.1You do not have enough privileges to use this traceroute method.
socket: Operation not permittedtraceroute -T -n 127.0.0.1You do not have enough privileges to use this traceroute method.
socket: Operation not permittedIl manuale ufficiale indica il metodo predefinito e -U (porta di destinazione 53 fissa) come i metodi consentiti agli account normali. -I funziona con un account normale solo se l'impostazione del kernel ping_group_range consente il gruppo di quell'account.
cat /proc/sys/net/ipv4/ping_group_range1 0Il valore del server Debian 12 era [1 0], che secondo la documentazione del kernel Linux non consente alcun gruppo. -T non rientra tra i metodi consentiti agli account normali indipendentemente da questa impostazione, quindi esegui queste due opzioni da un account con permessi root.
📌 Opzioni principali: risultati di questo articolo
| Opzione | Compito | Risultato in questo articolo |
|---|---|---|
| -n | Stampa solo gli indirizzi IP, senza convertirli in nomi host | Su localhost, nella colonna dell'hop è rimasto solo 127.0.0.1 |
| -q | Imposta il numero di pacchetti inviati per hop (predefinito 3) | -q 1 mostra un tempo, -q 5 ne mostra cinque |
| -m | Imposta il numero massimo di hop controllati (predefinito 30) | Con -m 10, example.com è terminato al settimo hop; -m 256 è stato rifiutato con [max hops cannot be more than 255] |
| -I | Invia i pacchetti come ICMP ECHO | Messaggio di permessi insufficienti e codice di uscita 1 con un account normale |
| -T | Invia i pacchetti come TCP SYN (porta 80 predefinita) | Messaggio di permessi insufficienti e codice di uscita 1 con un account normale |
| -U | Invia via UDP con la porta di destinazione fissa a 53 | example.com ha mostrato * * * dal settimo al decimo hop, e l'indirizzo di destinazione non è comparso |
📎 Altre opzioni: secondo il manuale ufficiale
| Opzione | Compito |
|---|---|
| -w | Imposta il tempo massimo di attesa di una risposta (predefinito 5 secondi) |
| -p | Imposta la porta (porta iniziale per UDP, porta di destinazione fissa per TCP, numero di sequenza iniziale per ICMP) |
| -f | Imposta il TTL iniziale (predefinito 1) |
| -N | Imposta il numero di pacchetti inviati contemporaneamente (predefinito 16; riducilo con i router che limitano la velocità di risposta) |
| -s | Cambia l'indirizzo di origine con un altro indirizzo di interfaccia del server |
| -i | Imposta l'interfaccia di rete da cui escono i pacchetti (per impostazione predefinita segue la tabella di routing) |
| -4 | Invia solo via IPv4 (IPv4 è il predefinito se un nome restituisce indirizzi IPv4 e IPv6) |
| -6 | Invia solo via IPv6 |
🔲 Simulatore del comando traceroute
Nel simulatore qui sotto puoi accorciare il percorso di example.com con -m, oppure provare su 127.0.0.1 e localhost -n, -q, -f (hop iniziale) e le opzioni -I e -T, che richiedono permessi.
4️⃣ Hop senza risposta in traceroute
Anche se puoi cambiare il metodo di invio, un hop che non risponde resta [* * *]. Secondo il manuale ufficiale, ogni asterisco è un pacchetto senza risposta in tempo, e l'attesa è al massimo di 5 secondi.
Vedendo * * * su un hop intermedio è facile pensare che il percorso si interrompa lì. Sul percorso verso example.com inviato con il metodo predefinito, solo il quinto hop era * * *, ma i pacchetti hanno superato quell'hop, sono passati dal sesto e hanno raggiunto la destinazione al settimo.
-U invia con la porta di destinazione fissa a 53. Inviando pacchetti allo stesso example.com con -U, il router prima della destinazione ha risposto al sesto hop, poi * * * è continuato dal settimo al decimo hop e l'indirizzo di destinazione non è comparso.
traceroute -U -n -m 10 example.comtraceroute to example.com (203.0.113.154), 10 hops max, 60 byte packets
1 192.0.2.1 0.176 ms 0.096 ms 0.661 ms
2 * * *
3 198.51.100.13 0.622 ms 0.586 ms 0.562 ms
4 198.51.100.49 0.898 ms 1.314 ms 198.51.100.53 1.159 ms
5 * * *
6 203.0.113.9 3.773 ms 203.0.113.27 3.275 ms 203.0.113.14 8.973 ms
7 * * *
8 * * *
9 * * *
10 * * *Il manuale ufficiale spiega che con -U il programma sul lato di destinazione di solito non risponde, quindi l'ultimo hop non si vede. Anche su un percorso in cui un firewall filtra le porte UDP di traceroute o ICMP ECHO, da dietro quel firewall non arrivano risposte e continua solo * * *.
| Dove compare * * * | Come leggerlo | Ricontrolla |
|---|---|---|
| Un singolo hop intermedio | Nessuna risposta da quell'hop — se gli hop successivi rispondono, i pacchetti l'hanno superato | Lascialo così e leggi gli hop successivi |
| Prima della destinazione, fino a -m | La destinazione o un firewall davanti a essa filtra quel pacchetto o quella porta (secondo il manuale ufficiale) | Metodo predefinito / -T (root) / [-T -p porta] |
| Hop che cambiano a ogni esecuzione | Se un router limita la velocità di risposta ICMP, alcune risposte possono mancare (secondo il manuale ufficiale) | [-N 1] · [-w 5] |
Se si è fermato prima della destinazione, cambia il metodo di invio e ricontrolla. Il manuale ufficiale presenta -T come un metodo pensato per attraversare i firewall. Per una destinazione con una porta chiaramente aperta, come un server di posta, spiega che indicare quella porta come in [-T -p 25] può arrivare anche quando -I non arriva.
L'* di un hop intermedio può cambiare anche in base al metodo di invio o all'esecuzione. Il secondo hop ha risposto con il metodo predefinito, ma con -U è comparso come * * *. Il manuale ufficiale dice che alcune risposte possono mancare se un router limita la velocità di risposta ICMP, e consiglia di ridurre i pacchetti inviati contemporaneamente con [-N 1]. traceroute riduce anche l'attesa in base ai tempi di risposta già ricevuti; se per questo l'* compare troppo presto, indica un solo tempo di attesa come in [-w 5] per disattivare quel calcolo (secondo il manuale ufficiale).
5️⃣ tracepath al posto di traceroute
Su un server dove non puoi installare pacchetti, controlla lo stesso percorso con il comando tracepath. Il server AlmaLinux 9.8 non aveva traceroute, ma aveva tracepath, come iputils 20210202. Il server Debian 12, invece, non aveva tracepath. Secondo il manuale ufficiale di tracepath, si esegue senza permessi root, ma ha meno opzioni e invia solo UDP. Perciò, quando devi cambiare il metodo di invio con -I o -T, o inviare più pacchetti per hop con -q per confrontarli, installa e usa traceroute.
🔢 FAQ & contenuti consigliati
Rete · Configurazione
[Linux] Comando ip: gestire interfacce di rete e impostazioni
Il comando ip controlla e gestisce lo stato delle interfacce di rete, gli indirizzi IP e la tabella di routing.
Firewall · Ubuntu
[Ubuntu] Configurare il firewall UFW di Ubuntu
Configurazione per attivare UFW, il firewall predefinito di Ubuntu, e controllarne stato e regole.
Rete · DNS
Comando host di Linux | comando di interrogazione DNS
Il comando host interroga il DNS per convertire i nomi host in indirizzi IP e gli indirizzi IP in nomi host.
ℹ️ 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.