GNU/Linux >> Linux Esercitazione >  >> Linux

16 Esempi pratici di comando traceroute in Linux

Internet è un vasto sistema di rete pieno di database, server, router e altre strutture web. Quando digiti un indirizzo web e premi il pulsante Invio sul tuo browser web, questo viene instradato attraverso la tua connessione Internet all'indirizzo host tramite il web. A metà della destinazione, quando il tuo pacchetto inizia il viaggio dal computer e raggiunge il server di destinazione, viaggia molto all'interno del web. Molti strumenti Linux, Windows e Mac ti consentono di tenere traccia di ogni passaggio del tuo pacchetto Internet. Il comando traceroute è uno degli strumenti più utilizzati che puoi utilizzare su Linux per tenere traccia di ogni passaggio, stato in tempo reale, potenza della connessione, latenza e molti altri relativi ai tuoi pacchetti Internet.

Comando ping e traceroute su Linux

Senza dubbio, Ping è il comando di rete più utilizzato e semplice che mostra se l'indirizzo di destinazione è attivo o meno. La differenza tra il comando Ping e traceroute è che Ping rileva solo se il server o l'indirizzo è attivo o meno semplicemente inviando un pacchetto e analizzando il segnale.

Considerando che il comando traceroute può eseguire molti più problemi di rete e determinare il percorso della rete per raggiungere l'indirizzo di destinazione. Il comando traceroute può anche prevedere la quantità di tempo necessaria per caricare una pagina Web, rilevare i router sull'indirizzo Web, i nomi host, i nomi dei server DNS e molti altri.

Quando eseguiamo il comando Ping su un sistema di rete, il comando invia automaticamente quattro pacchetti di dati al sito di destinazione; e se uno di loro raggiunge il sito, il comando determina che il sito è collegabile e determina quanti secondi sono stati necessari per stabilire la connessione.

Ecco un formato di comando del comando Ping per Linux: 

ping <IP address>
ping <domain name>

Il comando traceroute ci dice di più sulla destinazione e quanti millisecondi ci vorranno per raggiungere il sito. A differenza del comando Ping, il comando traceroute ci dice gli indirizzi Ip di ogni dispositivo e calcola il tempo di andata e ritorno dei dati da ogni router invece di misurare l'unica destinazione finale. Conta anche il numero totale di salti sul percorso.

Ecco un formato di comando del comando traceroute per Linux: 

- -
traceroute <ip_address>

Differenza tra Traceroute e Mtr e Tracert su Linux

Sono sicuro che hai già sentito parlare del comando traceroute, del comando mtr e del comando tracert per tracciare i dati in un modello di rete. In Linux e Mac, possiamo usare il comando traceroute, in cui la versione Windows del comando traceroute è il comando tracert. Fondamentalmente, traceroute e tracert sono gli stessi comandi.

Ora vedremo la differenza tra il comando traceroute e il comando mtr. La forma completa dell'MTR è TraceRoute di Matt, che è un comando modificato del comando traceroute. In traceroute, i pacchetti vengono tracciati mentre viaggiano su una rete IP verso un host specifico.

Esempio di comando traceroute:

$ traceroute 1.1.1.1
traceroute to 1.1.1.1 (1.1.1.1), 30 hops max, 60 byte packets
1  192.168.1.1 (192.168.1.1)  0.265 ms  0.248 ms  0.239 ms
2  * * *
3  X-X-X-X.X.X.pl (X.X.X.X)  21.871 ms  22.061 ms  25.072 ms
(more data here)
10  one.one.one.one (1.1.1.1)  24.072 ms  22.439 ms  21.497 ms

L'MTR è un unico strumento diagnostico di rete che combina funzioni traceroute e ping. L'MTR stampa alcuni degli output di traceroute insieme ai risultati del ping.

Esempio di comando MTR:

$ mtr 1.1.1.1 -c 5 --report
Start: 2019-08-09T15:13:28+0200
HOST: blackhole                   Loss%   Snt   Last   Avg  Best  Wrst StDev
  1.|-- 192.168.1.1                0.0%     5    0.2   0.1   0.1   0.2   0.0
  2.|-- X-X-X-X.X.X                0.0%     5    9.7   9.0   8.4   9.7   0.5
  3.|-- X-X-X-X.X.X                0.0%     5    9.6   8.6   6.2   9.8   1.5
  (more data here)
  10.|-- one.one.one.one            0.0%     5   12.8  13.4  10.7  18.9   3.3

Come funziona il comando Traceroute su Linux?

