网络路径探测三大技术:原理、缺陷与选型指南

一、为什么需要路径探测?

想知道你的数据包从电脑到服务器,经过了哪些路由器


二、三种技术原理对比

#mermaid-svg-zyupOaXSNl2DEN6a{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-zyupOaXSNl2DEN6a .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-zyupOaXSNl2DEN6a .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-zyupOaXSNl2DEN6a .error-icon{fill:#552222;}#mermaid-svg-zyupOaXSNl2DEN6a .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-zyupOaXSNl2DEN6a .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-zyupOaXSNl2DEN6a .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-zyupOaXSNl2DEN6a .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-zyupOaXSNl2DEN6a .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-zyupOaXSNl2DEN6a .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-zyupOaXSNl2DEN6a .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-zyupOaXSNl2DEN6a .marker{fill:#333333;stroke:#333333;}#mermaid-svg-zyupOaXSNl2DEN6a .marker.cross{stroke:#333333;}#mermaid-svg-zyupOaXSNl2DEN6a svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-zyupOaXSNl2DEN6a p{margin:0;}#mermaid-svg-zyupOaXSNl2DEN6a .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-zyupOaXSNl2DEN6a .cluster-label text{fill:#333;}#mermaid-svg-zyupOaXSNl2DEN6a .cluster-label span{color:#333;}#mermaid-svg-zyupOaXSNl2DEN6a .cluster-label span p{background-color:transparent;}#mermaid-svg-zyupOaXSNl2DEN6a .label text,#mermaid-svg-zyupOaXSNl2DEN6a span{fill:#333;color:#333;}#mermaid-svg-zyupOaXSNl2DEN6a .node rect,#mermaid-svg-zyupOaXSNl2DEN6a .node circle,#mermaid-svg-zyupOaXSNl2DEN6a .node ellipse,#mermaid-svg-zyupOaXSNl2DEN6a .node polygon,#mermaid-svg-zyupOaXSNl2DEN6a .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-zyupOaXSNl2DEN6a .rough-node .label text,#mermaid-svg-zyupOaXSNl2DEN6a .node .label text,#mermaid-svg-zyupOaXSNl2DEN6a .image-shape .label,#mermaid-svg-zyupOaXSNl2DEN6a .icon-shape .label{text-anchor:middle;}#mermaid-svg-zyupOaXSNl2DEN6a .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-zyupOaXSNl2DEN6a .rough-node .label,#mermaid-svg-zyupOaXSNl2DEN6a .node .label,#mermaid-svg-zyupOaXSNl2DEN6a .image-shape .label,#mermaid-svg-zyupOaXSNl2DEN6a .icon-shape .label{text-align:center;}#mermaid-svg-zyupOaXSNl2DEN6a .node.clickable{cursor:pointer;}#mermaid-svg-zyupOaXSNl2DEN6a .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-zyupOaXSNl2DEN6a .arrowheadPath{fill:#333333;}#mermaid-svg-zyupOaXSNl2DEN6a .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-zyupOaXSNl2DEN6a .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-zyupOaXSNl2DEN6a .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-zyupOaXSNl2DEN6a .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-zyupOaXSNl2DEN6a .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-zyupOaXSNl2DEN6a .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-zyupOaXSNl2DEN6a .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-zyupOaXSNl2DEN6a .cluster text{fill:#333;}#mermaid-svg-zyupOaXSNl2DEN6a .cluster span{color:#333;}#mermaid-svg-zyupOaXSNl2DEN6a div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-zyupOaXSNl2DEN6a .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-zyupOaXSNl2DEN6a rect.text{fill:none;stroke-width:0;}#mermaid-svg-zyupOaXSNl2DEN6a .icon-shape,#mermaid-svg-zyupOaXSNl2DEN6a .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-zyupOaXSNl2DEN6a .icon-shape p,#mermaid-svg-zyupOaXSNl2DEN6a .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-zyupOaXSNl2DEN6a .icon-shape .label rect,#mermaid-svg-zyupOaXSNl2DEN6a .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-zyupOaXSNl2DEN6a .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-zyupOaXSNl2DEN6a .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-zyupOaXSNl2DEN6a :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} ICMP


TCP


正常会话


