引言
traceroute 是Linux 系统中最核心的网络排查工具,通过跟踪数据包从本地到目标的「跳数 + 延迟 + 丢包」,帮你快速定位「网络不通、延迟过高、丢包」等问题。比 ping 更详细(显示中间节点),是火山引擎 ECS 实例运维的必备利器。
本文以火山引擎 ECS 实例(CentOS 7/8、Ubuntu 20/22)为例,从「安装→场景→实操」全流程讲解,贴合火山引擎实际运维场景(如跨可用区路径、公网出口排查)。
一、前置准备
- 火山引擎 ECS 实例:已创建并运行(需 root 或 sudo 权限)
- SSH 工具:Putty、Xshell、MobaXterm 等
- 网络要求:
- 实例需分配公网 IP(用于跟踪外部域名);
- 若跟踪私网实例,需同 VPC / 可用区(火山引擎私网默认互通)。
二、安装 traceroute(火山引擎实例实操)
traceroute 并非 Linux 默认工具,需安装对应软件包:
暂时无法在飞书文档外展示此内容
2.1 CentOS 7/8 安装验证
1. 登录火山引擎实例(替换为你的实例IP)ssh root@180.xx.xx.xx
2. 安装traceroute
yum install traceroute -y
3. 验证版本traceroute -V
输出:traceroute version 2.1, Copyright © 1999, 2002, 2007, 2013, 2019 Vic Abell abell@fgradm1.fnal.gov
2.2 Ubuntu 20/22 安装验证
1. 登录实例(Ubuntu默认用户为ubuntu)ssh ubuntu@180.xx.xx.xx
2. 安装traceroutesudo apt update && sudo apt install traceroute -y
3. 验证traceroute -V
三、核心使用场景(火山引擎实例贴合)
traceroute 解决运维中网络连通性 + 延迟 + 丢包的核心需求,结合火山引擎场景的常见用法:
暂时无法在飞书文档外展示此内容
四、常用命令 & 实操实例(火山引擎场景)
traceroute 核心语法:traceroute [参数] 目标地址
以下是贴合火山引擎实例的高频命令:
4.1 基础:跟踪火山引擎官网路径(UDP 默认)
场景:验证 ECS 实例到www.volcengine.com的路径
traceroute www.volcengine.com
输出说明:
- 每一行对应一个「节点」(路由器 / 交换机);
- 第一列:跳数(从 1 开始);
- 第二列:节点 IP / 域名;
- 第三列:3 次测试的延迟(ms);
-
-
- *:表示该节点超时 / 丢包。
4.2 用 TCP 协议(避免防火墙拦截 UDP)
- *:表示该节点超时 / 丢包。
-
场景:UDP 跟踪失败(比如中间节点封 UDP 33434),改用 TCP 80(HTTP 端口默认开放)
traceroute -T -p 80 www.baidu.com
参数:-T=TCP协议,-p=指定端口(80为HTTP)
4.3 跟踪火山引擎私网实例路径
场景:同 VPC 下,实例 A(172.16.0.10)跟踪实例 B(172.16.1.20)的私网路径
traceroute 172.16.1.20
注意:火山引擎私网默认互通,跨可用区路径会显示 VPC 网关节点。
4.4 带时间戳的 ICMP 跟踪(接近 ping)
场景:同时看延迟和时间戳,排查某时刻的丢包
traceroute -I -T www.aliyun.com
参数:-I=ICMP协议(更接近ping),-T=时间戳
4.5 批量跟踪云服务商域名(脚本化)
场景:同时跟踪火山引擎、阿里云、腾讯云官网的路径
创建批量脚本vim traceroute_batch.sh
写入内容:
#!/bin/bash# 批量域名列表DOMAINS=("www.volcengine.com" "www.aliyun.com" "www.tencent.com")for domain in D O M A I N S [ @ ] ; d o e c h o " = = = 跟踪域名: {DOMAINS[@]}; doecho "=== 跟踪域名: DOMAINS[@];doecho"===跟踪域名:domain ==="traceroute -T -p 80 $domain 2>&1 | head -10 # 只显示前10行echo "-------------------------"done
执行脚本:
chmod +x traceroute_batch.sh && ./traceroute_batch.sh
4.6 排查公网出口丢包(火山引擎公网 IP)
场景:实例公网 IP 为180.xx.xx.xx,跟踪到谷歌 DNS 的丢包
traceroute -T -p 53 8.8.8.8
参数:-p 53=DNS端口,避免被封
五、配置优化(可选)
5.1 添加别名简化命令
在~/.bashrc中添加常用别名:
vim ~/.bashrc
添加:alias trtcp='traceroute -T -p 80' # TCP 80跟踪alias tricmp='traceroute -I' # ICMP跟踪# 生效配置source ~/.bashrc
使用别名:trtcp www.volcengine.com
5.2 修改默认超时时间
默认每个节点超时为 5 秒,可改为 2 秒(加快跟踪速度):
traceroute -w 2 www.volcengine.com
参数:-w=超时时间(秒)
六、常见问题排查(火山引擎场景)
暂时无法在飞书文档外展示此内容
七、总结
traceroute 是火山引擎 Linux 实例网络排查的核心工具:
- 清晰展示数据包路径,快速定位丢包 / 延迟节点;
- 支持 TCP/ICMP 协议,适配不同防火墙场景;
- 脚本化批量跟踪提升运维效率。
若需更深入分析,可结合火山引擎云监控→网络监控(查看实例公网带宽、延迟指标),实现全链路网络状态监控。