跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Shell / Bash

Linux 与 Windows 系统 traceroute 与 tracert 命令详解

Linux 与 Windows 系统下的路由追踪工具 traceroute 和 tracert 利用 IP 协议 TTL 字段及 ICMP 反馈机制定位数据包传输路径。文章详解两者语法差异、常用选项及适用场景,提供正常与异常输出结果(如超时、路由环路、延迟突变)的解读方法,并给出针对各异常情况的具体解决策略,帮助运维及开发人员快速排查网络故障。

草莓泡芙发布于 2026/1/24更新于 2026/10/24106 浏览

在网络排查中,为什么访问目标地址失败?数据卡在了哪个节点?这类问题屡见不鲜。路由追踪命令(Linux 的 traceroute 与 Windows 的 tracert)正是解决这类问题的网络探针——它能精准定位数据包从本地主机到目标主机的传输路径,暴露每一跳的延迟、丢包等关键信息,是运维、开发及普通用户排查网络故障的核心工具。本文将从语法、适用场景、使用方法、结果解读、问题解决五个维度,全面拆解两个系统的路由追踪命令,让你快速上手。

一、核心概念:路由追踪命令到底是什么?

路由追踪的核心原理是利用 IP 协议的 TTL(生存时间)字段和 ICMP(互联网控制消息协议)反馈机制:

  1. 本地主机向目标主机发送数据包时,会将 TTL 值设为 1(第一跳);
  2. 数据包经过第一个路由器时,TTL 减 1 变为 0,路由器会丢弃数据包并返回 TTL 超时(ICMP Time Exceeded)消息;
  3. 本地主机记录该路由器的 IP 和延迟,再将 TTL 设为 2,重复上述过程,直到数据包到达目标主机,目标主机会返回端口不可达(ICMP Port Unreachable)消息,追踪结束。

简单说,路由追踪就像给数据包贴了个倒计时标签,通过每一跳的超时反馈,画出数据传输的完整路径,同时检测每一段的网络状态。

二、分系统详解:语法、适用场景与使用方法

(一)Linux 系统:traceroute 命令
1. 基础语法
traceroute [选项] 目标地址(IP/域名)
2. 常用选项(核心必记)
选项作用示例
-n不解析域名(仅显示 IP),速度更快traceroute -n 8.8.8.8
-m <跳数>设置最大追踪跳数(默认 30 跳)traceroute -m 20 www.baidu.com(最多追踪 20 跳)
-w <秒数>设置超时时间(默认 3 秒),避免卡顿traceroute -w 1 192.168.1.1(1 秒无响应则判定超时)
-q <次数>每跳发送的数据包数量(默认 3 个)traceroute -q 5 www.github.com(每跳发 5 个包,结果更精准)
-p <端口>指定目标端口(TCP 模式下生效)traceroute -T -p 80 www.google.com(追踪 TCP 80 端口)
-T使用 TCP 协议追踪(默认 UDP,部分网络禁用 UDP 时用)traceroute -T www.taobao.com
3. 适用场景
  • 排查 Linux 服务器访问外网 / 内网服务失败(如无法访问 API 接口、数据库连接超时);
  • 定位跨机房、跨地区网络延迟过高的节点(如南方用户访问北方服务器卡顿);
  • 检测是否存在路由环路、黑洞路由(数据包被丢弃无反馈);
  • 验证 CDN 节点是否生效(如追踪 www.taobao.com,看是否经过 CDN 节点)。
4. 基本使用步骤
  1. 打开 Linux 终端(Ctrl+Alt+T);
  2. 输入基础命令(如追踪百度):traceroute www.baidu.com;
  3. 如需精准排查,添加选项:traceroute -n -w 1 -m 25 8.8.8.8(不解析域名、1 秒超时、最多 25 跳);
  4. 等待结果输出(按 Ctrl+C 可终止追踪)。
(二)Windows 系统:tracert 命令
1. 基础语法
tracert [选项] 目标地址(IP/域名)
2. 常用选项(与 Linux 对应,易记)
选项作用示例
-d不解析域名(仅显示 IP),速度更快tracert -d 8.8.8.8
-h <跳数>设置最大追踪跳数(默认 30 跳)tracert -h 20 www.baidu.com
-w <毫秒数>设置超时时间(默认 4000 毫秒 = 4 秒)tracert -w 1000 192.168.1.1(1000 毫秒无响应则超时)
-q <次数>每跳发送的 ICMP 数据包数量(默认 3 个)tracert -q 5 www.github.com
-p <端口>指定目标端口(仅 TCP 模式,需配合-T)tracert -T -p 443 www.google.com(追踪 TCP 443 端口)
-T使用 TCP 协议追踪(默认 ICMP,部分网络禁用 ICMP 时用)tracert -T www.taobao.com
3. 适用场景
  • 普通用户排查电脑无法上网、访问网站卡顿(如打开微信网页版失败);
  • 办公场景下排查局域网内打印机、共享文件夹连接失败;
  • 游戏玩家定位延迟过高的节点(如玩外服游戏时卡顿,看是否卡在国际出口);
  • 验证路由器、光猫等设备是否正常转发数据包(如追踪 192.168.1.1,看是否能到达网关)。
4. 基本使用步骤
  1. 打开 CMD 命令提示符(Win+R→输入 cmd→回车);
  2. 输入基础命令:tracert www.baidu.com;
  3. 精准排查命令:tracert -d -w 1000 -h 25 8.8.8.8(不解析域名、1 秒超时、最多 25 跳);
  4. 等待结果输出(按 Ctrl+C 可终止追踪)。

三、结果解读:不同输出代表什么?

无论是 traceroute 还是 tracert,输出格式类似,核心关注跳数、IP / 域名、延迟、超时标识,以下是常见结果及含义:

(一)正常结果示例(Linux)
traceroute to www.baidu.com (180.101.49.11), 30 hops max, 60 byte packets
1 192.168.1.1 (192.168.1.1) 0.523 ms 0.481 ms 0.456 ms # 第 1 跳:本地网关(路由器),延迟<1ms,正常
2 10.100.0.1 (10.100.0.1) 2.134 ms 2.098 ms 2.071 ms # 第 2 跳:运营商小区网关,延迟 2ms,正常
3 221.226.18.1 (221.226.18.1) 5.345 ms 5.312 ms 5.289 ms # 第 3 跳:运营商骨干网节点,延迟 5ms,正常
...
10 180.101.49.11 (180.101.49.11) 12.456 ms 12.412 ms 12.389 ms # 第 10 跳:目标主机,追踪结束

正常结果特征:

  • 每跳均有 IP / 域名,无超时(*);
  • 延迟逐步递增(跨地区 / 跨国时延迟会明显升高,但无突变);
  • 最终到达目标地址,无环路(不会重复出现同一 IP)。
(二)异常结果及含义
  1. 某一跳出现 * * *(超时)

示例(Windows):

tracert www.github.com
1 192.168.1.1 (192.168.1.1) 1ms 1ms 1ms
2 10.100.0.1 (10.100.0.1) 3ms 2ms 2ms
3 * * * # 第 3 跳超时
4 221.226.20.1 (221.226.20.1) 8ms 7ms 7ms
...

含义:第 3 跳的路由器禁用了 ICMP 反馈(如安全策略拦截),或该节点网络拥堵、故障,但数据包可能仍能继续传输(后续跳数正常则无大碍)。

  1. 重复出现同一 IP(路由环路)

示例(Linux):

5 203.0.113.10 (203.0.113.10) 20ms 19ms 18ms
6 203.0.113.5 (203.0.113.5) 25ms 24ms 23ms
7 203.0.113.10 (203.0.113.10) 20ms 19ms 18ms
8 203.0.113.5 (203.0.113.5) 25ms 24ms 23ms
...

含义:数据包在两个节点间循环传输(TTL 不断重置),无法到达目标,通常是路由配置错误(如静态路由指向错误)。

  1. 所有跳数均为 * * *(全程超时)

示例:

traceroute -n 192.168.2.100
1 * * *
2 * * *
...
30 * * *

含义:目标主机不可达,可能原因:目标 IP 不存在、目标主机禁用 ICMP、防火墙拦截、网络链路中断(如网线断开、网关故障)。

  1. 延迟突变(某一跳延迟飙升)

示例:

5 221.226.18.1 (221.226.18.1) 6ms 5ms 5ms
6 153.37.128.1 (153.37.128.1) 300ms 298ms 295ms # 延迟从 6ms 飙升到 300ms
7 180.101.49.11 (180.101.49.11) 302ms 300ms 298ms

含义:第 6 跳节点可能存在网络拥堵、带宽占用过高(如 P2P 下载)、跨运营商互联(如电信→联通)等问题,导致延迟激增。

四、问题解决:不同异常情况怎么处理?

根据上述异常结果,针对性给出解决方案,覆盖个人用户和运维场景:

(一)某一跳超时(* * *),但后续跳数正常

问题原因:该节点禁用 ICMP 反馈(常见于运营商骨干网、企业网关),或临时拥堵。

解决方法:

  • 无需处理:若最终能到达目标(如访问网站正常),仅单跳超时不影响使用;
  • 验证网络:用 ping 目标地址测试连通性,若 ping 正常则无需干预;
  • 更换追踪协议:Linux 用 traceroute -T 目标地址(TCP 模式),Windows 用 tracert -T 目标地址,避免 ICMP 被拦截。
(二)路由环路(重复出现同一 IP)

问题原因:路由器 / 网关路由配置错误(如静态路由循环、动态路由协议故障)。

解决方法:

  1. 个人用户:

    • 重启路由器(拔掉电源 30 秒再插上),重置路由表;
    • 检查本地网络配置(如 IP 是否为静态分配,是否与网关冲突)。
  2. 运维用户:

    • 登录环路节点路由器,查看路由表(Linux:route -n;路由器:通过 Web 管理界面);
    • 删除错误路由条目,或重新配置动态路由协议(如 OSPF、BGP)。
(三)全程超时(所有跳数* * *)

问题原因:目标不可达、防火墙拦截、链路中断。

解决方法:

  1. 验证目标地址:确认 IP / 域名正确(如 www.github.com 是否拼写错误),用 nslookup 域名检查 DNS 解析是否正常;

  2. 检查本地网络:

    • 个人用户:确认电脑已连接网络(Wi-Fi / 网线正常),ping 网关(ping 192.168.1.1),若 ping 不通则重启光猫、路由器;
    • 运维用户:检查服务器网卡配置(ifconfig)、防火墙规则(Linux:iptables -L;Windows:netsh advfirewall show allprofiles),是否拦截 ICMP/TCP。
  3. 测试目标端口:用 telnet 目标 IP 端口(如 telnet www.baidu.com 80),若端口不通,可能是目标服务未启动或防火墙拦截端口。

(四)延迟突变(某一跳延迟飙升)

问题原因:节点拥堵、跨运营商、带宽不足。

解决方法:

  1. 个人用户:

    • 关闭占用带宽的应用(如迅雷、云盘同步),重新测试;
    • 更换网络(如手机热点),排除本地网络问题;
    • 访问目标的备用域名 / IP(如百度备用 IP 180.101.49.12)。
  2. 运维用户:

    • 查看拥堵节点归属(通过 whois IP 查询运营商),联系运营商优化链路;
    • 更换 CDN 节点或加速线路(如使用 BGP 多线机房);
    • 限制服务器带宽占用(如用 tc 命令限流),避免带宽饱和。
(五)目标主机可达,但访问慢(整体延迟高)

解决方法:

  • 选择更近的节点:如访问国外网站,切换至香港、新加坡节点的 VPN / 代理;
  • 优化 DNS:更换公共 DNS(如 8.8.8.8、114.114.114.114),减少 DNS 解析延迟;
  • 检查目标服务器负载:运维用户可登录目标服务器,用 top(Linux)/任务管理器(Windows)查看 CPU、内存占用,若负载过高需扩容。

五、注意事项与进阶技巧

  1. 权限要求:Linux 的 traceroute 默认使用 UDP 端口(33434-33534),普通用户即可执行;若使用-T(TCP)或-I(ICMP)选项,可能需要 sudo 权限(避免端口占用)。
  2. 防火墙影响:部分网络环境(如企业内网、校园网)会禁用 ICMP/UDP,导致 traceroute/tracert 失败,此时优先使用 TCP 模式(-T 选项)。
  3. 批量追踪工具:若需定期监控路由,可使用 mtr(Linux)/pathping(Windows),结合脚本自动化输出报告(如 mtr --report www.baidu.com > traceroute_report.txt)。
  4. 跨平台差异:Linux 的 traceroute 默认 UDP,Windows 的 tracert 默认 ICMP,若需一致性结果,建议统一使用 TCP 模式(-T 选项)。

目录

  1. 一、核心概念:路由追踪命令到底是什么?
  2. 二、分系统详解:语法、适用场景与使用方法
  3. (一)Linux 系统:traceroute 命令
  4. 1. 基础语法
  5. 2. 常用选项(核心必记)
  6. 3. 适用场景
  7. 4. 基本使用步骤
  8. (二)Windows 系统:tracert 命令
  9. 1. 基础语法
  10. 2. 常用选项(与 Linux 对应,易记)
  11. 3. 适用场景
  12. 4. 基本使用步骤
  13. 三、结果解读:不同输出代表什么?
  14. (一)正常结果示例(Linux)
  15. (二)异常结果及含义
  16. 四、问题解决:不同异常情况怎么处理?
  17. (一)某一跳超时( *),但后续跳数正常
  18. (二)路由环路(重复出现同一 IP)
  19. (三)全程超时(所有跳数 *)
  20. (四)延迟突变(某一跳延迟飙升)
  21. (五)目标主机可达,但访问慢(整体延迟高)
  22. 五、注意事项与进阶技巧

更多推荐文章

查看全部
  • Flutter WalletConnect 鸿蒙化适配:Web3 钱包连接与 DApp 授权
  • AI 写作辅助平台深度评测:炼字工坊与蛙蛙写作
  • AI 智能体搭建实战:零代码、低代码与全代码方案深度对比
  • 算法:位运算技巧与经典题目解析
  • HBuilder 真机运行模块脚本加载失败解决方案
  • 动态插桩技术 (IAST) 在 Web 应用漏洞挖掘中的实战
  • 主流 AI 大模型集合与功能介绍
  • PointWorld:面向野外机器人操作的大规模 3D 世界模型研究(一)
  • C++ 网络编程入门:TCP 协议下的简易计算器项目
  • 以太坊 Optimism 关键漏洞修复:攻击者可无限铸造代币获百万赏金
  • 求两个单链表公共后缀的起始位置算法实现与分析
  • C++中string的常用函数用法总结
  • OpenClaw 汉化中文版部署指南:npm、Docker 安装与环境配置
  • C++ 多线程:深入理解 Atomic 与 Volatile 的语义区别
  • OpenClaw 接入 QQ 机器人完整指南
  • 网络安全基础知识详解与常见问答
  • 基于 AutoGPT 与 Python 的 AI 智能体开发实战
  • ESLint 从原理到实践:构建高质量 JS/TS 代码
  • Ollama v0.17.0 更新:OpenClaw 自动安装、Web 搜索与 Tokenizer 性能优化
  • 浏览器缓存机制详解:彻底解决前端代码更新缓存问题

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online