Kir*_*ill 15 cygwin package-management traceroute
traceroute(tracert) 的实现在 Windows 和 Unix 上有所不同。我想将两者与 Wireshark 进行比较。我现在在 Windows 7 上,我想快速获得 Unix traceroute 实现。
我的第一个想法是使用 MSYS 或 Cygwin 来获取它。我安装了 Cygwin 并检查了“inetutils*”包,但在/usr/bin/
.
我还尝试使用Cygwin 包搜索搜索“traceroute”,并在“zsh”文件列表中找到了这个子字符串。我安装的zsh和尝试traceroute
,并tcptraceroute
没有结果。
我应该检查哪个包来安装 traceroute,Cygwin 是否有 traceroute?
Ste*_*itt 16
traceroute
Cygwin 包中没有,因为tracert
在 Windows 上始终可用。请参阅https://cygwin.com/ml/cygwin/2005-12/msg00443.html以获取简要讨论此问题的线程。您可以尝试traceroute
从源代码 usign Cygwin编译 Unix 样式。
如果你想比较 Windows 风格tracert
和 Unix 风格traceroute
,我建议traceroute
在 Unix 或 Linux 上运行,因为网络堆栈是不同的;因此,traceroute
在 Windows 上运行 Unix 风格不会为您提供与 Unixtraceroute
上的 Unix风格完全相同的网络跟踪。
好的,正如 Stephen Kitt 所说,Cygwin 还没有准备好使用 traceroute 二进制文件。这就是为什么我试图自己编译它。
我可以看到有现代 traceroute但从它的描述如下,它不能与旧的 Linux 内核一起使用,对我来说编译卡在缺少“dccp.h”上,我放弃了。
我能够编译旧的实现,但它的工作原理就像在 TTL 超出时看不到 ICMP 回复(有星号而不是结果):
1 * * *
2 * * *
也许它需要一些修复才能在 Cygwin 上工作,这就是为什么没有用于 Cygwin 的 traceroute 包的原因。
我检查了 Wireshark,看到它使用 UDP 测试数据包,并且正确传递了相应的 ICMP 回复。我想注意到这个旧的 traceroute 像 Win 一样缓慢地工作tracert
(一个一个地“查询”节点)。现代 traceroute 非常快速地给出结果。