Il pacchetto dal nostro sistema all'indirizzo host viaggia attraverso il router, i punti di accesso e le interfacce di rete. Per determinare il percorso effettivo del pacchetto di dati, il comando traceroute utilizza l'intestazione IP, l'Internet Control Message Protocol (ICMP) e gli strumenti TTL o time-to-live su un sistema di rete.

Il monitoraggio del pacchetto Internet potrebbe essere meno complicato quando si utilizza una connessione LAN molto piccola sul sistema. Quando si entra in una rete geografica, è necessario il comando traceroute per leggere l'intestazione dei dati per misurare la lunghezza, l'origine e la destinazione e il protocollo.

Il comando traceroute utilizza il protocollo TCP per stabilire la connessione. E il valore TTL a 8 bit ci fornisce anche i numeri del contatore TTL che determinano il numero totale di incontri tra il pacchetto di dati e la destinazione tramite i router. Il pacchetto riceve un errore di timeout quando il valore TTL è uno. E l'ICMP invia un messaggio dalla fonte alla destinazione del pacco che garantisce il timeout.

Sintassi di traceroute su Linux

Qui vedremo le sintassi di base del comando traceroute in Linux. Comprendere le sintassi ti aiuterà sicuramente a comprendere tutti gli esempi del comando traceroute che elencheremo di seguito.

Ecco il formato del comando:

traceroute [options]  host_Address [pathlength]
  • -f, –first-hop=NUM:imposta la distanza tra il primo e il successivo.
  • -g, –gateways=GATES:nel routing aperto, mostra un elenco di gateway.
  • -I, –ICMP:come sonda, viene specificato ICMP ECHO.
  • -m, –max-hop=NUM:imposta il numero di salti; il valore predefinito è 64.
  • -M, –type=METHOD:i traceroute sono condotti con ICMP o UDP; il metodo predefinito è UDP.
  • -p, –port=PORT:Definisce la porta di rete; il valore predefinito è 33434.
  • -q, –tries=NUM:verranno inoltrati NUM pacchetti probe per hop.
  • –resolve-hostnames:puoi usare questa sintassi per correggere i nomi host.
  • -t, –tos=NUM:il TOS o il tipo di servizio è definito nel NUM
  • -w, –wait=NUM:Definisce il tempo di attesa in secondi.
  • -? –help:stampa la guida e le guide manuali per il comando traceroute su Linux.
  • –usage:mostra l'utilizzo in un breve testo.
  • -V, –version:stampa la versione corrente del comando traceroute su Linux.

Installa il comando Traceroute in Linux

Il processo di installazione del comando traceroute nelle distribuzioni Linux è semplice. Nei sistemi Windows e Mac, lo strumento traceroute è preinstallato. In Linux, devi prima installarlo. Qui ho elencato i comandi di installazione per i sistemi Ubuntu/Debian, RedHat, Fedora e Arch Linux.

Installa il comando traceroute su Arch Linux.

sudo pacman -Sy traceroute

Ottieni il comando traceroute su Ubuntu/Debian Linux.

sudo apt-get install traceroute

Installa lo strumento traceroute sui sistemi Fedora e Red Hat Linux.

# yum install traceroute -y

Al termine dell'installazione, puoi controllare la versione di traceroute per assicurarti che lo strumento sia installato correttamente sulla tua macchina Linux.

$ traceroute --version

Esempi del comando Traceroute in Linux

Vedremo ora alcuni utili e pratici esempi di vita reale del comando traceroute che dovresti imparare. Il comando traceroute funziona senza problemi con tutte le principali distribuzioni Linux sia su desktop che su server.

1. Esegui Traceroute per ottenere una panoramica 

Il comando traceroute sotto indicato ci mostra l'indirizzo IP, il numero totale di hop nell'intero percorso, la durata totale per stabilire la connessione e la dimensione dei packer.

traceroute ubuntupit.com

2. Nascondere i nomi dei dispositivi

Se vuoi nascondere il nome dei dispositivi di rete sull'output del comando traceroute, aggiungi il  -n firmare sul comando.

traceroute -n  ubuntupit.com

3. Impostazione del valore di timeout traceroute

Nonostante abbia un valore di timeout predefinito del comando traceroute, puoi impostare manualmente il valore di timeout da solo. Il comando traceroute menzionato di seguito mostra come impostare il valore di timeout su 7 secondi in Linux.

traceroute -w 7.0 ubuntupit.com

4. Impostazione del numero di test

