Behebe Netzwerkprobleme mit tracepath
In diesem Schritt lernen Sie, wie Sie den tracepath
-Befehl verwenden, um Netzwerkprobleme zu beheben.
Lassen Sie uns beginnen, indem wir ein Netzwerkproblem simulieren, indem wir die Verbindung zu einem entfernten Host mit der iptables
-Firewall blockieren:
$ sudo iptables -A OUTPUT -d 8.8.8.8 -j DROP
Dieser Befehl blockiert alle ausgehenden Netzwerkverkehr an die IP-Adresse 8.8.8.8
, die einer der öffentlichen DNS-Server von Google ist.
Jetzt versuchen wir, den Pfad zu 8.8.8.8
mit dem tracepath
-Befehl zu verfolgen:
$ sudo tracepath 8.8.8.8
1?: [LOCALHOST] pmtu 1500
1: 192.168.1.1 0.161ms
1: 192.168.1.1 0.158ms
2: 10.0.0.1 1.694ms
3: no reply
4: no reply
5: no reply
Resume: pmtu 1500 hops 5 back 2
Beispielausgabe:
Die Ausgabe zeigt, dass der tracepath
-Befehl den Pfad bis zum dritten Hop verfolgen konnte, aber dann eine "keine Antwort"-Meldung erhalten hat, was darauf hindeutet, dass die Verbindung blockiert wurde oder der entfernte Host nicht antwortet.
Um dieses Problem zu beheben, können Sie Folgendes versuchen:
-
Überprüfen Sie die Firewall-Regeln, um sicherzustellen, dass die Verbindung wie erwartet blockiert wird:
$ sudo iptables -L
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
DROP all -- anywhere 8.8.8.8
-
Versuchen Sie, den entfernten Host zu ping-en, um zu sehen, ob die Verbindung tatsächlich blockiert ist:
$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
^C
--- 8.8.8.8 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 2023ms
Die Ausgabe zeigt, dass die Verbindung blockiert wird, wie durch den 100%-igen Paketverlust angezeigt.
-
Entfernen Sie die Firewall-Regel, um die Verbindung wiederherzustellen:
$ sudo iptables -D OUTPUT -d 8.8.8.8 -j DROP
Indem Sie den tracepath
-Befehl verwenden, um den Punkt zu identifizieren, an dem die Verbindung blockiert wird, können Sie Netzwerkprobleme schnell beheben und die Ursache ermitteln.