开始路径探测
选择探测协议
发送 TTL=1/2/3... 的 UDP/ICMP 包
中间路由器 TTL 耗尽
返回 ICMP 超时消息
源端获取该跳 IP
到达目标?
目标返回 ICMP 端口不可达/应答
✅ 获得完整路径
发送 TTL=1/2/3... 的 SYN 包
中间路由器 TTL 耗尽
返回 ICMP 超时消息
源端获取该跳 IP
到达目标?
目标返回 SYN-ACK 或 RST
✅ 获得完整路径
在已建立的 TCP 连接中

发送 TTL递增的 ACK 包
中间路由器 TTL 耗尽
返回 ICMP 超时消息
源端获取该跳 IP
到达目标?
目标正常接收 ACK

不影响业务
✅ 获得完整路径


三、三种技术核心对比(一图看懂)

#mermaid-svg-5iIEBVcNMdOOSSwp{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-5iIEBVcNMdOOSSwp .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-5iIEBVcNMdOOSSwp .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-5iIEBVcNMdOOSSwp .error-icon{fill:#552222;}#mermaid-svg-5iIEBVcNMdOOSSwp .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-5iIEBVcNMdOOSSwp .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-5iIEBVcNMdOOSSwp .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-5iIEBVcNMdOOSSwp .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-5iIEBVcNMdOOSSwp .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-5iIEBVcNMdOOSSwp .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-5iIEBVcNMdOOSSwp .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-5iIEBVcNMdOOSSwp .marker{fill:#333333;stroke:#333333;}#mermaid-svg-5iIEBVcNMdOOSSwp .marker.cross{stroke:#333333;}#mermaid-svg-5iIEBVcNMdOOSSwp svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-5iIEBVcNMdOOSSwp p{margin:0;}#mermaid-svg-5iIEBVcNMdOOSSwp .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-5iIEBVcNMdOOSSwp .cluster-label text{fill:#333;}#mermaid-svg-5iIEBVcNMdOOSSwp .cluster-label span{color:#333;}#mermaid-svg-5iIEBVcNMdOOSSwp .cluster-label span p{background-color:transparent;}#mermaid-svg-5iIEBVcNMdOOSSwp .label text,#mermaid-svg-5iIEBVcNMdOOSSwp span{fill:#333;color:#333;}#mermaid-svg-5iIEBVcNMdOOSSwp .node rect,#mermaid-svg-5iIEBVcNMdOOSSwp .node circle,#mermaid-svg-5iIEBVcNMdOOSSwp .node ellipse,#mermaid-svg-5iIEBVcNMdOOSSwp .node polygon,#mermaid-svg-5iIEBVcNMdOOSSwp .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-5iIEBVcNMdOOSSwp .rough-node .label text,#mermaid-svg-5iIEBVcNMdOOSSwp .node .label text,#mermaid-svg-5iIEBVcNMdOOSSwp .image-shape .label,#mermaid-svg-5iIEBVcNMdOOSSwp .icon-shape .label{text-anchor:middle;}#mermaid-svg-5iIEBVcNMdOOSSwp .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-5iIEBVcNMdOOSSwp .rough-node .label,#mermaid-svg-5iIEBVcNMdOOSSwp .node .label,#mermaid-svg-5iIEBVcNMdOOSSwp .image-shape .label,#mermaid-svg-5iIEBVcNMdOOSSwp .icon-shape .label{text-align:center;}#mermaid-svg-5iIEBVcNMdOOSSwp .node.clickable{cursor:pointer;}#mermaid-svg-5iIEBVcNMdOOSSwp .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-5iIEBVcNMdOOSSwp .arrowheadPath{fill:#333333;}#mermaid-svg-5iIEBVcNMdOOSSwp .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-5iIEBVcNMdOOSSwp .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-5iIEBVcNMdOOSSwp .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-5iIEBVcNMdOOSSwp .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-5iIEBVcNMdOOSSwp .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-5iIEBVcNMdOOSSwp .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-5iIEBVcNMdOOSSwp .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-5iIEBVcNMdOOSSwp .cluster text{fill:#333;}#mermaid-svg-5iIEBVcNMdOOSSwp .cluster span{color:#333;}#mermaid-svg-5iIEBVcNMdOOSSwp div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-5iIEBVcNMdOOSSwp .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-5iIEBVcNMdOOSSwp rect.text{fill:none;stroke-width:0;}#mermaid-svg-5iIEBVcNMdOOSSwp .icon-shape,#mermaid-svg-5iIEBVcNMdOOSSwp .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-5iIEBVcNMdOOSSwp .icon-shape p,#mermaid-svg-5iIEBVcNMdOOSSwp .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-5iIEBVcNMdOOSSwp .icon-shape .label rect,#mermaid-svg-5iIEBVcNMdOOSSwp .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-5iIEBVcNMdOOSSwp .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-5iIEBVcNMdOOSSwp .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-5iIEBVcNMdOOSSwp :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 0trace方案
发送 ACK
TTL递增
靠ICMP超时回显
TCP方案
发送 SYN
TTL递增
靠ICMP超时回显
ICMP方案
发送 UDP/ICMP
TTL递增
靠ICMP超时回显
❌ 设备禁用ICMP就废
❌ NAT设备丢包
⚠️ 依赖已有会话


