GNU/Linux >> LINUX-Kenntnisse >  >> Linux

16 Praktische Beispiele für den Traceroute-Befehl unter Linux

Das Internet ist ein riesiges Netzwerksystem voller Datenbanken, Server, Router und anderer Webstrukturen. Wenn Sie eine Webadresse eingeben und die Eingabetaste in Ihrem Webbrowser drücken, wird sie über Ihre Internetverbindung über das Web zur Hostadresse geleitet. In der Mitte des Ziels, wenn Ihr Paket die Reise vom Computer beginnt und den Zielserver erreicht, reist es viel innerhalb des Webs. Viele Linux-, Windows- und Mac-Tools ermöglichen es Ihnen, jeden Schritt Ihres Internetpakets zu verfolgen. Der Traceroute-Befehl ist eines der am häufigsten verwendeten Tools, das Sie unter Linux verwenden können, um jeden Schritt, Live-Status, Verbindungsstärke, Latenz und vieles mehr in Bezug auf Ihre Internetpakete zu verfolgen.

Ping vs. Traceroute-Befehl unter Linux

Zweifellos ist Ping der am häufigsten verwendete und einfachste Netzwerkbefehl, der anzeigt, ob die Zieladresse aktiv ist oder nicht. Der Unterschied zwischen dem Ping- und dem Traceroute-Befehl besteht darin, dass Ping nur durch Senden eines Pakets und Analysieren des Signals erkennt, ob der Server oder die Adresse aktiv ist oder nicht.

Während der Traceroute-Befehl viel mehr Netzwerkfehlerbehebung durchführen und den Pfad des Netzwerks bestimmen kann, um die Zieladresse zu erreichen. Der Traceroute-Befehl kann auch die Zeit zum Laden einer Webseite vorhersagen, die Router an der Webadresse, die Hostnamen, die DNS-Servernamen und vieles mehr erkennen.

Wenn wir den Ping-Befehl auf einem Netzwerksystem ausführen, sendet der Befehl automatisch vier Datenpakete an die Zielseite; und wenn einer von ihnen die Site erreicht, bestimmt der Befehl, dass die Site verbunden werden kann, und es bestimmt, wie viele Sekunden es gedauert hat, die Verbindung herzustellen.

Hier ist ein Befehlsformat des Ping-Befehls für Linux: 

ping <IP address>
ping <domain name>

Der Traceroute-Befehl sagt uns mehr über das Ziel und wie viele Millisekunden es dauert, um die Site zu erreichen. Im Gegensatz zum Ping-Befehl teilt uns der Traceroute-Befehl die IP-Adressen jedes Geräts mit und berechnet die Umlaufzeit der Daten von jedem Router, anstatt das einzige Endziel zu messen. Es zählt auch die Gesamtzahl der Sprünge auf dem Pfad.

Hier ist ein Befehlsformat des Traceroute-Befehls für Linux: 

- -
traceroute <ip_address>

Unterschied zwischen Traceroute und Mtr und Tracert unter Linux

Ich bin sicher, Sie haben bereits von den Befehlen „traceroute“, „mtr“ und „tracert“ zum Verfolgen der Daten in einem Netzwerkmodell gehört. Unter Linux und Mac können wir den Traceroute-Befehl verwenden, wobei die Windows-Version des Traceroute-Befehls der Tracert-Befehl ist. Grundsätzlich sind Traceroute und Tracert die gleichen Befehle.

Jetzt sehen wir den Unterschied zwischen dem Traceroute-Befehl und dem mtr-Befehl. Die vollständige Form des MTR ist Matts TraceRoute, ein modifizierter Befehl des Traceroute-Befehls. Bei Traceroute werden Pakete auf ihrem Weg über ein IP-Netzwerk zu einem bestimmten Host verfolgt.

Beispiel für einen Traceroute-Befehl:

$ 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

