什么是Traceroute,你用它做什么?
当你使用互联网时,很容易忘记有很多工作部件和服务器帮助保持万维网的活力。你发送的每一个数据包,从聊天信息到猫的照片,都必须通过交换和服务器到达目的地。
不幸的是,当你无法再连接到网站时,没有什么比这更能让你想起这个设置了。原因可能是你方、网站方或介于两者之间的某处。而找出问题所在的最好方法是使用Traceroute。
什么是Traceroute?
Traceroute是一种跟踪您的数据包在互联网上的路由的方法。每一个现代操作系统都可以追踪一条路线。
当你启动Traceroute时,你告诉它你想跟踪路由到哪个网站或服务器。通常情况下,这是一个网站URL,你试图访问,但你也可以提供一个IP地址,如果你喜欢。
启动Traceroute后,它会向您设置的目的地发送数据包。然后,它会记录数据包的行程,并将信息发送回您的电脑,然后向您显示数据包的去向。
如果您想找出网络上的故障,这真的很方便。如果服务器或交换机出现故障,Traceroute将遇到该问题,并返回报告称有些东西不能正常工作。然后,您可以使用这些信息更好地诊断出哪里出了问题。
Traceroute是如何工作的?
Traceroute是诊断网络错误的便捷方法。然而,Traceroute的发明完全归功于一个巧妙的漏洞利用了数据包的“Time—to—Live”变量。
什么是数据包的“生存时间”?
理想情况下,当计算机将包从一个地方发送到另一个地方时,它会毫不费力地到达那里。它采用从A点到B点的最快路线,不会被卡住或受阻。
不幸的是,网络可能是挑剔的东西。如果工程师在设置服务器时犯了错误,数据包可能会在服务器之间以无限循环的方式发送。如果这种情况发生得太频繁,网络可能会被塞满永远循环的数据包。
数据包背后的聪明人想出了一个解决方案,称为“生存时间”或“TTL”。每个数据包,在发送到伟大的未知之前,它的TTL值被赋予一个大于0的数字。如果这个值曾经达到0,包被认为是“死的”并被销毁。
当数据包在旅途中被发送时,它将在不同的服务器上进行多次停留。每次到达服务器时,它都会从其TTL值中减去1。通常,此TTL值被设置为一个数字,此时数据包在到达0之前有足够的时间到达目的地。但是,如果数据包确实进入环路,TTL最终会递减,直到数据包过期。
当数据包过期时,它所在的服务器会将所谓的“ICMP超时”消息发送回家乡。这本质上是一个通知,表明数据包已不合时宜地消失,并告诉用户数据包在哪里过期,以帮助进行故障排除。
数据包的生存时间如何允许Traceroute工作
此ICMP超时消息是使Traceroute正常工作的关键。首先,Traceroute会发送一个TTL设置为1的数据包。这意味着它会离开您的PC,到达第一台服务器,从其TTL中减去1,注意到它的TTL为0,然后过期。
然后,处理数据包的服务器会向您的电脑发送一条超时消息,并附上数据包的位置。然后,您的电脑会记录服务器的位置,作为迈向目标的第一步。
然后发送TTL设置为2、3等的数据包,直到数据包到达目的地。每个数据包将在下面的一步过期,沿途的每个服务器将报告过期的数据包,为您的PC提供所需的信息,以提示您的数据包的去向。
Traceroute是用来做什么的?
在基本级别上,Traceroute允许您了解数据包如何在网络中移动。无论你是一个网络工程师,仔细检查,以看到所有的流动,因为它应该,或者你只是感兴趣的是你的数据包如何传输时,你访问谷歌,Traceroute是要走的路。
但是,它对于发现系统中的错误也很有用。如果Traceroute尝试联系没有响应的服务器,它会注意到它发送的数据包已经有一段时间没有触发回复了。一旦经过了足够的时间,Traceroute就会声明“请求超时”,这意味着回复未能在分配的时间内到达。
当然,超时请求并不总是意味着服务器关闭;有时服务器不喜欢Traceroute请求,并在它们到达时阻止它们。但是,如果您相对确定链上没有服务器应该阻止Traceroute,这是一个很好的方法来诊断网站或服务器,当您试图连接到它时,它未能响应。
Traceroute和Ping有什么不同?
技术熟练的读者会发现,Traceroute听起来与另一个方便的网络工具Ping非常相似。然而,虽然这两个功能确实有一些重叠,但人们出于不同的原因使用它们。
正如我们在上面提到的,Traceroute可以帮助您找出数据包离开您的电脑后会去哪里。与此同时,Ping会告诉你,你的电脑是否可以访问特定的服务器,以及它需要多长时间才能到达那里。
因此,如果你想看到网络链的每一个部分,Traceroute就是它所在的地方。同时,如果你只是想看看服务器是否有响应,你可以ping它。当然,你也可以使用Traceroute做到这一点,但你必须等待一段时间,它最终到达你的服务器,然后你才能得到你想要的答案。
如何进行Traceroute
正如我们前面所说的,所有主要的操作系统都可以执行Traceroute。这就像打开命令终端并输入Traceroute命令一样简单。
对于macOS,您只需打开终端并键入”traceroute”,然后输入目的地的URL或IP地址。在Linux上也是一样的,但在运行之前,您可能需要先安装Traceroute。
在Linux上运行traceroute命令。
在Windows操作系统上,它的工作方式与此相同,只是该功能被称为“Tracert”。我们在有关在Windows上管理无线网络的命令的指南中介绍了Tracert和其他命令,因此如果您想了解您可以使用的工具,请务必阅读它。
图片来源:Michel Bakni/Wikimedia Commons
使用Traceroute跟踪您的数据包
如果您想查看数据包离开PC后的去向,Traceroute就是您的选择。无论您是想诊断网络问题,还是只是好奇地想知道数据包的去向,都可以轻松设置并观察数据的去向。
延伸阅读:
Wi-Fi 7在这里,你应该升级路由器的5个原因
利用当天的视频 如果我告诉你,现在可以获得比以往更快的Wi-Fi,会怎么样?你所要做的就是升级到一个新的Wi-Fi 7路...
代理与VPN:有什么区别?你应该使用哪一种?
人们使用VPN和代理服务器来隐藏自己的隐私,但它们之间有什么区别?在代理与VPN的争论中,哪一个最适合你? VPN与代理...
修复Wi-Fi登录页面不显示的6种方法
当你不在家或办公室时,你必须在酒店、咖啡馆和机场等场所使用公共Wi-Fi。这些Wi-Fi网络通常要求您登录以进行身份验证...
忘记隐藏您的Wi-Fi SSID:真正的网络安全7个步骤
隐藏您的Wi—Fi网络名称,即服务集标识符(SSID),并不能提供人们可能期望的网络安全保护。那么,为什么隐藏Wi—Fi...