Intereting Posts
Копировать вывод curl в файл У Alsamixer есть дополнительные вещи, которые не исчезнут Debian Kde Iceweasel / Firefox: настройка пользовательских обработчиков протоколов zip каталог, имя которого начинается с `-` -bash:! '@ 10.109.10.142/?ip=10.109.8.39: событие не найдено Какова цель командной строки grub Организация одного сценария с помощью другого Не удается разрешить имена, но может пинговать адреса при подключении к маршрутизатору IPV4, все работает отлично с маршрутизатором IPV6 В каких системах есть ярлык / псевдоним «пейджер»? Применение и привязка всех настроек / двоичных файлов одного пользователя к другому пользователю в Linux Как получить сообщения ядра на последовательной консоли в системе systemd? выбор конкретной строки в поле Как эффективно использовать сценарии bash (разные затраты на восстановление и хорошие привычки)? На сайте Ubuntu 12.04 особо не работает сайт квоты, не связанные с пользователями, а с каталогами

Как получить 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?

В пакетах 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, но мне он больше нравится.