一、什么是tracert命令
Tracert是一种网络诊断工具,在Linux操作系统中可以使用tracert命令。该命令可以检测数据包跳过网络互联的路由器的轨迹,并显示每个跳跃所花费的时间。通过这个命令可以检测网络的稳定性、网络故障的位置等问题。
二、tracert命令的语法
traceroute [ -46dFITUnreAV ] [ -f first_ttl ] [ -g gate,... ] [ -i iface ] [ -m max_ttl ] [ -M methods ] [ -p port ] [ -q nqueries ] [ -r ] [ -s src_addr ] [ -t tos ] [ -w waittimes ] [ -z pausemsecs ] host [ packetlen ]
traceroute命令有很多选项。其中最常用的是host,即要跟踪的主机名或者IP地址。
三、tracert命令的常用选项
-f
指定traceroute发出数据包时的初始TTL值。默认值是1,即数据包发出后路由器处理完后TTL会减1,当TTL为0时将数据包舍弃,避免在网络中循环流浪。
-m
指定traceroute发出数据包时的最大TTL值。默认值是30,即两个主机之间的最大路由数是30。
-q
指定每个TTL值默认的发送数据包数量。默认值为3,可以设置为1,可以在一些不稳定网络上进行测试。
-w
指定每个数据包在网络中跳转的等待时间。默认值是5秒,太小可能丢包,太大会导致跟踪速度慢。
-n
将IP地址转成数字显示,避免DNS查询耗时。
-v
显示每个发送和接收数据包的详细信息。
四、tracert命令的实例
实例一:跟踪到任意网络主机
traceroute www.baidu.com
其中www.baidu.com为要跟踪的主机名。以下是输出结果:
1 192.168.31.1 (192.168.31.1) 1.113 ms 1.280 ms 1.918 ms 2 10.245.0.1 (10.245.0.1) 47.422 ms 51.172 ms 53.707 ms 3 183.213.4.225 (183.213.4.225) 59.759 ms 62.472 ms 64.272 ms 4 218.30.118.145 (218.30.118.145) 75.479 ms 80.000 ms 82.965 ms 5 124.65.63.210 (124.65.63.210) 89.938 ms 93.272 ms 95.066 ms 6 124.65.62.30 (124.65.62.30) 97.920 ms * 101.805 ms 7 * * * 8 220.181.16.86 (220.181.16.86) 70.559 ms 57.770 ms 220.181.16.82 (220.181.16.82) 49.509 ms 9 220.181.70.246 (220.181.70.246) 61.309 ms 63.422 ms 65.219 ms 10 72.14.209.32 (72.14.209.32) 90.597 ms 93.493 ms 94.547 ms 11 72.14.233.146 (72.14.233.146) 98.763 ms 100.307 ms 102.186 ms 12 108.170.228.65 (108.170.228.65) 105.186 ms 106.587 ms 108.584 ms 13 * * * 14 * * * 15 * * * 16 * * * 17 180.149.152.28 (180.149.152.28) 120.107 ms 121.903 ms 123.662 ms 18 * * * 19 * * * 20 * * *
结果中的每一行代表一个中间路由器的IP地址和名称。第一个数字表示跳数。每一列表示三次数据包的时间,以毫秒为单位。星号表示数据包在网络中超时或者丢失。
实例二:查看普通用户的traceroute输出
如果你的Linux系统是在普通用户下使用的,则无法使用traceroute命令。但是可以通过在终端输入以下命令将执行权限授予普通用户。
sudo setcap cap_net_raw+ep /usr/bin/traceroute
实例三:使用不同协议进行traceroute
traceroute命令默认使用UDP协议,但是可以使用-i选项指定其他协议。例如使用TCP协议:
traceroute -T www.baidu.com
另外也可以使用ICMP协议:
traceroute -I www.baidu.com
五、总结
通过本文的阐述,我们了解了Linux系统下traceroute命令的语法、常用选项和实例。traceroute命令是网络诊断工具中的重要一环,可以用于网络故障的定位和跟踪。在实际工作中,需要经常使用traceroute命令来检测网络的稳定性和不稳定因素,以保证网络的正常运行。