Der MTR ist ein einzelnes Netzwerk-Diagnosetool, das Traceroute- und Ping-Funktionen kombiniert. Der MTR druckt einige der Traceroute-Ausgaben zusammen mit den Ping-Ergebnissen.

Beispiel für einen MTR-Befehl:

$ 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

Wie funktioniert der Traceroute-Befehl unter Linux?

Das Paket von unserem System an die Hostadresse wird über den Router, Zugangspunkte und Netzwerkschnittstellen geleitet. Um den tatsächlichen Pfad Ihres Datenpakets zu bestimmen, verwendet der Traceroute-Befehl den IP-Header, das Internet Control Message Protocol (ICMP) und die TTL- oder Time-to-Live-Tools auf einem Netzwerksystem.

Das Verfolgen des Internetpakets kann weniger mühsam sein, wenn Sie eine sehr kleine LAN-Verbindung auf Ihrem System verwenden. Beim Betreten eines Weitverkehrsnetzes benötigen Sie den Traceroute-Befehl, um den Datenheader zum Messen der Länge, Quelle und Ziel und des Protokolls auszulesen.

Der Traceroute-Befehl verwendet das TCP-Protokoll, um die Verbindung herzustellen. Und der 8-Bit-TTL-Wert liefert uns auch die TTL-Zählerzahlen, die die Gesamtzahl der Begegnungen zwischen dem Datenpaket und dem Ziel über die Router bestimmen. Das Paket erhält einen Zeitüberschreitungsfehler, wenn der TTL-Wert eins ist. Und der ICMP sendet eine Nachricht von der Quelle an das Ziel des Pakets, die die Zeitüberschreitung sicherstellt.

Traceroute-Syntax unter Linux

Hier sehen wir die grundlegende Syntax des Traceroute-Befehls in Linux. Das Verständnis der Syntax wird Ihnen definitiv helfen, alle Beispiele des Traceroute-Befehls zu verstehen, die wir unten auflisten werden.

Hier ist das Befehlsformat:

traceroute [options]  host_Address [pathlength]
  • -f, –first-hop=NUM:Legt die Distanz zwischen dem ersten Hop und dem nächsten Hop fest.
  • -g, –gateways=GATES:Bei offenem Routing zeigt es eine Liste von Gateways an.
  • -I, –ICMP:Als Probe wird ICMP ECHO angegeben.
  • -m, –max-hop=NUM:Legt die Anzahl der Hops fest; der Standardwert ist 64.
  • -M, –type=METHODE:Traceroutes werden entweder mit ICMP oder UDP durchgeführt; die Standardmethode ist UDP.
  • -p, –port=PORT:Definiert den Netzwerkport; der Standardwert ist 33434.
  • -q, –tries=NUM:NUM Prüfpakete werden pro Hop weitergeleitet.
  • –resolve-hostnames:Sie können diese Syntax verwenden, um die Hostnamen zu reparieren.
  • -t, –tos=NUM:In der NUM wird der TOS oder die Art des Dienstes definiert
  • -w, –wait=NUM:Definiert die Wartezeit in Sekunden.
  • -? –help:Druckt die Hilfe und Handbücher für den Traceroute-Befehl unter Linux.
  • –Verwendung:Zeigt die Verwendung in einem kurzen Text.
  • -V, –version:Gibt die aktuelle Version des Traceroute-Befehls unter Linux aus.

Installieren Sie den Traceroute-Befehl unter Linux

Der Installationsprozess des Traceroute-Befehls in Linux-Distributionen ist einfach. Auf Windows- und Mac-Systemen ist das Traceroute-Tool vorinstalliert. Unter Linux müssen Sie es zuerst installieren. Hier habe ich Installationsbefehle für Ubuntu/Debian-, RedHat-, Fedora- und Arch-Linux-Systeme aufgelistet.

Installieren den Traceroute-Befehl unter Arch Linux.

sudo pacman -Sy traceroute

Holen Sie sich den Traceroute-Befehl unter Ubuntu/Debian Linux.

