我有以下问题:
从Windows 7运行tracert会将所有的跃点返回给给定的服务器。从Fedora 30运行traceroute,使用相同的连接和相同的目的地,在网关IP之外只返回* **。
请你解释一下为什么它在Windows上工作,但是Fedora没有工作吗?有什么关系?
另外,当我从Fedora运行时,您能告诉我如何使traceroute返回跳吗?
发布于 2019-10-19 09:44:02
Windows的tracert在递增TTL以执行探测时使用ICMP:
如何使用TRACERT实用程序,TRACERT诊断实用程序通过向目的地发送Internet控制消息协议(ICMP)回送数据包来确定到目的地的路由。
默认情况下,软呢帽's traceroute发送UDP探测,就像以前Unix traceroute实现所做的那样。UDP是默认的(除了在编写这个答案之前做了一次捕获检查)来自男人,它首先谈到UDP:
我们不希望目标主机处理UDP探测包,因此目标端口被设置为一个不太可能的值(您可以使用-p标志来更改它)。ICMP或TCP跟踪不存在这样的问题(对于TCP,我们使用半开放技术,这样可以防止目标主机上的应用程序看到我们的探测)。
这两个工具都希望接收超过ICMP时间作为构建路由的响应。
沿着这条路径,各种路由器可能会根据所使用的探测方法选择不同的应答方式(即:根本不回答)。
如果您知道ICMP探测对您的测试工作得更好,您可以在Fedora上做同样的操作:
traceroute --icmp destination由于ICMP与UDP相反,通常需要制作特殊的数据包,因此命令可能需要根特权才能使用此选项运行。
https://serverfault.com/questions/988650
复制相似问题