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 traceroute
i tcptraceroute
bez rezultatów.
Który pakiet powinienem sprawdzić pod kątem instalacji traceroute i czy w ogóle istnieje traceroute dla Cygwin?
ping
istnieje również w systemie Windows, ale jest dostępny dla Cygwin :) W każdym razie dziękuję za odpowiedź. Może spróbujętraceroute
ręcznie skompilować dla Cygwin.traceroute
oferuje o wiele więcej funkcji niżtracert
.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):
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.źródło
Udało mi się zbudować port
mtr
w 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.
źródło