四、优缺点速查表

方案 工具示例 原理一句话 ✅ 优势 ❌ 缺陷
ICMP traceroute TTL递增,靠ICMP超时报文反推路径 简单通用,所有系统自带 路径设备禁用ICMP则完全失效
TCP traceroute -T tcptraceroute TTL递增的SYN包,靠ICMP超时报文反推路径 可穿透仅允许TCP的防火墙 不完整握手被NAT/状态防火墙丢弃
0trace 0trace 在已有TCP会话中发TTL递增的ACK包 伪装成正常流量,可探测内网段,绕过防火墙 必须有现存的TCP连接,建议多次运行

五、三种场景下的路径可见性

#mermaid-svg-Kf9cAAPDGkktD0sC{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-Kf9cAAPDGkktD0sC .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-Kf9cAAPDGkktD0sC .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-Kf9cAAPDGkktD0sC .error-icon{fill:#552222;}#mermaid-svg-Kf9cAAPDGkktD0sC .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-Kf9cAAPDGkktD0sC .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-Kf9cAAPDGkktD0sC .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-Kf9cAAPDGkktD0sC .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-Kf9cAAPDGkktD0sC .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-Kf9cAAPDGkktD0sC .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-Kf9cAAPDGkktD0sC .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-Kf9cAAPDGkktD0sC .marker{fill:#333333;stroke:#333333;}#mermaid-svg-Kf9cAAPDGkktD0sC .marker.cross{stroke:#333333;}#mermaid-svg-Kf9cAAPDGkktD0sC svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-Kf9cAAPDGkktD0sC p{margin:0;}#mermaid-svg-Kf9cAAPDGkktD0sC .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-Kf9cAAPDGkktD0sC .cluster-label text{fill:#333;}#mermaid-svg-Kf9cAAPDGkktD0sC .cluster-label span{color:#333;}#mermaid-svg-Kf9cAAPDGkktD0sC .cluster-label span p{background-color:transparent;}#mermaid-svg-Kf9cAAPDGkktD0sC .label text,#mermaid-svg-Kf9cAAPDGkktD0sC span{fill:#333;color:#333;}#mermaid-svg-Kf9cAAPDGkktD0sC .node rect,#mermaid-svg-Kf9cAAPDGkktD0sC .node circle,#mermaid-svg-Kf9cAAPDGkktD0sC .node ellipse,#mermaid-svg-Kf9cAAPDGkktD0sC .node polygon,#mermaid-svg-Kf9cAAPDGkktD0sC .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-Kf9cAAPDGkktD0sC .rough-node .label text,#mermaid-svg-Kf9cAAPDGkktD0sC .node .label text,#mermaid-svg-Kf9cAAPDGkktD0sC .image-shape .label,#mermaid-svg-Kf9cAAPDGkktD0sC .icon-shape .label{text-anchor:middle;}#mermaid-svg-Kf9cAAPDGkktD0sC .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-Kf9cAAPDGkktD0sC .rough-node .label,#mermaid-svg-Kf9cAAPDGkktD0sC .node .label,#mermaid-svg-Kf9cAAPDGkktD0sC .image-shape .label,#mermaid-svg-Kf9cAAPDGkktD0sC .icon-shape .label{text-align:center;}#mermaid-svg-Kf9cAAPDGkktD0sC .node.clickable{cursor:pointer;}#mermaid-svg-Kf9cAAPDGkktD0sC .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-Kf9cAAPDGkktD0sC .arrowheadPath{fill:#333333;}#mermaid-svg-Kf9cAAPDGkktD0sC .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-Kf9cAAPDGkktD0sC .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-Kf9cAAPDGkktD0sC .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-Kf9cAAPDGkktD0sC .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-Kf9cAAPDGkktD0sC .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-Kf9cAAPDGkktD0sC .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-Kf9cAAPDGkktD0sC .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-Kf9cAAPDGkktD0sC .cluster text{fill:#333;}#mermaid-svg-Kf9cAAPDGkktD0sC .cluster span{color:#333;}#mermaid-svg-Kf9cAAPDGkktD0sC div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-Kf9cAAPDGkktD0sC .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-Kf9cAAPDGkktD0sC rect.text{fill:none;stroke-width:0;}#mermaid-svg-Kf9cAAPDGkktD0sC .icon-shape,#mermaid-svg-Kf9cAAPDGkktD0sC .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-Kf9cAAPDGkktD0sC .icon-shape p,#mermaid-svg-Kf9cAAPDGkktD0sC .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-Kf9cAAPDGkktD0sC .icon-shape .label rect,#mermaid-svg-Kf9cAAPDGkktD0sC .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-Kf9cAAPDGkktD0sC .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-Kf9cAAPDGkktD0sC .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-Kf9cAAPDGkktD0sC :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 场景3: 路径中有IDS/IPS
ICMP traceroute
⚠️ 可能告警
TCP traceroute
❌ 易被识别为扫描
0trace
✅ 隐蔽性最高
场景2: 路径中有NAT/状态防火墙
ICMP traceroute
⚠️ 可能断在NAT前
TCP traceroute
❌ NAT丢包
0trace
✅ 利用已有会话穿透
场景1: 目标禁用ICMP
ICMP traceroute
❌ 终点无响应
TCP traceroute
✅ 可到达
0trace
✅ 可到达


