Linux traceroute 命令详解:Linux Command 仓库中的路由追踪实战指南 文档教程【免费下载链接】linux-commandLinux命令大全搜索工具内容包含Linux命令手册、详解、学习、搜集。https://git.io/linux项目地址https://gitcode.com/GitHub_Trending/linux/linux-command点击查看免费下载traceroute是 Linux 网络排障中定位数据包走到哪里、卡在哪里的核心工具本文以 Linux Command 仓库中的 traceroute.md 为基础完整讲解其语法、选项、输出解读与常见排障场景并结合仓库中 ping、tracepath、mtr 等网络诊断文档帮助你建立一套从连通性测试到逐跳路由分析的完整排障思路。traceroute 是什么一条命令看清数据包的网络旅程traceroute 命令用于追踪数据包在网络上的传输时的全部路径它默认发送的数据包大小是 40 字节。通过 traceroute 我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。当然每次数据包由某一同样的出发点source到达某一同样的目的地destination走的路径可能会不一样但基本上来说大部分时候所走的路由是相同的。它的工作原理基于 IP 报文头中的 TTLTime To Live存活数值字段数据包每经过一个路由器TTL 就减 1当 TTL 减到 0 时路由器会丢弃该包并向源地址回送一个 ICMP 超时报文。traceroute 正是利用这一点依次将探测包的 TTL 从 1 递增从而让每一跳的路由器都报一次到——你看到的每一行输出就是数据包沿途经过的一个网关节点。traceroute 通过发送小的数据包到目的设备直到其返回来测量其需要多长时间。一条路径上的每个设备 traceroute 要测 3 次。输出结果中包括每次测试的时间ms和设备的名称如有的话及其 IP 地址。在 Linux Command 仓库中traceroute 被归类在 README.md 的网络通讯分类下与 ping、netstat、tcpdump 等命令并列是网络诊断工具链中定位路由路径与瓶颈的关键一环。语法与参数traceroute 的基本语法非常简单traceroute(选项)(参数)组成说明选项控制探测方式、TTL 范围、输出格式等行为见下文选项详解参数主机指定目的主机 IP 地址或主机名是唯一必填参数例如追踪到www.58.com的路径traceroute www.58.com选项详解从探测方式到输出格式的全面控制traceroute 提供的选项覆盖了探测协议、TTL 范围、网络界面、输出格式、超时控制等多个维度完整选项及含义如下-d使用 Socket 层级的排错功能 -f存活数值设置第一个检测数据包的存活数值 TTL 的大小 -F设置勿离断位 -g网关设置来源路由网关最多可设置 8 个 -i网络界面使用指定的网络界面送出数据包 -I使用 ICMP 回应取代 UDP 资料信息 -m存活数值设置检测数据包的最大存活数值 TTL 的大小 -n直接使用 IP 地址而非主机名称 -p通信端口设置 UDP 传输协议的通信端口 -r忽略普通的 Routing Table直接将数据包送到远端主机上。 -s来源地址设置本地主机送出数据包的 IP 地址 -t服务类型设置检测数据包的 TOS 数值 -v详细显示指令的执行过程 -w超时秒数设置等待远端主机回报的时间 -x开启或关闭数据包的正确性检验。结合仓库文档与使用场景几个高频选项可以这样理解-m存活数值限定最大探测跳数。默认情况下 traceroute 最多探测 30 跳用该选项可缩减探测范围加快诊断速度例如-m 10表示只探测前 10 跳。-n直接以 IP 地址输出跳过 DNS 反向解析。当 DNS 解析缓慢或故障导致结果迟迟不出现时-n是首选加速手段。-I默认 traceroute 使用 UDP 报文探测-I将其切换为 ICMP Echo 请求常用于穿越只放行 ICMP 的防火墙场景。-i网络界面在多网卡主机上指定发包的网络接口例如-i eth0。-p通信端口指定 UDP 探测报文使用的目标端口默认通常为 33434 起递增改变端口可以绕过对特定端口的过滤策略。-w超时秒数设置等待远端主机回报的时间在网络丢包严重时适当调大超时值避免误判为不可达。-s来源地址指定本地主机送出数据包的源 IP适用于多 IP 主机需要以特定地址对外探测的场景。-f存活数值从指定的 TTL 值开始探测适合已知前几跳无意义时跳过它们直接看后续路径。读懂 traceroute 的输出逐跳解读网关与往返时延以文档中的完整实例为例执行traceroute www.58.com典型输出如下traceroute to www.58.com (211.151.111.30), 30 hops max, 40 byte packets 1 unknown (192.168.2.1) 3.453 ms 3.801 ms 3.937 ms 2 221.6.45.33 (221.6.45.33) 7.768 ms 7.816 ms 7.840 ms 3 221.6.0.233 (221.6.0.233) 13.784 ms 13.827 ms 221.6.9.81 (221.6.9.81) 9.758 ms 4 221.6.2.169 (221.6.2.169) 11.777 ms 122.96.66.13 (122.96.66.13) 34.952 ms 221.6.2.53 (221.6.2.53) 41.372 ms 5 219.158.96.149 (219.158.96.149) 39.167 ms 39.210 ms 39.238 ms 6 123.126.0.194 (123.126.0.194) 37.270 ms 123.126.0.66 (123.126.0.66) 37.163 ms 37.441 ms 7 124.65.57.26 (124.65.57.26) 42.787 ms 42.799 ms 42.809 ms 8 61.148.146.210 (61.148.146.210) 30.176 ms 61.148.154.98 (61.148.154.98) 32.613 ms 32.675 ms 9 202.106.42.102 (202.106.42.102) 44.563 ms 44.600 ms 44.627 ms 10 210.77.139.150 (210.77.139.150) 53.302 ms 53.233 ms 53.032 ms 11 211.151.104.6 (211.151.104.6) 39.585 ms 39.502 ms 39.598 ms 12 211.151.111.30 (211.151.111.30) 35.161 ms 35.938 ms 36.005 ms解读要点如下第一行是探测概要目的主机www.58.com解析为211.151.111.30最大 30 跳30 hops max每个探测包 40 字节40 byte packets。记录按序列号从 1 开始每个纪录就是一跳每跳表示一个网关。第 1 跳通常是本机所在网段的网关如文档示例中的192.168.2.1之后的每一跳依次是沿途的路由器。我们看到每行有三个时间单位是 ms其实就是-q的默认参数。探测数据包向每个网关发送三个数据包后网关响应后返回的时间如果用traceroute -q 4 www.58.com表示向每个网关发送 4 个数据包此时每行会出现 4 个时间值。部分行中三个时间对应的 IP 不完全相同如第 3、4 行说明这些路由器采用了多路径负载均衡ECMP同一目标的不同探测包走了不同链路这是正常现象而非故障。常见输出现象与排障技巧星号* * *输出防火墙过滤或节点不响应有时我们 traceroute 一台主机时会看到有一些行是以星号表示的。出现这样的情况可能是防火墙封掉了 ICMP 的返回信息所以我们得不到什么相关的数据包返回数据。值得注意的是星号出现的位置不一定代表网络真的中断——很多核心路由器会限制或完全不响应 ICMP 超时报文但它们依然在正常转发数据。如果星号之后仍有后续跳数输出说明路径并未断裂只有当目的主机前的连续多跳全部为星号且最终无法到达时才需要重点排查。某一跳延时异常拥塞、物理链路或 DNS 解析问题有时我们在某一网关处延时比较长有可能是某台网关比较阻塞也可能是物理设备本身的原因。当然如果某台 DNS 出现问题时不能解析主机名、域名时也会有时延长的现象您可以加-n参数来避免 DNS 解析以 IP 格式输出数据。这样既能看到原始 IP 路径又能排除 DNS 反向解析耗时对结果的干扰。典型排障场景如果在局域网中的不同网段之间我们可以通过 traceroute 来排查问题所在是主机的问题还是网关的问题。如果我们通过远程来访问某台服务器遇到问题时我们用到 traceroute 追踪数据包所经过的网关提交 IDC 服务商也有助于解决问题但目前看来在国内解决这样的问题是比较困难的就是我们发现问题所在IDC 服务商也不可能帮助我们解决。也就是说traceroute 的价值在于定位故障段把网络整体不可用细化到具体哪一跳开始异常从而区分问题属于本机网段、运营商骨干、还是目标服务器侧为后续更换链路、联系服务商或调整业务部署提供依据。跳数设置与控制探测行为的实战组合跳数设置-m当目的主机距离较近、无需探测完整 30 跳时用-m限制最大跳数可以显著缩短诊断时间[rootlocalhost ~]# traceroute -m 10 www.baidu.com traceroute to www.baidu.com (61.135.169.105), 10 hops max, 40 byte packets 1 192.168.74.2 (192.168.74.2) 1.534 ms 1.775 ms 1.961 ms 2 211.151.56.1 (211.151.56.1) 0.508 ms 0.514 ms 0.507 ms 3 211.151.227.206 (211.151.227.206) 0.571 ms 0.558 ms 0.550 ms 4 210.77.139.145 (210.77.139.145) 0.708 ms 0.729 ms 0.785 ms 5 202.106.42.101 (202.106.42.101) 7.978 ms 8.155 ms 8.311 ms 6 bt-228-037.bta.net.cn (202.106.228.37) 772.460 ms bt-228-025.bta.net.cn (202.106.228.25) 2.152 ms 61.148.154.97 (61.148.154.97) 772.107 ms 7 124.65.58.221 (124.65.58.221) 4.875 ms 61.148.146.29 (61.148.146.29) 2.124 ms 124.65.58.221 (124.65.58.221) 4.854 ms 8 123.126.6.198 (123.126.6.198) 2.944 ms 61.148.156.6 (61.148.156.6) 3.505 ms 123.126.6.198 (123.126.6.198) 2.885 ms 9 * * * 10 * * *注意该输出中第 6 跳出现了772.460 ms的异常高时延而同跳其他探测只有约 2 ms属于典型的瞬时拥塞或负载均衡导致的抖动第 9、10 跳全部为星号则是后续节点不响应 ICMP 超时报文的常见表现。其它常用实例文档中给出的其它高频用法可以直接复制使用traceroute -m 10 www.baidu.com # 跳数设置 traceroute -n www.baidu.com # 显示IP地址不查主机名 traceroute -p 6888 www.baidu.com # 探测包使用的基本UDP端口设置6888 traceroute -q 4 www.baidu.com # 把探测包的个数设置为值4 traceroute -r www.baidu.com # 绕过正常的路由表直接发送到网络相连的主机 traceroute -w 3 www.baidu.com # 把对外发探测包的等待响应时间设置为3秒几个命令的组合逻辑如下-n负责提速跳过 DNS 解析、-q 4负责增加每跳探测样本以获得更稳定的平均时延、-p 6888负责更换探测端口以绕过端口过滤、-w 3负责放宽超时等待遇到复杂网络时可按需组合使用。与仓库中其他网络诊断工具的协同使用Linux Command 仓库还收录了多个与 traceroute 定位目标相近的命令理解它们的分工能让排障更高效工具定位仓库文档ping测试主机之间网络的连通性ICMP 协议确认目标是否可达ping.mdtraceroute追踪数据包到主机间的路径定位每一跳traceroute.mdtracepath追踪并显示报文到达目的主机所经过的路由信息无需 root 权限即可使用tracepath.mdmtr结合 traceroute 和 ping 的功能持续探测每一跳并统计丢包率与时延mtr.mdhping3可构造各类数据包进行防火墙测试文档中专门提到可用于测试防火墙是否支持 traceroutehping3.md推荐的排障顺序是先用ping判断目标是否可达再用traceroute或免 root 的tracepath定位路径中具体卡在哪一跳最后可用mtr做持续观测统计各跳的丢包率与平均时延判断故障是瞬时波动还是持续性的链路质量问题。此外traceroute相关文档与索引也被打包进 dist/data.json开发者可以通过 npm 包linux-command或 CDN 直接引用这些 Markdown 内容将路由追踪的知识整合进自己的运维工具或速查手册中。小结traceroute 的核心能力可以概括为三句话利用 TTL 逐跳递增探测出完整路径、每跳三次探测提供往返时延样本、星号与异常时延提示防火墙策略与链路质量。结合本文的选项详解与排障场景你可以在局域网段隔离、远程服务不可达、运营商链路异常等实际问题中快速定位故障段并将排查结论如某跳网关时延异常作为与 IDC 或网络服务商沟通的依据。赞分享文档教程【免费下载链接】linux-commandLinux命令大全搜索工具内容包含Linux命令手册、详解、学习、搜集。https://git.io/linux项目地址https://gitcode.com/GitHub_Trending/linux/linux-command点击查看免费下载相关推荐linux-command 仓库 cp 命令详解Linux 文件复制的完整实战指南linux command 仓库 cp 命令详解Linux 文件复制的完整实战指南 本指南以 linux command 仓库中的 command/cp.md文档教程linux-command 仓库详解bash export 命令完整指南linux command 仓库详解bash export 命令完整指南 export 是 bash 内建命令用于为 shell 变量或函数设置导出属性文档教程Linux Command 命令详解pstack 进程栈跟踪实战指南Linux Command 命令详解pstack 进程栈跟踪实战指南 本文围绕 Linux Command 命令大全仓库中的 pstack 命令手册 http文档教程上一篇5分钟备份十年QQ空间说说GetQzonehistory让你彻底告别数据丢失焦虑下一篇一句话备份全部QQ说说免费开源工具GetQzonehistory完整上手指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考