sudo apt-get install traceroute

Installieren Sie das Traceroute-Tool auf Fedora- und Red Hat Linux-Systemen.

# yum install traceroute -y

Nach Abschluss der Installation können Sie die Traceroute-Version überprüfen, um sicherzustellen, dass das Tool erfolgreich auf Ihrem Linux-Computer installiert wurde.

$ traceroute --version

Beispiele für den Traceroute-Befehl unter Linux

Wir werden nun einige nützliche und praktische Beispiele aus dem wirklichen Leben des Traceroute-Befehls sehen, die Sie lernen sollten. Der Traceroute-Befehl funktioniert problemlos mit allen wichtigen Linux-Distributionen sowohl auf dem Desktop als auch auf dem Server.

1. Führen Sie Traceroute aus, um sich einen Überblick zu verschaffen 

Der unten erwähnte Traceroute-Befehl zeigt uns die IP-Adresse, die Gesamtzahl der Hops im gesamten Pfad, die Gesamtdauer für den Verbindungsaufbau und die Größe der Packer.

traceroute ubuntupit.com

2. Gerätenamen ausblenden

Wenn Sie den Namen der Netzwerkgeräte in der Ausgabe des Traceroute-Befehls ausblenden möchten, fügen Sie bitte das  -n hinzu Melden Sie den Befehl an.

traceroute -n  ubuntupit.com

3. Festlegen des Traceroute-Timeout-Werts

Obwohl Sie einen Standardzeitüberschreitungswert für den Traceroute-Befehl haben, können Sie den Zeitüberschreitungswert selbst manuell festlegen. Der unten erwähnte Traceroute-Befehl zeigt, wie Sie den Timeout-Wert unter Linux auf 7 Sekunden setzen.

traceroute -w 7.0 ubuntupit.com

4. Einstellen der Anzahl der Tests

Um die Anzahl der Tests oder die Anzahl der Abfragen pro Hop für eine Ausführung des Traceroute-Befehls unter Linux festzulegen, können Sie den folgenden Befehl verwenden.

traceroute -q 1 ubuntupit.com

5. Festlegen des anfänglichen TTL-Werts

Durch die Verwendung der Flag-Syntax -f im Traceroute-Befehl können Sie den TTL-Wert oder den Time-to-Live-Tool-Wert unter Linux festlegen.

traceroute -f 11 ubuntupit.com

6. Speichern Sie das Ergebnis in einer Textdatei

Sie können die Ergebnisse des Traceroute-Befehls über den unten angegebenen Befehl unter Linux in eine Textdatei exportieren.

traceroute google.com > results.txt

7. Verfolgen Sie die Route mit IPv6

Wenn Ihre Internetverbindung über ein IPv6-Setup verfügt, können Sie den unten genannten Traceroute-Befehl verwenden, um die Verbindung zu verfolgen.

traceroute -6 ipv6.google.com

8. Verfolgen Sie die Route mit Ipv4

In ähnlicher Weise können Sie auch eine IPv4-Verbindung über den unten erwähnten Traceroute-Befehl unter Linux definieren.

traceroute 4 google.com 

9. Geben Sie die zu verwendende Schnittstelle (NIC) an

Wenn Ihr Linux-System über mehr als eine Netzwerkschnittstellenkarte (NIC) verfügt, können Sie eine Ihrer NICs zuweisen, um den Traceroute-Befehl mit dem Flag -i zu verwenden, das den Namen der NIC angibt.

traceroute -i enp8s0 google.com

Wenn Sie den Namen Ihrer Netzwerkschnittstellenkarte wissen müssen, können Sie den Befehl ifconfig ausführen.

$ ifconfig

10. Legen Sie die Antwortwartezeit fest

Um die standardmäßige Antwortwartezeit des Traceroute-Befehls zu ändern, können Sie ein -w-Flag für den Traceroute-Befehl unter Linux verwenden. Diese kleine Optimierung würde Ihrem Datenpaket ermöglichen, etwas mehr zu reisen, um die Zieladresse zu erreichen.