六、什么情况下永远探不到完整路径?

#mermaid-svg-DJ9zsaGmVOlVSFxk{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-DJ9zsaGmVOlVSFxk .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-DJ9zsaGmVOlVSFxk .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-DJ9zsaGmVOlVSFxk .error-icon{fill:#552222;}#mermaid-svg-DJ9zsaGmVOlVSFxk .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-DJ9zsaGmVOlVSFxk .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-DJ9zsaGmVOlVSFxk .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-DJ9zsaGmVOlVSFxk .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-DJ9zsaGmVOlVSFxk .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-DJ9zsaGmVOlVSFxk .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-DJ9zsaGmVOlVSFxk .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-DJ9zsaGmVOlVSFxk .marker{fill:#333333;stroke:#333333;}#mermaid-svg-DJ9zsaGmVOlVSFxk .marker.cross{stroke:#333333;}#mermaid-svg-DJ9zsaGmVOlVSFxk svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-DJ9zsaGmVOlVSFxk p{margin:0;}#mermaid-svg-DJ9zsaGmVOlVSFxk .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-DJ9zsaGmVOlVSFxk .cluster-label text{fill:#333;}#mermaid-svg-DJ9zsaGmVOlVSFxk .cluster-label span{color:#333;}#mermaid-svg-DJ9zsaGmVOlVSFxk .cluster-label span p{background-color:transparent;}#mermaid-svg-DJ9zsaGmVOlVSFxk .label text,#mermaid-svg-DJ9zsaGmVOlVSFxk span{fill:#333;color:#333;}#mermaid-svg-DJ9zsaGmVOlVSFxk .node rect,#mermaid-svg-DJ9zsaGmVOlVSFxk .node circle,#mermaid-svg-DJ9zsaGmVOlVSFxk .node ellipse,#mermaid-svg-DJ9zsaGmVOlVSFxk .node polygon,#mermaid-svg-DJ9zsaGmVOlVSFxk .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-DJ9zsaGmVOlVSFxk .rough-node .label text,#mermaid-svg-DJ9zsaGmVOlVSFxk .node .label text,#mermaid-svg-DJ9zsaGmVOlVSFxk .image-shape .label,#mermaid-svg-DJ9zsaGmVOlVSFxk .icon-shape .label{text-anchor:middle;}#mermaid-svg-DJ9zsaGmVOlVSFxk .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-DJ9zsaGmVOlVSFxk .rough-node .label,#mermaid-svg-DJ9zsaGmVOlVSFxk .node .label,#mermaid-svg-DJ9zsaGmVOlVSFxk .image-shape .label,#mermaid-svg-DJ9zsaGmVOlVSFxk .icon-shape .label{text-align:center;}#mermaid-svg-DJ9zsaGmVOlVSFxk .node.clickable{cursor:pointer;}#mermaid-svg-DJ9zsaGmVOlVSFxk .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-DJ9zsaGmVOlVSFxk .arrowheadPath{fill:#333333;}#mermaid-svg-DJ9zsaGmVOlVSFxk .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-DJ9zsaGmVOlVSFxk .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-DJ9zsaGmVOlVSFxk .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-DJ9zsaGmVOlVSFxk .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-DJ9zsaGmVOlVSFxk .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-DJ9zsaGmVOlVSFxk .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-DJ9zsaGmVOlVSFxk .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-DJ9zsaGmVOlVSFxk .cluster text{fill:#333;}#mermaid-svg-DJ9zsaGmVOlVSFxk .cluster span{color:#333;}#mermaid-svg-DJ9zsaGmVOlVSFxk div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-DJ9zsaGmVOlVSFxk .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-DJ9zsaGmVOlVSFxk rect.text{fill:none;stroke-width:0;}#mermaid-svg-DJ9zsaGmVOlVSFxk .icon-shape,#mermaid-svg-DJ9zsaGmVOlVSFxk .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-DJ9zsaGmVOlVSFxk .icon-shape p,#mermaid-svg-DJ9zsaGmVOlVSFxk .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-DJ9zsaGmVOlVSFxk .icon-shape .label rect,#mermaid-svg-DJ9zsaGmVOlVSFxk .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-DJ9zsaGmVOlVSFxk .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-DJ9zsaGmVOlVSFxk .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-DJ9zsaGmVOlVSFxk :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 防火墙丢弃所有出站ICMP
❌ 收不到任何回显
防火墙重写TTL值
路径中有七层代理/负载均衡
目标后无三层设备

