linux上路由追踪命令
-
在Linux系统中,可以使用traceroute命令来进行路由追踪。该命令用于跟踪IP数据包从本地主机到目标主机的路径,显示数据包经过的每个路由器。
使用traceroute命令的语法如下:
traceroute [选项] 目标主机其中,选项可以根据需要选择,常用的选项有:
-4:仅使用IPv4地址进行路由追踪。
-6:仅使用IPv6地址进行路由追踪。
-n:不使用DNS解析IP地址,直接显示IP地址。
-m <跳数>:设置最大跳数,即最多经过多少个路由器。例如,要追踪到目标主机www.example.com的路由,可以使用以下命令:
traceroute http://www.example.com该命令会输出每个路由器的IP地址和名称(如果已知),以及该数据包从本地主机到目标主机的响应时间。
需要注意的是,由于路由器可能会阻止ICMP协议,因此traceroute可能无法到达目标主机。在这种情况下,可以尝试使用其他工具,如traceroute-nanog或mtr,来进行路由追踪。
2年前 -
Linux上有许多可以用来追踪路由的命令,可以帮助我们分析网络故障和验证网络路径。以下是几个常用的路由追踪命令:
1. traceroute:traceroute是一个用于追踪路由的常用命令。它通过发送一系列的ICMP回显请求到目标主机,并记录每个响应的时间。这样我们就可以查看数据包经过的每个路由器和传输延迟。命令的语法如下:traceroute [options] [destination]
2. tracepath:tracepath命令与traceroute类似,但它使用的是UDP数据包而不是ICMP。这使得它可以在防火墙上更容易通过。tracepath的语法如下:tracepath [options] [destination]
3. mtr:mtr是一个非常强大的路由追踪工具,它结合了traceroute和ping的功能。它不仅会显示每个路由器的延迟,还会持续显示每个路由器的丢包率。这使得它成为诊断网络问题的有用工具。mtr的语法如下:mtr [options] [destination]
4. ip route:ip route命令用于查看和管理Linux内核路由表。它可以显示当前系统的路由信息,包括网络目标、网关和接口等。命令的语法如下:ip route [show|list] [OPTIONS] [matches]
5. ip neigh:ip neigh命令用于查看和管理Linux内核ARP缓存。它可以显示当前系统的邻居(主机或路由器)的MAC地址和对应的IP地址。这个命令可以帮助我们确定网络路径中每个路由器的MAC地址。命令的语法如下:ip neigh [show|list] [OPTIONS] [matches]
这些命令提供了不同的方式来追踪网络路径和分析网络问题。根据不同的需求,我们可以选择适合我们的命令来进行路由追踪。
2年前 -
在Linux系统中,有一个非常常用的网络诊断工具,叫做traceroute(路由追踪)。traceroute命令可以显示到达目标主机的路由路径,以及在每个跳点上的延迟时间。
traceroute的使用方式如下:
“`
traceroute [参数] 目标主机
“`下面将详细介绍traceroute命令的使用方法和操作流程。
### 1. 基本用法
“`
traceroute 目标主机
“`示例:
“`
traceroute http://www.google.com
“`在命令行中输入上述命令后,系统会开始进行路由追踪。
### 2. 参数选项
– `-I`:使用ICMP Echo请求而不是UDP数据包发送。
– `-T`:使用TCP SYN请求而不是UDP数据包发送。
– `-U`:使用UDP数据包发送。
– `-p [端口号]`:指定UDP或TCP数据包使用的端口号。
– `-n`:不进行反向域名解析。
– `-w [超时时间]`:设置每个跳点的超时时间。
– `-q [跃点数量]`:设置发送的UDP或ICMP请求的跃点数量。
– `-m [最大跃数]`:设置最大跃数,即最多追踪的路由跃点数。使用示例:
“`
traceroute -I http://www.baidu.com # 使用ICMP Echo请求
traceroute -T http://www.baidu.com # 使用TCP SYN请求
traceroute -U http://www.baidu.com # 使用UDP数据包发送
traceroute -p 8080 http://www.baidu.com # 指定端口号发送数据包
traceroute -n http://www.baidu.com # 不进行反向域名解析
traceroute -w 1 http://www.baidu.com # 设置超时时间为1秒
traceroute -q 5 http://www.baidu.com # 设置发送的UDP或ICMP请求的跃点数量为5
traceroute -m 20 http://www.baidu.com # 设置最大跳数为20
“`### 3. 输出信息解释
traceroute命令输出的信息包括每个跳点的IP地址、主机名、延迟时间等。
输出信息示例:
“`
traceroute to http://www.baidu.com (14.215.177.38), 30 hops max, 60 byte packets
1 192.168.1.1 (192.168.1.1) 1.456 ms 1.312 ms 1.385 ms
2 10.5.1.1 (10.5.1.1) 7.589 ms 7.744 ms 7.958 ms
3 210.22.65.1 (210.22.65.1) 13.632 ms 15.454 ms 12.974 ms
4 202.97.17.157 (202.97.17.157) 12.046 ms 12.256 ms 13.147 ms
5 61.148.124.214 (61.148.124.214) 12.521 ms 11.919 ms 11.841 ms
6 61.148.154.202 (61.148.154.202) 42.932 ms 42.316 ms 42.842 ms
7 61.148.5.6 (61.148.5.6) 42.185 ms 41.902 ms 42.337 ms
8 218.75.1.130 (218.75.1.130) 42.055 ms 41.454 ms 41.989 ms
9 14.215.177.38 (14.215.177.38) 44.713 ms 39.478 ms 41.654 ms
“`每行输出的信息解释如下:
– 行号:表示该路由跳点的编号。
– IP地址或主机名:表示该路由跳点的IP地址或主机名。
– 延迟时间:表示发送数据包到该路由跳点所需的时间。### 4. 追踪路由路径
traceroute命令通过向目标主机发送一系列带有时间戳的UDP或ICMP报文,逐渐增加目标主机的TTL(Time To Live),从而使得每个跳点将收到的请求转发给下一跳,直到到达目标主机或超过最大跃点数。
通过观察traceroute命令的输出信息,我们可以了解到从本机到目标主机的整个路由路径。
### 5. 使用示例
下面以traceroute命令的使用示例来进一步说明路由追踪的操作流程。
“`
$ traceroute http://www.baidu.com
“`输出示例:
“`
traceroute to http://www.baidu.com (14.215.177.38), 30 hops max, 60 byte packets
1 192.168.1.1 (192.168.1.1) 1.456 ms 1.312 ms 1.385 ms
2 10.5.1.1 (10.5.1.1) 7.589 ms 7.744 ms 7.958 ms
3 210.22.65.1 (210.22.65.1) 13.632 ms 15.454 ms 12.974 ms
4 202.97.17.157 (202.97.17.157) 12.046 ms 12.256 ms 13.147 ms
5 61.148.124.214 (61.148.124.214) 12.521 ms 11.919 ms 11.841 ms
6 61.148.154.202 (61.148.154.202) 42.932 ms 42.316 ms 42.842 ms
7 61.148.5.6 (61.148.5.6) 42.185 ms 41.902 ms 42.337 ms
8 218.75.1.130 (218.75.1.130) 42.055 ms 41.454 ms 41.989 ms
9 14.215.177.38 (14.215.177.38) 44.713 ms 39.478 ms 41.654 ms
“`从上面的输出可以分析出以下信息:
– 第一跳点的IP地址为192.168.1.1,延迟时间为1.456ms、1.312ms和1.385ms。
– 第二跳点的IP地址为10.5.1.1,延迟时间为7.589ms、7.744ms和7.958ms。
– 第八跳点的IP地址为218.75.1.130,延迟时间为42.055ms、41.454ms和41.989ms。
– 最后一跳点的IP地址为14.215.177.38,延迟时间为44.713ms、39.478ms和41.654ms。通过分析这些信息,我们可以了解到从本地主机到目标主机的整个路由路径,以及每个跳点的延迟情况。
总结:
traceroute是一个非常实用的网络诊断工具,在Linux系统中通过traceroute命令可以非常方便地追踪到达目标主机的路由路径。我们可以通过调整参数选项,以及观察输出信息来进行网络故障排查和性能优化。2年前