您的位置:

使用Linux命令追踪网络路由

一、traceroute命令

traceroute命令能够跟踪路由器从本地主机到远程目标主机的路径。可这是很有用的一种技巧,尤其在网络故障排除中,traceroute可以追踪包经过的路由器,从而找到故障出现的地方。traceroute命令简单易用,只需要输入traceroute命令,后面跟上目标IP或主机名即可显示出网络包从本地主机到目标主机所需经过的全部路由。下面是一个示例:

$ traceroute www.baidu.com
traceroute to www.baidu.com (39.156.69.79), 30 hops max, 60 byte packets
1 router.asus.com (192.168.1.1)  1.176 ms  1.680 ms  3.010 ms
2 10.75.0.1 (10.75.0.1)  19.585 ms  19.243 ms  19.556 ms
3 61.166.220.97 (61.166.220.97)  20.524 ms  20.921 ms  22.273 ms
4 61.148.155.94 (61.148.155.94)  22.720 ms 61.144.56.161 (61.144.56.161)  22.354 ms 61.148.155.94 (61.148.155.94)  23.122 ms
5 * * *
6 61.148.248.94 (61.148.248.94)  43.615 ms * *
7 61.148.248.125 (61.148.248.125)  47.553 ms 61.148.248.129 (61.148.248.129)  46.976 ms  47.280 ms
8 111.13.133.218 (111.13.133.218)  47.862 ms *  46.566 ms
9 111.13.73.83 (111.13.73.83)  47.510 ms * 111.13.73.79 (111.13.73.79)  45.869 ms
10 111.13.79.4 (111.13.79.4)  47.239 ms  46.940 ms  46.683 ms
11 183.61.50.82 (183.61.50.82)  48.413 ms  49.956 ms  51.666 ms
12 202.96.12.246 (202.96.12.246)  50.886 ms  51.997 ms 202.96.12.58 (202.96.12.58)  50.224 ms
13 * * *
14 * * *
15 * * *
...

以上命令输出结果比较详细,可以看到目标主机www.baidu.com一共经过了15个路由器,从起点router.asus.com到终点www.baidu.com的整个路径详细列出来,其中因为某些路由中转的故障导致超时无法到达的节点会用星号代替。

二、mtr命令

mtr命令是traceroute与ping的升级版,顾名思义是"MY TRACEROUTE",它将traceroute和ping的功能结合在了一起,有时候我们需要跟踪路由器时,可以用mtr这个命令,这样它就可以一直持续运行,不断更新跟踪信息,也可以测量目标主机与本地主机之间的网络延迟。下面是一个示例:

$ mtr www.baidu.com
                                                                                                    Packets               Pings
 Host                                                                                              Loss%   Snt   Last   Avg  Best  Wrst StDev
 1. router.asus.com                                                                                  0.0%    12    0.6   0.5   0.4   0.6   0.0
 2. 10.75.0.1                                                                                        0.0%    12    0.2   0.3   0.2   0.3   0.0
 3. 61.166.220.97                                                                                    0.0%    12   15.8  15.3  14.9  16.1   0.0
 4. 61.148.155.94                                                                                    0.0%    12   18.8  19.5  18.8  21.1   0.9
 5. ???
 6. 61.148.248.94                                                                                    0.0%    12   59.5  59.8  59.5  60.6   0.3
 7. 61.148.248.125                                                                                   0.0%    12   59.4  60.7  59.4  80.1   7.7
 8. 111.13.133.218                                                                                   0.0%    12   63.0  63.3  63.0  63.8   0.2
 9. 111.13.73.83                                                                                     0.0%    12   63.8  64.2  63.8  64.8   0.3
10. 111.13.79.4                                                                                      0.0%    12   63.5  63.9  63.5  64.8   0.3
11. 183.61.50.82                                                                                     0.0%    11   63.8  64.3  63.8  64.8   0.3
12. 202.97.55.110                                                                                    0.0%    11   64.3  65.4  64.3  70.4   1.7
13. 39.156.69.79                                                                                     0.0%    11   63.8  64.6  63.8  66.3   0.8

以上命令输出结果也比较详细,mtr会持续更新最新的网络路由和延迟值,最后一行为目标主机的网络延迟信息。

三、iptraf-ng命令

iptraf-ng命令是实时IP流量监控工具。它能够显示到本地主机或到网关的接口的IP头的信息,并显示具体的TCP/IP数据流。iptraf-ng包含多个工具,包括网络流量端口监控、网络连接列表、网络端口局域网分析等,能够帮助我们更好地理解本地网络环境。下面是一个示例:

$ sudo iptraf-ng

以上命令将打开iptraf-ng的主界面,可以通过按照提示输入不同的快捷键来调用相应的工具。

总结:以上三个命令都是非常实用的网络监控工具,能够帮助我们更好地理解网络环境,快速排除故障。