非常有用的Linux网络诊断命令:traceroute

举报
wljslmz 发表于 2023/05/14 21:49:29 2023/05/14
【摘要】 简介traceroute 是一个网络诊断工具,用于检测数据包从本机到目标主机经过的路由路径。它可以帮助我们分析出网络连接的瓶颈,定位网络问题,并帮助我们优化网络连接。在 Linux 系统中,traceroute 命令是一个非常常用的工具。 安装 traceroute在大多数 Linux 发行版中,traceroute 工具已经默认安装,可以直接使用。如果你的系统中没有安装 tracerou...

简介

traceroute 是一个网络诊断工具,用于检测数据包从本机到目标主机经过的路由路径。它可以帮助我们分析出网络连接的瓶颈,定位网络问题,并帮助我们优化网络连接。在 Linux 系统中,traceroute 命令是一个非常常用的工具。

安装 traceroute

在大多数 Linux 发行版中,traceroute 工具已经默认安装,可以直接使用。如果你的系统中没有安装 traceroute,可以使用以下命令在 Ubuntu 中安装:

sudo apt-get install traceroute

在其他发行版中安装方法类似,可以使用相应的包管理工具安装。

使用 traceroute

traceroute 命令的基本语法如下:

traceroute [选项] 目标主机

例如:

traceroute www.baidu.com

这将输出从本机到百度的路由路径。

traceroute 命令的选项:

  • -n:不对 IP 地址进行域名解析,直接输出 IP 地址。
  • -w:设置超时时间。
  • -m:设置最大跳数。
  • -q:设置每个 TTL 值收到的回复数量。

例如:

traceroute -n -w 1 -m 20 -q 1 www.baidu.com

这将输出从本机到百度的路由路径,不进行域名解析,设置超时时间为 1 秒,最大跳数为 20,每个 TTL 值收到的回复数量为 1。

输出解释

traceroute 命令的输出有以下几个字段:

  1. 跳数:即从本机到目标主机经过的跳数。
  2. 时间:每个跳数的延迟时间。
  3. IP 地址:经过的路由器的 IP 地址或目标主机的 IP 地址。
  4. 主机名:经过的路由器的主机名。

例如:

traceroute to www.baidu.com (220.181.38.148), 30 hops max, 60 byte packets
 1  192.168.1.1 (192.168.1.1)  0.363 ms  0.340 ms  0.308 ms
 2  10.100.1.1 (10.100.1.1)  15.791 ms  15.779 ms  15.765 ms
 3  218.205.109.89 (218.205.109.89)  26.228 ms  26.217 ms  26.204 ms
 4  218.205.110.253 (218.205.110.253)  25.176 ms  25.163 ms  25.150 ms
 5  202.97.50.201 (202.97.50.201)  25.135 ms  25.123 ms  25.110 ms
 6  202.97.52.65 (202.97.52.65)  26.541 ms  26.528 ms  26.515 ms
 7  202.97.52.66 (202.97.52.66)  28.002 ms  27.989 ms  27.976 ms
 8  202.97.50.54 (202.97.50.54)  30.024 ms  30.011 ms  29.998 ms
 9  202.97.50.45 (202.97.50.45)  27.975 ms  27.962 ms  27.949 ms
10  61.135.169.121 (61.135.169.121)  28.937 ms  28.924 ms  28.911 ms
11  61.135.169.26 (61.135.169.26)  28.898 ms  28.885 ms  28.872 ms
12  220.181.38.148 (220.181.38.148)  29.726 ms  29.713 ms  29.700 ms

其中,“30 hops max” 表示最大跳数为 30。每一行输出包括跳数、时间、IP 地址和主机名(如果有的话),例如第一行输出为 “1 192.168.1.1 (192.168.1.1) 0.363 ms 0.340 ms 0.308 ms”,表示第一跳的 IP 地址为 192.168.1.1,延迟时间分别为 0.363ms、0.340ms 和 0.308ms。

traceroute 的工作原理

traceroute 使用 ICMP 协议,向目标主机发送特定的数据包(称为 TTL),每经过一个路由器,TTL 值就减 1,当 TTL 值为 0 时,路由器将会将数据包丢弃并向源主机发送一个 ICMP “超时”消息。traceroute 利用这个特性,对目标主机进行探测,获取数据包经过的路由路径。

traceroute 还使用 UDP 协议,当 ICMP 协议被防火墙或路由器过滤时,可以使用 UDP 协议进行探测。

traceroute 的常用参数

-I 参数

使用 -I 参数可以让 traceroute 使用 ICMP ECHO 请求报文而不是 UDP 数据包,从而可以绕过部分防火墙的过滤。

-p 参数

使用 -p 参数可以指定 UDP 数据包的目标端口号,从而可以避免被防火墙过滤。

-T 参数

使用 -T 参数可以让 traceroute 使用 TCP SYN 数据包,从而可以检测目标主机是否开放了指定的端口。

-z 参数

使用 -z 参数可以指定每次发送数据包之间的延迟时间。

总结

traceroute 是一个非常有用的网络诊断工具,可以帮助我们分析出网络连接的瓶颈,定位网络问题,并帮助我们优化网络连接。本文介绍了 traceroute 的基本语法和常用参数,以及其工作原理和输出解释,希望能够帮助读者更好地了解和掌握 traceroute 的使用。

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。