Per impostare il numero di test o il numero di query per hop per un'esecuzione del comando traceroute su Linux, puoi utilizzare il comando seguente.

traceroute -q 1 ubuntupit.com

5. Impostazione del valore TTL iniziale

L'uso della sintassi -f flag sul comando traceroute ti consentirà di impostare il valore TTL o il valore dello strumento time-to-live su Linux.

traceroute -f 11 ubuntupit.com

6. Memorizza il risultato in un file di testo

Puoi esportare i risultati del comando traceroute in un file di testo tramite il comando fornito di seguito su Linux.

traceroute google.com > results.txt

7. Traccia il percorso utilizzando IPv6

Se la tua connessione Internet ha una configurazione IPv6, puoi utilizzare il comando traceroute di seguito indicato per tracciare la connessione.

traceroute -6 ipv6.google.com

8. Traccia il percorso utilizzando Ipv4

Allo stesso modo, puoi anche definire una connessione IPv4 tramite il comando traceroute di seguito su Linux.

traceroute 4 google.com 

9. Specificare l'interfaccia (NIC) da utilizzare

Se il tuo sistema Linux ha più di una scheda di interfaccia di rete (NIC), puoi assegnare a una delle tue NIC l'uso del comando traceroute con il flag -i che menziona il nome della NIC.

traceroute -i enp8s0 google.com

Se hai bisogno di conoscere il nome della tua scheda di interfaccia di rete, puoi eseguire il comando ifconfig.

$ ifconfig

10. Imposta il tempo di attesa della risposta

Per modificare il tempo di attesa della risposta predefinito del comando traceroute, puoi usare un flag -w sul comando traceroute su Linux. Questa piccola modifica darebbe al tuo pacchetto dati di viaggiare un po' di più per raggiungere l'indirizzo di destinazione.

traceroute -w 1 google.com

11. Disabilita la mappatura dell'indirizzo IP e del nome host

Per disabilitare l'indirizzo IP e nascondere la mappatura dell'host su Linux, utilizzare un segno n sul comando traceroute. Ciò consentirà all'utente di non stampare l'indirizzo IP dell'host e il nome host.

traceroute n google.com 

12. Imposta il Numero massimo di salti

Per impostazione predefinita, il numero medio di hop del comando traceroute è 30. È possibile modificare il valore di hop sul comando traceroute aggiungendo il valore di hop con un flag -m sul comando.

traceroute -m 7 google.com 

13. Non frammentare il pacchetto

Se non vuoi frammentare il pacchetto di dati sul tuo sistema Linux, usa il flag -F sul tuo comando traceroute.

$ traceroute -F google.com

14. Instrada il pacchetto attraverso il cancello

Se vuoi instradare il comando traceroute attraverso il gateway desiderato, puoi usare il segno -g insieme al comando per aggiungere il tuo gateway al comando Linux.

$ traceroute -g 192.168.1.6 google.com

15. Imposta la porta di destinazione da utilizzare

Per impostazione predefinita, il comando traceroute utilizza la porta di rete 33434. Se è necessario modificare la porta di rete, è possibile utilizzare il segno -p sul comando traceroute su Linux.

$ traceroute  -p 20292 google.com

16. Ottenere aiuto

Se hai bisogno di più aiuto e manuali per il comando traceroute, esegui i comandi sotto menzionati sulla shell. I manuali ti aiuteranno sicuramente a iniziare con lo strumento.

traceroute --help  
man traceroute 

Problemi che potresti incontrare utilizzando il comando Traceroute

Durante l'utilizzo del comando traceroute in Linux, potresti riscontrare alcuni problemi se sei nuovo. Qui abbiamo elencato alcuni dei problemi più affrontati per il comando traceroute da diversi utenti della comunità Linux.

1. Problema con il -n Segnala in T Comando raceroute su Linux

In precedenza, abbiamo visto che puoi usare un flag n con il comando traceroute in Linux per nascondere il nome del dispositivo. Se riscontri problemi durante l'utilizzo del flag n sulla tua shell e ti dà un'opzione non valida, devi assicurarti di avere lo strumento traceroute corretto installato sul tuo sistema. Puoi anche provare a eseguire i comandi indicati di seguito per un'installazione alternativa sul tuo sistema.

Ecco l'output di esempio.

$ sudo traceroute -n . Not working
$ traceroute: invalid option -- 'n'

Comandi per riparare lo strumento traceroute su una macchina Linux.

$ update-alternatives --display traceroute
$ apt-get install traceroute
$ update-alternatives --configure traceroute

