на моем Linux-сервере traceroute не работает. вывод такой:
$ traceroute google.com
traceroute to google.com (209.85.231.104), 30 hops max, 52 byte packets
1 * * *
2 * * *
3 * * *
4 * * *
Может ли кто-нибудь сказать мне, почему он не работает? какие-либо возможные причины этого?
По умолчанию traceroute использует высокие порты UDP для отслеживания хостов. Однако иногда брандмауэры блокируют эти UDP-порты.
Попробуйте добавить в командную строку параметр «-I» (верхний регистр i), например:
traceroute -I www.google.it
Это будет использовать ICMP вместо UDP для отслеживания хостов.
Попробуйте использовать -T (tcp) или -U (udp) для обхода брандмауэра.
Некоторые маршрутизаторы / брандмауэры не пропускают эхо-сигнал icmp, поэтому вы должны использовать эти 2, чтобы обойти их.
В любом случае, вопреки тому, что указано в википедии, на моих ящиках с debian traceroute по-прежнему использует пакеты icmp, а не udp.
РЕДАКТИРОВАТЬ
Я был неправ ... он использует udp ... icmp возвращается для недоступного порта ... извините
может случиться так, что брандмауэр от вас блокирует UDP-пакеты. Traceroute
В современных Unix-подобных операционных системах утилита traceroute по умолчанию использует дейтаграммы UDP с номерами портов назначения от 33434 до 33534.
Вероятно, это связано с тем, что ответ icmp TIME_EXCEEDED фильтруется маршрутизатором / брандмауэром, который вы используете в качестве шлюза по умолчанию, или самой вашей системой Linux.