traceroute -w 1 google.com

11. Deaktivieren Sie die Zuordnung von IP-Adressen und Hostnamen

Um die IP-Adresse zu deaktivieren und die Hostzuordnung unter Linux auszublenden, verwenden Sie bitte ein n-Zeichen im Traceroute-Befehl. Dadurch kann der Benutzer die Host-IP-Adresse und den Hostnamen nicht drucken.

traceroute n google.com 

12. Legen Sie die maximale Anzahl von Hops fest

Standardmäßig beträgt die durchschnittliche Anzahl von Hops des Traceroute-Befehls 30. Sie können den Hop-Wert im Traceroute-Befehl ändern, indem Sie den Hop-Wert mit einem -m-Flag zum Befehl hinzufügen.

traceroute -m 7 google.com 

13. Fragmentieren Sie das Paket nicht

Wenn Sie das Datenpaket auf Ihrem Linux-System nicht fragmentieren möchten, verwenden Sie bitte das Flag -F in Ihrem Traceroute-Befehl.

$ traceroute -F google.com

14. Das Paket durch das Tor leiten

Wenn Sie den Traceroute-Befehl über Ihr gewünschtes Gateway leiten möchten, können Sie das -g-Zeichen zusammen mit dem Befehl verwenden, um Ihr Gateway zum Linux-Befehl hinzuzufügen.

$ traceroute -g 192.168.1.6 google.com

15. Legen Sie den zu verwendenden Zielport fest

Standardmäßig verwendet der Traceroute-Befehl den Netzwerkport 33434. Wenn Sie den Netzwerkport ändern müssen, können Sie das -p-Zeichen im Traceroute-Befehl unter Linux verwenden.

$ traceroute  -p 20292 google.com

16. Hilfe bekommen

Wenn Sie weitere Hilfe und Handbücher für den Traceroute-Befehl benötigen, führen Sie bitte die unten aufgeführten Befehle auf der Shell aus. Die Handbücher helfen Ihnen auf jeden Fall beim Einstieg in das Tool.

traceroute --help  
man traceroute 

Probleme, die bei der Verwendung des Traceroute-Befehls auftreten können

Wenn Sie den Traceroute-Befehl unter Linux verwenden, treten möglicherweise einige Probleme auf, wenn Sie neu sind. Hier haben wir einige der am häufigsten auftretenden Probleme für den Traceroute-Befehl von verschiedenen Benutzern aus der Linux-Community eingetragen.

1. Problem mit -n Flagge in T raceroute-Befehl unter Linux

Weiter oben haben wir gesehen, dass Sie ein n-Flag mit dem Traceroute-Befehl in Linux verwenden können, um den Gerätenamen zu verbergen. Wenn bei der Verwendung des n-Flags auf Ihrer Shell ein Problem auftritt und Sie eine ungültige Option erhalten, müssen Sie sicherstellen, dass auf Ihrem System das richtige Traceroute-Tool installiert ist. Sie können auch versuchen, die unten aufgeführten Befehle für eine alternative Installation auf Ihrem System auszuführen.

Hier ist die Beispielausgabe.

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

Befehle, um das Traceroute-Tool auf einem Linux-Computer zu reparieren.

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

2. Pakete können nicht authentifiziert werden:Traceroute-Befehlsproblem

Wenn das Traceroute-Tool in Ihrem Linux-System nicht authentifiziert werden kann, vergewissern Sie sich bitte, dass Sie der sudo-Benutzer sind und über die entsprechende Berechtigung zum Ausführen dieses Befehls auf Ihrem System verfügen. Nachdem Sie sichergestellt haben, dass dieses Tool ordnungsgemäß installiert ist, können Sie jetzt Ihr Paket-Repository mit dem unten erwähnten Befehl sudo update aktualisieren.

