Wie bekomme ich Traceroute auf Cygwin?

14

Die Implementierung von traceroute (tracert) unterscheidet sich unter Windows und Unix. Ich wollte beides mit Wireshark vergleichen. Ich bin jetzt auf Windows 7 und wollte die Implementierung von Unix Traceroute schnell erreichen.

Meine erste Idee war, es mit MSYS oder Cygwin zu bekommen. Ich habe Cygwin mit überprüften "inetutils *" - Paketen installiert, aber es gibt keinen traceroute-Befehl und die entsprechende ausführbare Datei in /usr/bin/.

Ich habe auch versucht, mit der Cygwin- Paketsuche nach "traceroute" zu suchen, und diese Teilzeichenfolge in der Liste der "zsh" -Dateien gefunden. Ich habe zsh installiert und versucht tracerouteund tcptracerouteohne Ergebnisse.

Welches Paket sollte ich für die Installation von Traceroute überprüfen und gibt es Traceroute für Cygwin überhaupt?

Kirill
quelle

Antworten:

14

tracerouteDie Cygwin-Pakete enthalten keine , da tracertsie unter Windows immer verfügbar sind. Unter https://cygwin.com/ml/cygwin/2005-12/msg00443.html finden Sie einen Thread, in dem dies kurz erläutert wird. Sie können versuchen, einen Unix-Stil tracerouteaus dem Quellcode von Cygwin zu kompilieren.

Wenn Sie den Windows-Stil tracertmit dem Unix-Stil vergleichen möchten, tracerouteempfehle ich die Ausführung tracerouteunter Unix oder Linux, da die Netzwerkstapel unterschiedlich sind. Wenn Sie also einen Unix-Stil tracerouteunter Windows ausführen, erhalten Sie nicht die gleichen Netzwerkspuren wie tracerouteunter Unix.

Stephen Kitt
quelle
3
pinggibt es auch unter Windows, ist aber für Cygwin verfügbar :) Wie auch immer, danke für deine Antwort. Vielleicht werde ich versuchen, traceroutefür Cygwin manuell zu kompilieren .
Kirill
4
Guter Punkt, und traceroutebietet ein paar mehr Funktionen als tracert.
Stephen Kitt
4

Wie Stephen Kitt sagte, gibt es für Cygwin keine gebrauchsfertigen Traceroute-Binärdateien. Deshalb habe ich versucht, es selbst zu kompilieren.

Ich kann sehen, dass es eine moderne Traceroute gibt, aber aus der folgenden Beschreibung geht hervor, dass sie nicht mit alten Linux-Kerneln verwendet werden kann.

Ich konnte die alte Implementierung kompilieren , aber es funktioniert so, als ob ICMP-Antworten auf TTL nicht überschritten werden (statt der Ergebnisse gibt es Sternchen):

1 * * *

2 * * *

Möglicherweise sind einige Korrekturen erforderlich, um mit Cygwin arbeiten zu können. Aus diesem Grund gibt es kein Traceroute-Paket für Cygwin.

Ich habe bei Wireshark nachgefragt und festgestellt, dass UDP-Testpakete verwendet werden und die entsprechenden ICMP-Antworten korrekt übermittelt werden. Ich möchte feststellen, dass diese alte Traceroute langsam wie Wins tracert("Abfragen" von Knoten nacheinander) funktioniert . Moderne Traceroute liefert sehr schnell Ergebnisse.

Kirill
quelle
2

Ich konnte einen Port von mtrin Cygwin32 mit den folgenden Anweisungen erstellen:

https://github.com/traviscross/mtr/

MTR ist ein alternatives Open-Source-Traceroute-Tool. Es hat sowohl eine GUI- als auch eine Ncurses-Textschnittstelle. Es ist nicht gerade die klassische Traceroute, aber ich mag es mehr.

LatinSuD
quelle