2. I pacchetti non possono essere autenticati:problema con il comando Traceroute

Se lo strumento traceroute non può essere autenticato nel tuo sistema Linux, assicurati di essere l'utente sudo e di avere l'autorizzazione appropriata per eseguire questo comando sul tuo sistema. Dopo esserti assicurato che questo strumento sia installato correttamente, ora puoi aggiornare il repository del tuo pacchetto con il comando sudo update menzionato di seguito.

sudo apt-get install traceroute
sudo apt-get update

È quindi possibile eseguire il comando traceroute desiderato e, si spera, i problemi verranno risolti.

3. Le versioni più recenti di Traceroute potrebbero presentare problemi

In alcuni casi, in alcuni dispositivi meno recenti, l'ultima versione del comando traceroute potrebbe mostrare alcuni problemi. Ad esempio, se si desidera eseguire il comando traceroute con il flag -A per definire il percorso del comando, è possibile che si verifichi un problema.

Esempio di output di errore:

~$ traceroute -A 8.8.8.8
traceroute -m 30 -q 1 -w 3 -A 8.8.8.8
traceroute: invalid option -- 'A'
Try 'traceroute --help' or 'traceroute --usage' for more information.
 -A     Perform AS path lookups in routing registries and print  results
          directly after the corresponding addresses.   

Questo problema viene spesso risolto automaticamente dopo un aggiornamento del repository. Se il problema persiste, riavvia il dispositivo, esegui il comando correttamente e assicurati che il comando non contenga errori di battitura.

~$ traceroute -A 8.8.8.8 
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets

4. Errore di installazione di Traceroute in Linux

Se si riscontrano problemi durante l'installazione del comando traceroute sulla propria macchina Linux, assicurarsi che il percorso che si sta assegnando all'installazione sia disponibile per l'installazione del pacchetto. Devi anche assicurarti di avere il privilegio di superutente per installare quello strumento. Nella maggior parte dei casi, gli utenti continuano a provare a installare il comando traceroute all'interno di una directory bloccata e ottengono un errore di autorizzazione negata.

Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable  to lock the administration  directory (/var/lib/dpkg/), are you root?

È possibile eseguire uno qualsiasi dei set di comandi indicati di seguito per risolvere questo problema. Non dimenticare di riparare il repository mancante e installare il comando traceroute su Linux.

sudo apt-get install --fix-missing  
sudo apt-get update && sudo apt-get install traceroute 

Ottieni il repository dell'universo e installa il comando traceroute.

sudo add-apt-repository universe
sudo apt-get update
sudo apt-get install inetutils-traceroute

5. Rimuovi parentesi () intorno all'indirizzo IP su Traceroute in Linux

A volte potresti ottenere l'indirizzo IP di output all'interno della prima parentesi o tra parentesi nella shell del terminale.

Ecco un esempio di output:

traceroute -m2 8.8.8.8 |grep .net |awk '{print $3}'
(207.225.112.2)

Per rimuovere le parentesi dall'output, eseguire il comando indicato di seguito.

$ traceroute -m 2 8.8.8.8 | awk '/net/{gsub(/\(|\)/,"");print $3}'             
Or
$ traceroute -m 2 8.8.8.8 | awk '/.net/{print $3}'  |  tr -d '()'
207.225.112.2

Le ultime parole

L'utilizzo dello strumento traceroute per la risoluzione dei problemi di rete può rendere il tuo compito più semplice ed efficiente. Potrebbero volerci alcuni giorni prima che gli utenti principianti inizino con questo comando, ma una volta che ti sarai abituato a questo strumento, scoprirai quanto ti piace usarlo su Linux.

Nell'intero post, abbiamo descritto molte cose sul comando traceroute in Linux. Ho cercato di illustrare il comando traceroute nel modo più semplice possibile. Spero che questo post ti sia stato utile; se sì, condividi questo post con i tuoi amici e la comunità Linux. Puoi anche scrivere le tue opinioni su questo post nella sezione commenti.


Linux
  1. Comando cp in Linux:7 esempi pratici

  2. Comando di arresto di Linux:5 esempi pratici

  3. 5 Esempi pratici del comando dd in Linux

  4. 7 Esempi di comandi Linux df

  5. Esempi di comandi rm in Linux

12 Esempi pratici di In Command in Linux

15 esempi pratici di comando Rsync in Linux

5 esempi pratici di Tail Command in Linux

echo Command in Linux:7 esempi pratici

Pratico comando Ping negli esempi di Linux

Esempi di comandi id in Linux