哥们姐们,今天我来给你们唠唠这个Linux下的tracert,也就是traceroute,这东西我刚开始碰的时候也摸不着头脑,但后来用顺手了,真是解决了我不少烦恼。别看网上那些教程写得贼专业,我今天就用大白话,从我怎么一步一步用起来的,跟你们好好掰扯掰扯。
本站为89游戏官网游戏攻略分站,89游戏每日更新热门游戏,下载请前往主站地址:www.gm89.icu
那会儿我是真头疼
我记得是前几年,玩游戏老是卡,卡得心烦意乱的。有时候打开个网站也巨慢,慢得我怀疑人生。我这人脾气急,遇到这种事儿就想搞明白到底是怎么回事。一开始我以为是自己网线坏了,或者路由器不行了,折腾了半天,换了线,重启了路由器,好像也没啥卵用。
后来跟一个老鸟朋友聊天,抱怨这抱怨那的,他听完就嘿嘿一笑,说:“你是不是得查查你的网络路径?”我当时就懵了,网络路径是个我光知道我家到机房的网线,中间还有啥路径?他就跟我提了一嘴,说有个命令叫traceroute,能帮你看看你的数据包都走了哪些地方。
我的第一次尝试
听他一说,我赶紧跑回家,打开我的Linux系统,心里琢磨着这玩意儿咋用。他也没给我多解释,就说你试试traceroute *。我这人好奇心重,也没多想,直接就在终端里敲了这一行字,然后按下回车。
屏幕上噼里啪就跳出来一堆东西,密密麻麻的,我一看就傻眼了。全是IP地址,然后后面跟着好几个时间数字,还有些星号。我当时心想,这都是啥玩意儿?完全看不懂。但我发现,每一行前面都有个数字,从1开始,一直往上跳。朋友告诉我,那个数字就是“跳数”,英文叫Hop,意思就是你的数据包经过了多少个“路口”。
慢慢摸索,才搞明白
后来我死皮赖脸地又问了那哥们几次,加上自己没事儿就去网上瞎搜,慢慢的,我才算是把这东西给搞明白了。
你看,traceroute这命令,就是帮你追踪你的电脑发出去的数据包,从你的电脑,一路跑到你想要去的目标服务器那里,它中间都经过了哪些路由器,走了哪些路。每经过一个路由器,这就算是一“跳”(hop)。它会把这些路口的信息,包括IP地址,还有经过这个路口花了多少时间,都给你显示出来。
我总结了一下,这命令输出的一行行东西,大概就是这么个意思:
- 第一列数字: 这是跳数,从1开始,表示你的数据包经过的第几个路口。
- IP地址: 这是这一跳的路由器的IP地址。有时候它还会显示这个IP对应的域名,如果没有域名或者查不到,就只显示IP。
- 时间数字(ms): 这个最重要了。它会显示好几个时间,一般是三个,比如
1.234 ms 2.345 ms 1.123 ms。这表示traceroute发了三个探测包,每个包从你的电脑到这个路口,再返回来,分别花了多长时间。这个时间越短越说明网络越畅通。 - 星号(): 如果你看到一行全是星号,或者有几个星号,那就说明在这一跳,你的数据包没有收到回应。有可能是那个路由器配置了不回应探测包,或者更糟的情况,就是你的网络包在那里“丢了”,到不了那一跳了。如果是连续很多星号,那说明网络肯定有问题。
实战出真知:我怎么用它查问题
自从搞懂了这玩意儿,我再遇到网络慢或者卡顿,就不再傻乎乎地光重启猫和路由器了,我都会先跑个traceroute看看。
有一次,我玩个国外游戏,延迟高得离谱。我二话不说,直接traceroute了一下那个游戏的服务器IP。结果跑出来一看,发现数据包到了第八跳以后,时间突然就飙上去了,本来一两百毫秒,突然变成五六百,甚至上千毫秒。后面几跳也一直这样高得离谱。我就明白了,问题不在我家,也不在我这边的运营商,而是在出境的某个节点,或者到了国外网络以后,中间某个路口堵车了。
还有一次,我访问公司内网的一个服务,平时都很流畅,结果有一天怎么也打不开。我ping了一下,完全ping不通。然后我用traceroute去查,发现数据包根本没能到达目标服务器,而是在公司的某个内部路由器那里就断了,全是星号。这我就有底了,直接打电话给IT部门,告诉他们某个路由有问题,他们一查,果然是那台路由器挂了,很快就修好了。要不然我可能还得跟他们解释半天。
小技巧,大用处
后来我发现,traceroute还有些小参数可以用,比如:
-I:强制使用ICMP协议发探测包。默认情况下,traceroute可能用UDP。有时候,某些防火墙会禁止UDP,但允许ICMP,所以用这个参数可以绕过一些限制。-T:用TCP协议发探测包。这个用的少一些,但有些特殊情况下可能有用。
这些参数我用得不多,但知道有这么个东西,心里有数。对我来说,最常用的还是直接traceroute 目标地址,它就能给我把绝大多数问题暴露出来。
每当我电脑的网络出问题,或者朋友问我网络怎么查毛病,我第一个想到的就是traceroute。这东西就像一个网络侦探,能把你的数据包走的每一步路都给你记录下来,让你清清楚楚地看到问题到底出在哪儿。所以说,这个小工具,真的是每个玩电脑,特别是玩Linux的朋友,都应该学着使使,用好了,能省你好多心。