Как получить traceroute на cygwin?

Реализация traceroute (tracert) отличается от Windows и Unix. Я хотел сравнить оба с Wireshark. Сейчас я на Windows 7, и мне очень хотелось быстро реализовать реализацию Unix traceroute.

Моя первая идея заключалась в том, чтобы получить его с помощью MSYS или Cygwin. Я установил Cygwin с пакетами «inetutils *», но нет команды traceroute и соответствующего исполняемого файла в /usr/bin/ .

Я также попытался найти «traceroute» с помощью поиска пакета Cygwin и нашел эту подстроку в списке файлов «zsh». Я установил zsh и попробовал traceroute и tcptraceroute без каких-либо результатов.

Какой пакет я должен проверить для установки traceroute и есть ли traceroute для Cygwin?

  • Traceroute - подходите к месту с проблемами подключения
  • channel 1: open failed: административно запрещено: open failed
  • Почему mtr более надежный, чем traceroute, у моего провайдера?
  • Могу ли я сделать обратный traceroute?
  • traceroute с явным выбором шлюза
  • У меня есть маршрут к сети, но с выхода traceroute он не покидает сервер
  • добавление дополнительных прыжков в traceroute6 на OpenBSD
  • Как оценить качество сетевого подключения сервера с помощью traceroute?
  • 3 Solutions collect form web for “Как получить traceroute на cygwin?”

    В пакетах Cygwin нет traceroute , потому что tracert всегда доступен в Windows. См. https://cygwin.com/ml/cygwin/2005-12/msg00443.html для потока, кратко обсуждающего это. Вы можете попытаться скомпилировать traceroute стиле Unix из исходного кода Cygwin.

    Если вы хотите сравнить tracert в стиле Windows в стиле traceroute стиле Unix, я бы рекомендовал запустить traceroute в Unix или Linux, потому что сетевые стеки разные; поэтому запуск traceroute стиле Unix в Windows не даст вам таких же сетевых трасс, как traceroute Unix в Unix.

    Хорошо, поскольку Стивен Китт сказал, что нет готовых использовать двоичные файлы traceroute для Cygwin. Вот почему я попытался скомпилировать его сам.

    Я вижу, что есть современный traceroute, но из его описания следует, что его нельзя использовать со старыми ядрами Linux, и для меня компиляция застряла в отсутствующем «dccp.h», и я сдался.

    Мне удалось скомпилировать старую реализацию , но она работает, как будто она не может видеть, что ответы ICMP на TTL превышены (вместо результатов есть звездочки):

    1 * * *

    2 * * *

    Возможно, для работы с Cygwin требуются некоторые исправления, и именно по этой причине для Cygwin нет пакета traceroute.

    Я проверил с Wireshark и вижу, что он использует тестовые пакеты UDP, и соответствующие ответы ICMP поставляются правильно. Я хочу заметить, что этот старый traceroute работает медленно, как Tracert от Win («запрос» узлов один за другим). Современный traceroute дает результаты очень быстро.

    Я смог построить порт mtr в Cygwin32, используя инструкции:

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

    MTR – альтернативный инструмент traceroute с открытым исходным кодом. Он имеет интерфейс графического интерфейса пользователя и Ncurses. Это не совсем классический traceroute, но мне он больше нравится.

    Linux и Unix - лучшая ОС в мире.