网络技术知识
Linux traceroute命令
1. traceroute是什么
traceroute 命令是一个常用的网络工具,用来跟踪网络数据包从源地址到目的地址所经过的路由路径,属于诊断网络故障的利器之一。
在Linux中,traceroute常常被用来检查网络是否畅通,安装路由策略,以及查看响应时间等。traceroute 命令通过发送 ICMP 包,向目标地址中转的路由器请求数据,然后通过观察每个路由器的响应时间,来测量路由链路的质量,如路由延迟、丢包情况等。
2. traceroute的使用方法
traceroute的使用方法很简单,其基本语法如下:
traceroute [option] host
其中,host表示目标地址,option包括如下选项:
- -I:使用 ICMP 反射(echo-request)的方法进行跟踪
- -n:不将 IP 地址转成相应的 hostname 进行显示
- -m TTL:设置符可以到达的跳数,取值为 1~255
- -p port:指定扫描端口,默认为 UDP 的 33434 端口,如果需要扫描TCP端口,则添加 "-T" 参数
- -w timeout:设置等待每次回应的超时时间,单位是秒
- -q n:指定每个 hop 至多尝试次数 n,默认值为3
- -r: 不启动 route 追踪
- -s sourceaddr:设置本地源地址
- -t tos:设置 Type of Service 字段的值
- -v: 显示详细的路由路径信息, 输出每个路由的详细编号
除了基本选项外,traceroute 还提供了其他选项,具体请查看man手册。
3. traceroute的两个示例
示例1:
我们以百度为目标地址来演示,使用traceroute查看到达百度的路由路径。
执行如下命令:
traceroute www.baidu.com
执行结果如下:
traceroute to www.a.shifen.com (14.215.177.38), 30 hops max, 60 byte packets
1 192.168.31.1 (192.168.31.1) 0.617 ms 1.082 ms 1.349 ms
2 192.168.192.1 (192.168.192.1) 16.751 ms 18.324 ms 18.539 ms
3 123.123.95.145 (123.123.95.145) 16.350 ms 16.434 ms 16.161 ms
4 2.95.85.125.broad.wh.hb.dynamic.163data.com.cn (125.85.95.2) 17.661 ms 16.706 ms 17.674 ms
5 163.178.188.69 (163.178.188.69) 17.807 ms 17.224 ms 17.856 ms
6 202.97.8.181 (202.97.8.181) 17.747 ms 17.550 ms 202.97.17.141 (202.97.17.141) 16.230 ms
7 220.181.3.34 (220.181.3.34) 18.639 ms 220.181.16.34 (220.181.16.34) 17.267 ms 220.181.3.34 (220.181.3.34) 16.421 ms
8 124.65.194.6 (124.65.194.6) 67.664 ms 66.593 ms 67.929 ms
9 14.215.177.38 (14.215.177.38) 41.000 ms 40.902 ms 39.906 ms
此处,traceroute 命令已经将访问路径的每一个步骤列出来,每一行表示一条访问链接,从第一条到第30条。
其中,列出了每个跳点的IP地址,以及从本机到达某个跳点所需的时间。这个时间常常被简称为“往返时间(RTT)”。
示例2:
我们测试一下连接开发者在线工具的连接情况
执行如下命令:
traceroute devonline.net
执行结果如下:
traceroute to devonline.net (110.42.218.19), 30 hops max, 60 byte packets
1 192.168.31.1 (192.168.31.1) 0.444 ms 1.249 ms 1.294 ms
2 192.168.192.1 (192.168.192.1) 17.827 ms 18.919 ms 19.439 ms
3 123.123.95.145 (123.123.95.145) 17.324 ms 17.444 ms 16.160 ms
4 2.95.85.125.broad.wh.hb.dynamic.163data.com.cn (125.85.95.2) 17.912 ms 17.272 ms 17.929 ms
5 163.178.188.105 (163.178.188.105) 17.543 ms 17.385 ms 17.072 ms
6 124.65.194.18 (124.65.194.18) 17.154 ms 17.309 ms 16.210 ms
7 110.42.218.19 (110.42.218.19) 17.305 ms 16.854 ms 16.023 ms
从结果可以看出,我们通过了7个网络中转站,访问了目标在线工具,RTT的值在17ms左右。
4. 小结
traceroute 是一种用来查看网络数据包从源地址到目的地址所经过的路由路径的网络工具。通过在Linux终端输入traceroute命令来实现,可实现查看网络是否畅通等作用。traceroute在实际操作中需要注意一些选项的使用,在选项具体含义的基础上添加上相应的标志即可。
最后提醒大家,在使用traceroute 命令的时候,记得要遵守网络规则和安全原则,不要对他人造成妨害和困扰,否则可能会面临法律风险。