在 macOS 上,可以使用 traceroute
命令来追踪到某个目的地的路由路径。命令格式如下:
traceroute <目标地址>
例如:
traceroute google.com
说明
traceroute
会显示从本地计算机到目标服务器的每一跳(路由器)的 IP 地址和响应时间。- 默认情况下,
traceroute
使用 UDP 数据包。如果需要使用 ICMP 数据包,可以使用-I
选项:
traceroute -I <目标地址>
这条命令在排查网络延迟或路由问题时非常有用。
traceroute
命令的参数提供了多种选项来控制数据包的类型、最大跳数、TTL 等。以下是常用参数的详细解释:
常用参数
-I
使用 ICMP 请求来追踪路径,类似于ping
命令。默认情况下,traceroute
使用的是 UDP 数据包,但某些防火墙可能阻止 UDP 包,通过 ICMP 包更易获得完整的路由信息:
traceroute -I <目标地址>
-m <跳数>
设置最大跳数(TTL)。默认值为 30,表示追踪路径时最多经过 30 个路由节点,如果到达最大值还没有到达目的地,traceroute
将停止。
traceroute -m 50 google.com
-p <端口>
指定traceroute
所使用的数据包的目标端口。默认端口在 UDP 模式下为 33434,可以根据需要更改端口(适用于 UDP 数据包):
traceroute -p 8080 google.com
-q <探测数>
指定每一跳发送的探测数据包数量,默认值为 3,表示每一跳发送 3 个数据包。增大探测数可以提高检测精度,但也会增加网络负载。
traceroute -q 5 google.com
-w <等待时间>
设置每一跳的等待时间(单位为秒),表示在每跳等待响应的时间,默认值为 5 秒。如果网络延迟较高,可以适当增加此时间。
traceroute -w 10 google.com
-n
不解析 IP 地址的主机名,直接显示 IP 地址,加快显示速度,适合快速了解网络路径。
traceroute -n google.com
-s <源地址>
指定数据包的源 IP 地址。如果计算机有多个网络接口卡(如 Wi-Fi 和以太网),可以用此参数选择从特定的 IP 地址发送数据包。
traceroute -s <源IP> google.com
-f <跳数>
指定开始的 TTL(生存时间)值,从某一跳开始追踪路径,可以跳过前面的部分路径,适用于已知的部分网络路径进行测试。
traceroute -f 5 google.com
-T
使用 TCP 数据包来追踪路径。TCP 包可以绕过一些防火墙的限制,但需要确保目标主机能接收 TCP 包。
traceroute -T google.com
常见用法示例
- 标准追踪路由(默认设置):
traceroute google.com
- 使用 ICMP 包进行追踪:
traceroute -I google.com
- 限制最大跳数为 20:
traceroute -m 20 google.com
- 指定每一跳探测包数量为 2:
traceroute -q 2 google.com
- 禁用主机名解析(只显示 IP 地址):
traceroute -n google.com
- 从特定的跳数开始追踪(跳过前几跳):
traceroute -f 10 google.com
通过这些参数,可以灵活地控制 traceroute
的行为,以适应不同的网络诊断需求。
评论 (0)