如容器/虚拟网络
IPS主动检测并干扰
结论: 路径探测不是万能的

需结合业务拓扑综合判断


七、一句话选型建议

#mermaid-svg-3VkJUWXKF1CmGNRB{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-3VkJUWXKF1CmGNRB .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-3VkJUWXKF1CmGNRB .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-3VkJUWXKF1CmGNRB .error-icon{fill:#552222;}#mermaid-svg-3VkJUWXKF1CmGNRB .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-3VkJUWXKF1CmGNRB .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-3VkJUWXKF1CmGNRB .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-3VkJUWXKF1CmGNRB .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-3VkJUWXKF1CmGNRB .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-3VkJUWXKF1CmGNRB .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-3VkJUWXKF1CmGNRB .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-3VkJUWXKF1CmGNRB .marker{fill:#333333;stroke:#333333;}#mermaid-svg-3VkJUWXKF1CmGNRB .marker.cross{stroke:#333333;}#mermaid-svg-3VkJUWXKF1CmGNRB svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-3VkJUWXKF1CmGNRB p{margin:0;}#mermaid-svg-3VkJUWXKF1CmGNRB .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-3VkJUWXKF1CmGNRB .cluster-label text{fill:#333;}#mermaid-svg-3VkJUWXKF1CmGNRB .cluster-label span{color:#333;}#mermaid-svg-3VkJUWXKF1CmGNRB .cluster-label span p{background-color:transparent;}#mermaid-svg-3VkJUWXKF1CmGNRB .label text,#mermaid-svg-3VkJUWXKF1CmGNRB span{fill:#333;color:#333;}#mermaid-svg-3VkJUWXKF1CmGNRB .node rect,#mermaid-svg-3VkJUWXKF1CmGNRB .node circle,#mermaid-svg-3VkJUWXKF1CmGNRB .node ellipse,#mermaid-svg-3VkJUWXKF1CmGNRB .node polygon,#mermaid-svg-3VkJUWXKF1CmGNRB .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-3VkJUWXKF1CmGNRB .rough-node .label text,#mermaid-svg-3VkJUWXKF1CmGNRB .node .label text,#mermaid-svg-3VkJUWXKF1CmGNRB .image-shape .label,#mermaid-svg-3VkJUWXKF1CmGNRB .icon-shape .label{text-anchor:middle;}#mermaid-svg-3VkJUWXKF1CmGNRB .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-3VkJUWXKF1CmGNRB .rough-node .label,#mermaid-svg-3VkJUWXKF1CmGNRB .node .label,#mermaid-svg-3VkJUWXKF1CmGNRB .image-shape .label,#mermaid-svg-3VkJUWXKF1CmGNRB .icon-shape .label{text-align:center;}#mermaid-svg-3VkJUWXKF1CmGNRB .node.clickable{cursor:pointer;}#mermaid-svg-3VkJUWXKF1CmGNRB .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-3VkJUWXKF1CmGNRB .arrowheadPath{fill:#333333;}#mermaid-svg-3VkJUWXKF1CmGNRB .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-3VkJUWXKF1CmGNRB .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-3VkJUWXKF1CmGNRB .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-3VkJUWXKF1CmGNRB .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-3VkJUWXKF1CmGNRB .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-3VkJUWXKF1CmGNRB .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-3VkJUWXKF1CmGNRB .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-3VkJUWXKF1CmGNRB .cluster text{fill:#333;}#mermaid-svg-3VkJUWXKF1CmGNRB .cluster span{color:#333;}#mermaid-svg-3VkJUWXKF1CmGNRB div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-3VkJUWXKF1CmGNRB .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-3VkJUWXKF1CmGNRB rect.text{fill:none;stroke-width:0;}#mermaid-svg-3VkJUWXKF1CmGNRB .icon-shape,#mermaid-svg-3VkJUWXKF1CmGNRB .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-3VkJUWXKF1CmGNRB .icon-shape p,#mermaid-svg-3VkJUWXKF1CmGNRB .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-3VkJUWXKF1CmGNRB .icon-shape .label rect,#mermaid-svg-3VkJUWXKF1CmGNRB .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-3VkJUWXKF1CmGNRB .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-3VkJUWXKF1CmGNRB .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-3VkJUWXKF1CmGNRB :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 是



