Linux 中 TRACEROUTE 使用浅析
Traceroute
命令是众所周知的网络工具,使用该命令我们可以确认网络数据包源和目标之间的跳数。Traceroute
命令除了显示具体的条数,还可以让我们清晰的了解到数据包经过的具体路径/服务器( path/server )。
通常情况下我们会在网络丢包的时候使用到 Traceroute
命令,因为 `` 可以显示出它每一个心跳包经过的具体地址或服务器节点,所以我们可以方便的确认网络丢包是在哪个地址或节点发生的。
相关阅读推荐:使用 iftop 命令监控网络带宽
本文将讲述如何在 Linux 中安装 traceroute 命令,已经如何使用它定位和解决网络问题。
Linux 安装 traceroute 命令
CentOS/RHEL/Oracle Linux/Amazon Linux
# yum install traceroute
Ubuntu/Debian/Mint
# apt-get install traceroute
Fedora
# dnf install traceroute
如果使用的是 sudo
用户,那么需要在安装命令时加上 sudo
。接下来让我们讨论下具体语法。
语法
traceroute [选项] 参数
Linux 中 traceroute 使用举例
1. 检查某个服务器路由
通过下面的命令我们可以非常简单的通过网络心跳包而获得到达某个服务器或网站(如:google.com )的具体的路由信息。
$ traceroute google.com
同样的我们也可以通过 traceroute
跟踪某个服务器或网站的具体IP
$ traceroute 8.8.8.8
具体命令运行结果如下图:
命令运行结果展示了下面的信息:
第一行中命令后面的信息表明具体的目标IP地址(截图中用黑色标识)
接下来一行及后面的所有行展示了具体的心跳,IP地址,响应时间等。
默认情况下,linux 中 traceroute 会向每个节点发送 3 个数据包,因此每一行应该有 3 个响应时间。
有些时候在响应时间的地方会显示
*
,这表明我们无法得到对应请求的响应时间
以上 2 个例子中我们使用的都是 IPV4 ,而发送 IPV6 的路由查询我们可以使用下面的命令
$ traceroute -6 ipv6.google.com
2. 配置 traceroute 的 TTL 值
traceroute
默认情况下的 TTL 值是 1
,但是我们可以通过 -f
选项修改该值,如:
$ traceroute -f 5 google.com
3. 配置响应时间
通过 w
可以修改默认的响应时间
$ traceroute -w 0.5 google.com
4. 配置查询数据包数量
traceroute
会默认向每个心跳发送 3 个数据包,同时返回 3 个响应时间。我们可以通过 q
修改查询数据包数量
$ traceroute -q 6 google.com
表示向每个网关发送 6 个数据包。
5. 禁用主机名而使用IP
有时我们在某一网关处延时比较长,有可能是某台网关比较阻塞,也可能是物理设备本身的原因。当然如果某台 DNS 出现问题时,不能解析主机名、域名时,也会 有延时长的现象;您可以加 -n
参数来避免 DNS 解析,以 IP 格式输出数据。
$ traceroute -n google.com
6. 配置 traceroute 的数据网卡
如果你的 Linux 系统中有多块网卡,那么可以通过 i
选项配置 traceroute 的数据使用的网卡。
$ traceroute -i p2p0 google.com
以上我们仅仅讨论了 traceroute 的部分命令,具体更多相关命令我们可以参照具体的 MAN
帮助页。
具体参数:
1 | -d:使用Socket层级的排错功能; |