Jak zdobyć traceroute na cygwin?

14

Implementacja traceroute (tracert) różni się w systemach Windows i Unix. Chciałem porównać oba z Wireshark. Jestem teraz na systemie Windows 7 i chciałem szybko uzyskać implementację traceroute w systemie Unix.

Moim pierwszym pomysłem było zdobycie go za pomocą MSYS lub Cygwin. Zainstalowałem Cygwin z zaznaczonymi pakietami „inetutils *”, ale nie ma polecenia traceroute i odpowiedniego pliku wykonywalnego /usr/bin/.

Próbowałem również wyszukać „traceroute” przy wyszukiwaniu pakietów Cygwin i znalazłem ten podciąg na liście plików „zsh”. Zainstalowałem Zsh i próbowałem traceroutei tcptraceroutebez rezultatów.

Który pakiet powinienem sprawdzić pod kątem instalacji traceroute i czy w ogóle istnieje traceroute dla Cygwin?

Cyryl
źródło

Odpowiedzi:

15

Nie ma go traceroutew pakietach Cygwin, ponieważ tracertzawsze jest dostępny w systemie Windows. Zobacz https://cygwin.com/ml/cygwin/2005-12/msg00443.html wątek krótko omawiający to. Możesz spróbować skompilować styl uniksowy tracerouteze źródła Cygwin.

Jeśli jednak chcesz porównać styl Windows tracertz Uniksem traceroute, polecam uruchomić go traceroutew systemie Unix lub Linux, ponieważ stosy sieciowe są różne; więc uruchomienie stylu uniksowego traceroutew systemie Windows nie da ci takich samych śladów sieciowych jak styl tracerouteuniksowy w systemie Unix.

Stephen Kitt
źródło
3
pingistnieje również w systemie Windows, ale jest dostępny dla Cygwin :) W każdym razie dziękuję za odpowiedź. Może spróbuję tracerouteręcznie skompilować dla Cygwin.
Kirill,
4
Słuszny punkt i tracerouteoferuje o wiele więcej funkcji niż tracert.
Stephen Kitt,
4

Ok, jak powiedział Stephen Kitt, że dla Cygwina nie ma gotowych do użycia plików binarnych traceroute. Dlatego sam próbowałem go skompilować.

Widzę, że istnieje nowoczesny traceroute, ale z jego opisu wynika, że ​​nie można go używać ze starymi jądrami Linuksa i dla mnie kompilacja utknęła na brakującym „dccp.h” i zrezygnowałem.

Udało mi się skompilować starą implementację , ale działa ona tak, jakby nie widziała przekroczenia odpowiedzi ICMP na TTL (zamiast wyników pojawiają się gwiazdki):

1 * * *

2 * * *

Być może wymaga to kilku poprawek do pracy na Cygwin i to jest powód, dla którego nie ma pakietu traceroute dla Cygwin.

Sprawdziłem za pomocą Wireshark i zobaczyłem, że używa pakietów testowych UDP, a odpowiednie odpowiedzi ICMP są dostarczane poprawnie. Chcę zauważyć, że ten stary traceroute działa powoli, podobnie jak Win tracert(„sprawdzanie” węzłów jeden po drugim). Nowoczesne traceroute daje wyniki bardzo szybko.

Cyryl
źródło
2

Udało mi się zbudować port mtrw Cygwin32, korzystając z instrukcji:

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

MTR jest alternatywnym narzędziem traceroute typu open source. Ma zarówno interfejs graficzny, jak i tekstowy Ncurses. To nie jest dokładnie klasyczny traceroute, ale bardziej mi się podoba.

LatinSuD
źródło