我要探测路径
目标是否允许ICMP?
✅ 直接用 traceroute

最快最简单
是否有已有的TCP会话?
✅ 用 0trace

最隐蔽
⚠️ 用 traceroute -T

但可能被NAT丢包


八、核心结论

没有万能的路径探测工具,ICMP最快但最容易被禁,TCP能绕过ICMP限制但怕NAT,0trace最隐蔽但依赖已有会话。实际工作中,三种方法结合使用,并接受"某些路径永远看不到"的现实。

相关推荐
草莓熊Lotso1 小时前
【Linux网络】深入理解Linux IO多路复用:select服务器完善、内核原理与poll实战
linux·运维·服务器·c语言·网络·c++
●VON2 小时前
鸿蒙 PC Markdown 编辑器 Alpha 评审:如何用退出条件判断阶段完成
网络·安全·华为·编辑器·harmonyos·鸿蒙
nVisual2 小时前
01-环境监控集成方案
运维·服务器·开发语言·网络·数据库·数据中心布线·综合布线管理软件
会编程的土豆2 小时前
HTTP 是什么:你打开 localhost:8080 时发生了什么
网络·网络协议·http
M1582276905511 小时前
跨协议互通利器|SG-PN-EIP (S)-220 Profinet 转 EtherNet/IP 网关,打通欧美 PLC 通讯壁垒
网络·网络协议·tcp/ip
北龙云海12 小时前
案例分享 | 面向公网业务系统境内访问白名单配置实操方案
运维·网络·安全·网络安全·告警·数据泄露·入侵攻击
闲猫13 小时前
Spring AI对接Deepseek 使用Charles代理api.deepseek.com 拦截报文,查看Tool和Skill的本质
网络·网络协议·http
niaiheni14 小时前
Fastjson 1.2.83 “Gadget-Free“ RCE
网络·安全·web安全
意疏15 小时前
远程办公软件哪个安全性高?UU远程8项安全防线全覆盖
网络·安全