Comment obtenir traceroute sur cygwin?

14

L'implémentation de traceroute (tracert) diffère sous Windows et Unix. Je voulais comparer les deux avec Wireshark. Je suis maintenant sur Windows 7 et je voulais obtenir rapidement l'implémentation d'Unix traceroute.

Ma première idée a été de l'obtenir en utilisant MSYS ou Cygwin. J'ai installé Cygwin avec les paquets "inetutils *" vérifiés, mais il n'y a pas de commande traceroute et d'exécutable correspondant dans /usr/bin/.

J'ai également essayé de rechercher "traceroute" avec la recherche de paquets Cygwin et j'ai trouvé cette sous-chaîne dans la liste des fichiers "zsh". J'ai installé zsh et essayé tracerouteet tcptraceroutesans résultat.

Quel paquet dois-je vérifier pour l'installation de traceroute et y a-t-il du tout traceroute pour Cygwin?

Kirill
la source

Réponses:

14

Il n'y tracerouteen a pas dans les packages Cygwin, car il tracertest toujours disponible sur Windows. Voir https://cygwin.com/ml/cygwin/2005-12/msg00443.html pour un fil qui en discute brièvement. Vous pouvez essayer de compiler un style Unix à traceroutepartir de la source utilisant Cygwin.

Si vous souhaitez comparer le style Windows au style tracertUnix traceroute, je vous recommande de l'exécuter traceroutesous Unix ou Linux, car les piles de réseau sont différentes; donc exécuter un style Unix traceroutesur Windows ne vous donnera pas tout à fait les mêmes traces réseau que le style tracerouteUnix sur Unix.

Stephen Kitt
la source
3
pingexiste également sur Windows, mais est disponible pour Cygwin :) Quoi qu'il en soit, merci pour votre réponse. J'essaierai peut-être de compiler traceroutemanuellement pour Cygwin.
Kirill
4
Bon point, et tracerouteoffre un peu plus de fonctionnalités que tracert.
Stephen Kitt
4

Ok, comme Stephen Kitt l'a dit, il n'y a pas de binaires traceroute prêts à utiliser pour Cygwin. C'est pourquoi j'ai essayé de le compiler moi-même.

Je peux voir qu'il y a un traceroute moderne mais d'après sa description qui suit, il ne peut pas être utilisé avec les anciens noyaux Linux et pour moi la compilation est bloquée sur "dccp.h" manquant et j'ai abandonné.

J'ai pu compiler l'ancienne implémentation , mais cela fonctionne comme s'il ne pouvait pas voir les réponses ICMP sur TTL dépassées (il y a des astérisques au lieu des résultats):

1 * * *

2 * * *

Peut-être que cela nécessite des correctifs pour fonctionner sur Cygwin et c'est la raison pour laquelle il n'y a pas de package traceroute pour Cygwin.

J'ai vérifié auprès de Wireshark et je vois qu'il utilise des paquets de test UDP et les réponses ICMP correspondantes sont livrées correctement. Je veux remarquer que cette ancienne traceroute fonctionne lentement comme Win tracert("interroger" les nœuds un par un). La traceroute moderne donne des résultats très rapidement.

Kirill
la source
2

J'ai pu créer un port mtrdans Cygwin32 en utilisant des instructions:

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

MTR est un outil alternatif de traceroute open source. Il possède à la fois une interface graphique GUI et Ncurses. Ce n'est pas exactement le traceroute classique, mais je l'aime plus.

LatinSuD
la source