对于高级用户或IT专业人员而言,我们所使用的操作系统(包括 Windows、macOS 和 GNU/Linux)中的控制台或终端始终是日常工作中不可或缺的重要组成部分。正因如此,庞大且日益壮大的全球 Linux 社区为我们的生态系统贡献了许多出色的工具,这些工具往往能够替代甚至超越其图形界面(GUI)的同类产品。这一点我们完全可以通过许多实例来加以佐证——例如我们此前曾探讨过的那些命令行(CLI)工具。具体来说,包括 speedtest-cli、Trash-cli、Inxi 和 Bit 等;而今天,我们要介绍一款名为“TTL”的命令行工具,它对于诊断各类场景(无论是家庭环境还是商业环境)下的网络故障都将大有裨益。
TTL 是一款小巧却功能强大的命令行工具。有了它,我们便无需再频繁使用 GNU/Linux 系统中那些常见的网络命令——例如 traceroute(该命令用于可视化追踪数据包在网络中从源系统传输至目标主机的路由路径)以及 ping(该命令利用 ICMP 协议来验证当前系统与网络中其他主机之间的连接状态)。那么,如果您正是那种经常需要对这类技术指标进行验证的用户,不妨继续阅读这篇简短的文章,深入了解这款工具究竟有何奥妙。
什么是 TTL 命令行工具?
根据其在 GitHub 上的官方页面介绍,TTL 的简要描述如下:
TTL 是一款超越了 Traceroute 功能的网络诊断工具:它提供了 MTU 检测、NAT
检测、路由抖动告警、IX(互联网交换点)识别等诸多功能。
尽管上述描述较为简短,但其开发者进一步详细阐述了该工具所集成的各项特性与功能,具体如下:
- 它具备持续、快速的路由监控能力,并提供详尽的跳跃点统计数据。
- 它支持同时处理多个目标:能够一次性追踪多个目的地。
- 新增 Traceroute Paris/Dublin 模式:通过多流探测技术,用于枚举 ECMP 路由路径。
- 新增 ECMP 分类功能:能够区分基于“流”(Flow)还是基于“数据包”(Packet)的负载均衡模式。
- 新增路径 MTU 发现功能:利用二分查找算法,探测在不发生分片(fragmentation)的前提下所允许的最大数据包大小。
- 提供 NAT 检测功能:能够识别 NAT 设备何时对源端口进行了重写(修改)。
- 提供路由波动检测功能:针对预示着路由不稳定性的路径变更发出告警。
- 包含高级信息增强功能:支持 ASN(自治系统编号)检测、GeoIP 地理位置查询、反向 DNS 解析以及
IX(互联网交换点)信息查询(基于 PeeringDB 数据)。 - 支持通过 ICMP 扩展字段检测 MPLS 标签信息。
- 支持 ICMP、UDP 和 TCP 协议的探测(Polling),并具备自动检测能力。
- 拥有出色的用户界面(UI):支持主题切换、微图(Sparklines)展示以及会话数据导出功能。
- 提供更新通知功能:当有新版本发布时,会在应用程序界面中显示横幅提示。
- 具备可编程性:支持将输出报告导出为 JSON、CSV 或纯文本格式。
更多参见其官网。
在 Ubuntu、Debian 或其衍生版上的安装与测试
如果您使用的是 Ubuntu 或 Debian 发行版,或是它们的任何衍生版本,您可以通过执行以下步骤轻松测试 TTL:
1)下载、校验并安装:ttl-x86_64-unknown-linux-musl.tar.gz / ttl-aarch64-unknown-linux-gnu.tar.gz
curl -LO https://github.com/lance0/ttl/releases/latest/download/ttl-x86_64-unknown-linux-musl.tar.gz
curl -LO https://github.com/lance0/ttl/releases/latest/download/SHA256SUMS
sha256sum -c SHA256SUMS --ignore-missing # macOS 用户请使用:shasum -a 256 -c
tar xzf ttl-*.tar.gz && sudo mv ttl /usr/local/bin/
您也可以采用以下方式进行安装:
git clone https://github.com/lance0/ttl
cd ttl && cargo build --release
sudo cp target/release/ttl /usr/local/bin/
或者,如果上述方法不奏效,您可以尝试:
curl -fsSL https://raw.githubusercontent.com/lance0/ttl/master/install.sh | sh
此外,在某些情况下,安装完成后可能需要(或建议)运行以下命令,因为原始套接字(raw sockets)操作需要提升权限:
2) 增加可移植性(使其能够在任何安装位置正常运行)
sudo setcap cap_net_raw+ep $(which ttl)
完成上述步骤后,您可以通过多种方式来执行该程序:
3) 基本用法
ttl 8.8.8.8
sudo ttl 8.8.8.8
4) 可用选项
ttl -p udp google.com
ttl --flows 8 cloudflare.com
ttl --pmtud 1.1.1.1
ttl 8.8.8.8 1.1.1.1 9.9.9.9
ttl --resolve-all google.com
效果如下所示:


总结
综上所述,“TTL”是一款简单小巧的命令行工具,却非常实用且功能强大。对于那些需要频繁验证网络连接及在线资源可用性的用户而言,它无疑是 Traceroute 和 Ping 等命令的绝佳替代品。