Linux 实例 | traceroute 网络路径跟踪全攻略:安装、场景、实操详解

域名特惠

引言

traceroute 是Linux 系统中最核心的网络排查工具,通过跟踪数据包从本地到目标的「跳数 + 延迟 + 丢包」,帮你快速定位「网络不通、延迟过高、丢包」等问题。比 ping 更详细(显示中间节点),是火山引擎 ECS 实例运维的必备利器。

本文以火山引擎 ECS 实例(CentOS 7/8、Ubuntu 20/22)为例,从「安装→场景→实操」全流程讲解,贴合火山引擎实际运维场景(如跨可用区路径、公网出口排查)。

一、前置准备

  1. 火山引擎 ECS 实例:已创建并运行(需 root 或 sudo 权限)
  2. SSH 工具:Putty、Xshell、MobaXterm 等
  3. 网络要求:
  • 实例需分配公网 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

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 协议,适配不同防火墙场景;
  • 脚本化批量跟踪提升运维效率。

若需更深入分析,可结合火山引擎云监控→网络监控(查看实例公网带宽、延迟指标),实现全链路网络状态监控。

相关推荐
Sokach10155 小时前
Linux Shell 脚本从零到能用:一个新手的一天学习总结
linux
SelectDB20 小时前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
AlfredZhao21 小时前
Docker 容器时区不对,`timedatectl` 不存在怎么办?
linux·timezone
zzzzzz3102 天前
9K Star 炸裂开源!这个 C 语言写的代码知识图谱,把 Linux 内核索引压缩到了 3 分钟
linux·服务器·sql
XIAOHEZIcode2 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220703 天前
如何搭建本地yum源(上)
运维
A小辣椒4 天前
TShark:Wireshark CLI 功能
linux
A小辣椒4 天前
TShark:基础知识
linux
AlfredZhao4 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao5 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi