Linux如何使用traceroute追踪路由_Linux traceroute追踪路由教程

穿越時空

穿越時空

2026-05-22

335人浏览

原创

traceroute 并非网络路径的准确快照,其结果受ttl、防火墙、负载均衡等影响显著;常见*号源于中间设备丢弃icmp/udp响应,并非断网,应通过-n、-i、-t等选项适配网络策略并结合curl等工具综合诊断。

linux如何使用traceroute追踪路由_linux traceroute追踪路由教程

traceroute 不是万能的路径“快照”,它反映的是某次探测时 UDP 包(默认)走的路径,受 TTL、防火墙策略、负载均衡影响很大。直接运行 traceroute example.com 往往得不到稳定或可解释的结果——得先明确你真正想查什么。

为什么 traceroute 显示一堆 * 或卡在某跳不动

最常见原因是中间设备(尤其是企业防火墙、云厂商网关、ISP 路由器)默认丢弃 ICMP Time Exceeded 或 UDP 不可达响应。这不是网络断了,而是“不回声”。
解决思路不是反复重试,而是换协议或绕过解析:
• 用 -n 立刻排除 DNS 反向解析延迟干扰
• 用 -I 切换 ICMP 模式(部分网络对 ICMP 更宽松)
• 若目标服务明确(如 HTTPS),用 sudo traceroute -T -p 443 example.com 发 TCP SYN 包,更贴近真实流量行为
• 避免在出口被限 UDP 的环境(如某些校园网、办公网)硬刚默认 UDP 模式

如何让 traceroute 结果更快、更干净

默认每跳发 3 个包、最多 30 跳、带 DNS 反查,对快速诊断是冗余负担:
• 加 -n:跳过反向 DNS 查询,输出全是 IP,秒出结果
• 加 -q 1:每跳只发 1 个探测包,减少等待时间
• 加 -m 16:多数公网路径 16 跳内能到,没必要等满 30 跳超时
• 组合示例:traceroute -n -q 1 -m 16 github.com
注意:减少探测数会削弱丢包判断依据,仅适用于“通/不通”粗略定位,不适用于分析抖动或间歇性丢包

PyCharm 2026.2.0.1 Linux版
PyCharm 2026.2.0.1 Linux版

PyCharm 2026.2.0.1 Linux版提供 JetBrains 官方 2026.2.0.1 版本安装包,适合需要指定 PyCharm 版本进行 Python 项目开发、运行和调试的用户。

下载

traceroute -I 和 traceroute -T 的权限与适用边界

-I(ICMP 模式)通常无需 root,但部分系统需 cap_net_raw 权限;-T(TCP 模式)强制要求 root(因为要构造原始 TCP 包)。
关键区别不在“谁更准”,而在“谁被放行”:
• 如果 traceroute example.com 卡在第 3 跳全是 *,但 traceroute -I example.com 能继续往下,说明中间链路封 UDP 但放 ICMP
• 如果连 -I 也卡住,再试 sudo traceroute -T -p 80 example.com;若此时能通,基本确认问题出在 UDP 过滤策略上
• 不要滥用 -T 扫描非标准端口——目标主机若无监听,SYN 包可能被静默丢弃,结果仍是 *,容易误判

别把 traceroute 当 ping 用,也别指望它还原真实业务路径

它测的是探测包路径,不是你的 HTTP 请求路径。CDN、Anycast、ECMP 负载均衡会让不同探测包走不同物理线路,同一命令多次执行结果可能跳数不一致、IP 不同。
真正要定位业务慢:
• 先用 curl -w "@format.txt" -o /dev/null -s http://example.com 看 DNS、TCP、TLS、HTTP 各阶段耗时
• 再用 traceroute -n -I example.com 对比“基础网络层是否异常”
• 若 traceroute 路径正常但 curl 超时,问题大概率在应用层(证书、后端响应、WAF 规则)而非路由本身
• 最容易被忽略的一点:traceroute 默认包长 40 字节,而实际业务包往往更大;某些链路存在 PMTU 问题,小包通、大包丢——这时得配合 tracepath 或手动 ping -s 测试 MTU

相关文章

路由优化大师
路由优化大师

路由优化大师是一款及简单的路由器设置管理软件,其主要功能是一键设置优化路由、屏广告、防蹭网、路由器全面检测及高级设置等,有需要的小伙伴快来保存下载体验吧!

下载

相关标签:

linux 路由

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
C语言变量命名
C语言变量命名

c语言变量名规则是:1、变量名以英文字母开头;2、变量名中的字母是区分大小写的;3、变量名不能是关键字;4、变量名中不能包含空格、标点符号和类型说明符。php中文网还提供c语言变量的相关下载、相关课程等内容,供大家免费下载使用。

2023.06.20

1326

3

c语言入门自学零基础
c语言入门自学零基础

C语言是当代人学习及生活中的必备基础知识,应用十分广泛,本专题为大家c语言入门自学零基础的相关文章,以及相关课程,感兴趣的朋友千万不要错过了。

2023.07.25

1505

9

c语言运算符的优先级顺序
c语言运算符的优先级顺序

c语言运算符的优先级顺序是括号运算符 > 一元运算符 > 算术运算符 > 移位运算符 > 关系运算符 > 位运算符 > 逻辑运算符 > 赋值运算符 > 逗号运算符。本专题为大家提供c语言运算符相关的各种文章、以及下载和课程。

2023.08.02

668

5

c语言数据结构
c语言数据结构

数据结构是指将数据按照一定的方式组织和存储的方法。它是计算机科学中的重要概念,用来描述和解决实际问题中的数据组织和处理问题。数据结构可以分为线性结构和非线性结构。线性结构包括数组、链表、堆栈和队列等,而非线性结构包括树和图等。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.08.09

549

4

c语言random函数用法
c语言random函数用法

c语言random函数用法:1、random.random,随机生成(0,1)之间的浮点数;2、random.randint,随机生成在范围之内的整数,两个参数分别表示上限和下限;3、random.randrange,在指定范围内,按指定基数递增的集合中获得一个随机数;4、random.choice,从序列中随机抽选一个数;5、random.shuffle,随机排序。

2023.09.05

908

5

c语言const用法
c语言const用法

const是关键字,可以用于声明常量、函数参数中的const修饰符、const修饰函数返回值、const修饰指针。详细介绍:1、声明常量,const关键字可用于声明常量,常量的值在程序运行期间不可修改,常量可以是基本数据类型,如整数、浮点数、字符等,也可是自定义的数据类型;2、函数参数中的const修饰符,const关键字可用于函数的参数中,表示该参数在函数内部不可修改等等。

2023.09.20

1106

7

c语言get函数的用法
c语言get函数的用法

get函数是一个用于从输入流中获取字符的函数。可以从键盘、文件或其他输入设备中读取字符,并将其存储在指定的变量中。本文介绍了get函数的用法以及一些相关的注意事项。希望这篇文章能够帮助你更好地理解和使用get函数 。

2023.09.20

1633

8

c数组初始化的方法
c数组初始化的方法

c语言数组初始化的方法有直接赋值法、不完全初始化法、省略数组长度法和二维数组初始化法。详细介绍:1、直接赋值法,这种方法可以直接将数组的值进行初始化;2、不完全初始化法,。这种方法可以在一定程度上节省内存空间;3、省略数组长度法,这种方法可以让编译器自动计算数组的长度;4、二维数组初始化法等等。

2023.09.22

5298

6

c语言中null和NULL的区别
c语言中null和NULL的区别

c语言中null和NULL的区别是:null是C语言中的一个宏定义,通常用来表示一个空指针,可以用于初始化指针变量,或者在条件语句中判断指针是否为空;NULL是C语言中的一个预定义常量,通常用来表示一个空值,用于表示一个空的指针、空的指针数组或者空的结构体指针。

2023.09.22

418

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
phpMyAdmin 安装文档
phpMyAdmin 安装文档

共0课时 | 0人学习

Apifox下载与安装手册
Apifox下载与安装手册

共0课时 | 0人学习

安装 Xdebug 并配置 phpstorm
安装 Xdebug 并配置 phpstorm

共1课时 | 125人学习