如何在cygwin上获取traceroute?

如何在cygwin上获取traceroute?

Traceroute(tracert) 的实现在 Windows 和 Unix 上有所不同。我想将两者与 Wireshark 进行比较。我现在使用的是 Windows 7,我想快速实现 Unix 跟踪路由。

我的第一个想法是使用 MSYS 或 Cygwin 来获取它。我安装了 Cygwin,并检查了“inetutils*”包,但/usr/bin/.

我还尝试搜索“traceroute”Cygwin 包搜索并在“zsh”文件列表中找到该子字符串。我安装了 zsh 并尝试过traceroute,但tcptraceroute没有结果。

我应该检查哪个软件包来安装 Traceroute,以及 Cygwin 是否有 Traceroute?

答案1

tracerouteCygwin 软件包中没有,因为tracert在 Windows 上始终可用。看https://cygwin.com/ml/cygwin/2005-12/msg00443.html简要讨论此问题的线程。您可以尝试使用tracerouteCygwin 从源代码编译 Unix 风格。

如果你想比较 Windows 风格tracert和 Unix 风格traceroute,我建议traceroute在 Unix 或 Linux 上运行,因为网络堆栈不同;因此,在 Windows 上运行 Unix 风格traceroute不会提供与tracerouteUnix 上的 Unix 风格完全相同的网络跟踪。

答案2

好吧,正如 Stephen Kitt 所说,Cygwin 还没有准备好使用跟踪路由二进制文件。这就是为什么我尝试自己编译它。

我可以看到有现代跟踪路由但从它的描述来看,它不能与旧的 Linux 内核一起使用,对我来说,编译陷入了缺少“dccp.h”的困境,我放弃了。

我能够编译旧的实现,但它的工作原理就像看不到超出 TTL 的 ICMP 回复(有星号而不是结果):

1 ** * *

2 ** * *

也许它需要一些修复才能在 Cygwin 上工作,这就是 Cygwin 没有跟踪路由包的原因。

我检查了 Wireshark,发现它使用 UDP 测试数据包,并且相应的 ICMP 回复已正确传递。我想注意到这个旧的跟踪路由像 Win 一样运行缓慢tracert(一一“查询”节点)。现代跟踪路由可以很快给出结果。

答案3

mtr我能够使用说明在 Cygwin32 中构建一个端口:

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

MTR 是另一种开源跟踪路由工具。它具有 GUI 和 Ncurses 文本界面。它不完全是经典的traceroute,但我更喜欢它。

相关内容