Traceroute funktioniert unter Linux nicht, unter Windows

8

Ich bin ein Linux Mint-Benutzer. Ich habe Traceroute unter Linux und Tracert unter Windows ausgeführt. Unter Linux bekomme ich nur Sternchen. Unter Windows scheint alles gut zu funktionieren. Hier sind die Ausgänge

Windows:

Windows

Linux Mint:

Linux Mint

Warum passiert das und kann ich etwas tun, um dieses Problem zu lösen?

Luigi
quelle
Und Sie können vom Linux Mint-System aus auf das Internet zugreifen? Laufen diese Betriebssysteme beide auf demselben PC? Als Dual-Boot oder mit Virtualisierung?
depquid
1
Down-Voting aus demselben Grund wie @depquid-Kommentar. Dieser Frage fehlen viele wichtige Informationen, um dies zu lösen.
Bagavadhar
2
Ich glaube nicht, dass er dafür irgendwelche Abstimmungen verdient hat. Hier gab es genügend Informationen, um eine Antwort zu geben.
Jordan
1
Ich suche keine Upvotes, nur Antworten, damit ich mich nicht verteidigen kann :) Natürlich kann ich auf das Internet zugreifen, dies scheint mir eine triviale Frage zu sein. Tut mir leid, dass ich nicht über die Maschine geschrieben habe: Ja, es ist dasselbe (mit Dual-Boot)
Luigi,

Antworten:

14

Ein wahrscheinlicher Grund für den Unterschied ist, dass tracertWindows traceroutestandardmäßig ICMP verwendet, während Linux standardmäßig UDP verwendet. Die Verwendung der -IOption für Traceroute sollte zu denselben Ergebnissen führen wie tracert:

traceroute -w 10 -I google.it

Aus der tracerouteDokumentation:

In der modernen Netzwerkumgebung können die traditionellen Traceroute-Methoden aufgrund der weit verbreiteten Verwendung von Firewalls nicht immer angewendet werden. Solche Firewalls filtern die "unwahrscheinlichen" UDP-Ports oder sogar ICMP-Echos. Um dies zu lösen, werden einige zusätzliche Tracerouting-Methoden implementiert (einschließlich TCP), siehe LISTE DER VERFÜGBAREN METHODEN unten. Solche Methoden versuchen, ein bestimmtes Protokoll und einen bestimmten Quell- / Zielport zu verwenden, um Firewalls zu umgehen (von Firewalls nur als Start des zulässigen Typs einer Netzwerksitzung zu sehen).

LISTE DER VERFÜGBAREN METHODEN

Im Allgemeinen muss eine bestimmte Traceroute-Methode möglicherweise nach dem Namen -M ausgewählt werden, aber die meisten Methoden haben ihre einfachen cmdline-Schalter (Sie können sie nach dem Methodennamen sehen, falls vorhanden).

Standard

Die traditionelle, alte Methode des Tracerouting. Wird standardmäßig verwendet.

Testpakete sind udp-Datagramme mit sogenannten "unwahrscheinlichen" Zielports. Der "unwahrscheinliche" Port der ersten Sonde ist 33434, dann wird er für jede nächste Sonde um eins erhöht. Da erwartet wird, dass die Ports nicht verwendet werden, gibt der Zielhost normalerweise als endgültige Antwort "icmp unreach port" zurück. (Niemand weiß jedoch, was passiert, wenn eine Anwendung auf solche Ports wartet).

Jordanm
quelle
Das funktioniert bei mir nicht. Gibt das gleiche Ergebnis.
Gans
0

Versuche dies:

traceroute -M icmp google.it
user372552
quelle
3
Es wäre viel besser, wenn Sie Ihre Frage bearbeiten und erklären könnten , was dies bewirkt und warum es das beschriebene Problem lösen würde.
Roaima
ICMP ist niemals das gute Werkzeug zur Behebung von Netzwerkproblemen (und Sie können es auch einfach verwenden ping, ohne es zu benötigen traceroute -M). Wenn Sie versuchen, die HTTP-Konnektivität zu bewerten (die ich basierend auf dem in der Frage verwendeten Namen schätze), müssen Sie eine HTTP-Abfrage durchführen, die normalerweise TCP / 80 oder TCP / 443 ist. Daher verwenden Sie tpctraceroutedafür.
Patrick Mevzek