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

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

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

  • Измените переменную среды PATH моего профиля на Cygwin
  • Компилировать приложение Linux для Windows
  • Удалить файлы с совпадением только из некоторых подкаталогов
  • Как запустить bash на CYGWIN
  • Изменение вхождения строки в файл при соблюдении новых строк строки DOS
  • Приостановка rsync через скрипт bash?
  • Я также попытался найти «traceroute» с помощью поиска пакета Cygwin и нашел эту подстроку в списке файлов «zsh». Я установил zsh и попробовал traceroute и tcptraceroute без каких-либо результатов.

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

  • Как выводить команду mtr в удобочитаемой форме на стандартный вывод?
  • Как использовать dnstraceroute?
  • Cygwin - Shell Scripting (eval и echo)
  • Запуск Docker в среде Windows / cygwin
  • можно ли запускать `ssh-add <key>` только тогда, когда я ssh в поле? (от Cygwin)
  • установка утилиты column unix для окон
  • 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 - лучшая ОС в мире.