sudo apt-get install traceroute
sudo apt-get update

Sie können dann Ihren gewünschten Traceroute-Befehl ausführen, und hoffentlich werden Ihre Probleme gelöst.

3. Neuere Versionen von Traceroute können Probleme haben

In einigen Fällen kann es bei einigen älteren Geräten vorkommen, dass die neueste Version des Traceroute-Befehls einige Probleme aufweist. Wenn Sie beispielsweise den Traceroute-Befehl mit dem Flag -A ausführen möchten, um den Pfad des Befehls zu definieren, kann ein Problem auftreten.

Beispielfehlerausgabe:

~$ 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.   

Dieses Problem wird oft automatisch nach einem Repository-Update behoben. Wenn dieses Problem weiterhin besteht, starten Sie Ihr Gerät bitte neu, führen Sie den Befehl ordnungsgemäß aus und stellen Sie sicher, dass Ihr Befehl keine Tippfehler enthält.

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

4. Traceroute-Installationsfehler unter Linux

Wenn Sie bei der Installation des Traceroute-Befehls auf Ihrem Linux-Rechner auf ein Problem stoßen, stellen Sie bitte sicher, dass der Pfad, den Sie der Installation zuweisen, für die Paketinstallation verfügbar ist. Sie müssen außerdem sicherstellen, dass Sie über die Superuser-Berechtigung verfügen, um dieses Tool zu installieren. In den meisten Fällen versuchen die Benutzer weiterhin, den Traceroute-Befehl in einem gesperrten Verzeichnis zu installieren, und erhalten einen Permission Denied-Fehler.

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?

Sie können einen der unten aufgeführten Befehlssätze ausführen, um dieses Problem zu lösen. Vergessen Sie nicht, das fehlende Repository zu reparieren und den Traceroute-Befehl unter Linux zu installieren.

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

Holen Sie sich das Universe-Repository und installieren Sie den Traceroute-Befehl.

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

5. Entfernen Sie Klammern () um die IP-Adresse auf Traceroute in Linux

Manchmal erhalten Sie die Ausgabe-IP-Adresse in der ersten Klammer oder in den Klammern in der Terminal-Shell.

Hier ist eine Beispielausgabe:

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

Um die Klammern aus der Ausgabe zu entfernen, führen Sie bitte den unten genannten Befehl aus.

$ 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

Schlussworte

Die Verwendung des Traceroute-Tools für die Netzwerkfehlerbehebung kann Ihre Aufgabe einfacher und effizienter machen. Es kann ein paar Tage dauern, bis neue Benutzer mit diesem Befehl beginnen, aber sobald Sie sich an dieses Tool gewöhnt haben, werden Sie feststellen, wie sehr Sie es unter Linux verwenden.

In dem gesamten Beitrag haben wir viele Dinge über den Traceroute-Befehl in Linux beschrieben. Ich habe versucht, den Traceroute-Befehl so einfach wie möglich zu veranschaulichen. Ich hoffe, dieser Beitrag war hilfreich für Sie; Wenn ja, teilen Sie diesen Beitrag bitte mit Ihren Freunden und der Linux-Community. Sie können auch Ihre Meinung zu diesem Beitrag in den Kommentarbereich schreiben.


Linux
  1. cp-Befehl unter Linux:7 praktische Beispiele

  2. Linux-Shutdown-Befehl:5 praktische Beispiele

  3. 5 praktische Beispiele des dd-Befehls unter Linux

  4. 10 praktische Beispiele für Linux-nm-Befehle

  5. 7 Beispiele für Linux-df-Befehle

12 praktische Beispiele für In Command unter Linux

15 Praktische Beispiele für den Rsync-Befehl unter Linux

5 praktische Beispiele für Tail-Befehle unter Linux

Echo-Befehl unter Linux:7 praktische Beispiele

Praktischer Ping-Befehl in Linux-Beispielen

id-Befehlsbeispiele in Linux