traceroute nie działa, dane wyjściowe to * * *, ale sieć działa poprawnie

15

na moim Linux-ie traceroute nie działa. dane wyjściowe są takie:

$ traceroute google.com

traceroute to google.com (209.85.231.104), 30 hops max, 52 byte packets
1  * * *
2  * * *
3  * * *
4  * * *

Czy ktoś może mi powiedzieć, dlaczego to nie działa? jakieś możliwe przyczyny?


źródło

Odpowiedzi:

10

Domyślnie traceroute używa wysokich portów UDP do śledzenia hostów. Jednak czasami zapory blokują te porty UDP.

Spróbuj dodać parametr „-I” (wielkie litery i) do wiersza poleceń, np .:

traceroute -I www.google.it

Spowoduje to użycie ICMP zamiast UDP do śledzenia hostów.

Shodanshok
źródło
2

Spróbuj użyć -T (tcp) lub -U (udp), aby ominąć zaporę ogniową.
Niektóre routery / zapory ogniowe nie przepuszczają echa icmp, dlatego należy użyć tych 2, aby je pominąć.
W każdym razie, w przeciwieństwie do tego, co stwierdzono w Wikipedii, traceroute nadal używa pakietów icmp, a nie udp.

EDYTOWAĆ

Myliłem się ... używa udp ... icmp wraca do niedostępnego portu ... przepraszam

PiL
źródło
1
dla macOS będzie to -P TCP lub -P UDP, a -P ICMP będzie taki sam jak -I w odpowiedzi shodanshok.
MrG
1

być może zapora ogniowa przed Tobą blokuje pakiety UDP Traceroute

W nowoczesnych systemach operacyjnych typu Unix narzędzie traceroute domyślnie używa datagramów UDP z numerami portów docelowych od 33434 do 33534.

lalalalalalala
źródło
$ jest bardziej prawdopodobnym pytaniem na Unixa niż Windows 1. Polecenie traceroute w systemie Windows to tracert. Pytanie dotyczy Linuksa ...
promień
zdałem sobie z tego sprawę, więc zredagowałem odpowiedź.
lalalalalalala
Myślałem, że trasa śledzenia używa pakietów ICMP. Nie wiedziałem, że systemy oparte na Uniksie używają UDP. Naucz się czegoś nowego każdego dnia.
dbasnett
1

Jest to prawdopodobnie spowodowane tym, że odpowiedź icmp TIME_EXCEEDED jest filtrowana przez router / zaporę ogniową, której używasz jako domyślnej bramy, lub przez sam system Linux

promień
źródło