Package-Management

如何在cygwin上獲取traceroute?

  • May 13, 2017

traceroute(tracert) 的實現在 Windows 和 Unix 上有所不同。我想將兩者與 Wireshark 進行比較。我現在在 Windows 7 上,我想快速獲得 Unix traceroute 實現。

我的第一個想法是使用 MSYS 或 Cygwin 來獲取它。我安裝了 Cygwin 並檢查了“inetutils *”包,但在/usr/bin/.

我還嘗試使用Cygwin 包搜尋來搜尋​​“traceroute”,並在“zsh”文件列表中找到了這個子字元串。我安裝了 zsh 並嘗試過traceroutetcptraceroute但沒有結果。

我應該檢查哪個軟體包以安裝 traceroute 以及 Cygwin 是否有 traceroute?

好的,正如斯蒂芬基特所說,沒有準備好為 Cygwin 使用 traceroute 二進製文件。這就是為什麼我試圖自己編譯它。

我可以看到有現代跟踪路由,但從下面的描述來看,它不能與舊的 Linux 核心一起使用,對我來說,編譯卡在缺少“dccp.h”上,我放棄了。

我能夠編譯舊的實現,但它的工作方式就像看不到超過 TTL 的 ICMP 回复(有星號而不是結果):

1 * * *

2 * * *

也許它需要一些修復才能在 Cygwin 上工作,這就是為什麼 Cygwin 沒有 traceroute 包的原因。

我檢查了 Wireshark,發現它使用了 UDP 測試數據包,並且正確地傳遞了相應的 ICMP 回复。我想注意到這個舊的跟踪路由像 Win 一樣緩慢地工作tracert(一個接一個地“查詢”節點)。現代跟踪路由非常迅速地給出結果。

Cygwin 軟體包中沒有traceroute,因為tracert在 Windows 上始終可用。請參閱https://cygwin.com/ml/cygwin/2005-12/msg00443.html以獲得簡要討論此問題的執行緒。traceroute您可以嘗試從原始碼 usign Cygwin編譯 Unix 風格。

如果你想比較 Windows 風格tracert和 Unix 風格traceroute,我建議traceroute在 Unix 或 Linux 上執行,因為網路堆棧是不同的;所以在 Windows 上執行 Unix 風格traceroute不會給你與 Unix 上的 Unix 風格完全相同的網路跟踪traceroute

引用自:https://unix.stackexchange.com/questions/188744