Ответ
Звездочки (*) в выводе traceroute означают, что один из промежуточных маршрутизаторов не ответил на пробный пакет в течение таймаута. Сами по себе звездочки не обязательно означают проблему с доступностью конечного сервиса. Это распространенное явление в современных сетях.
Основные причины:
- Фильтрация ICMP-пакетов: Большинство корпоративных фаерволов и провайдерских маршрутизаторов намеренно не отвечают на ICMP-пакеты типа "Time Exceeded" (которые использует классический
traceroute), чтобы скрыть топологию сети и снизить нагрузку. Это нормальная практика безопасности. - Приоритизация трафика: Маршрутизаторы могут отдавать низкий приоритет служебным ICMP-пакетам, особенно при высокой загрузке.
Как правильно диагностировать доступность порта:
- Использовать
tcptracerouteилиtraceroute -T: Эти методы отправляют TCP SYN-пакеты (как при реальном соединении) на указанный порт (например, 443 для HTTPS). Фаерволы реже фильтруют такой трафик.sudo traceroute -T -p 443 -n example.com # Или с использованием tcptraceroute sudo tcptraceroute -n -p 80 example.com - Проверить доступность порта напрямую: Использовать инструменты, которые устанавливают реальное TCP-соединение.
# Проверка порта 443 с помощью netcat (nc) nc -zv example.com 443 # Или с помощью curl для HTTP/HTTPS curl -I --connect-timeout 5 https://example.com
Вывод: Если traceroute показывает звездочки, но curl или nc успешно соединяются с конечным хостом по нужному порту — проблемы с доступностью нет. Звездочки лишь указывают на то, что часть сетевого пути "невидима" для ICMP-трассировки. Проблемой стоит считать только ситуацию, когда звездочки доходят до последних хопов перед целевым хостом и при этом прямое соединение тоже не удается.