在使用 Linux 进行网络流量监控时,常常会看到如下格式的输出图表:
Curr: 355.08 kBit/s
Avg: 357.26 kBit/s
Min: 3.38 kBit/s
Max: 59.61 MBit/s
Ttl: 94.09 GByte
这类信息通常出现在命令行工具如 nload、bmon、vnstat -l 等生成的流量图中。很多用户对于 Ttl(Total)字段的含义产生疑问:这个 94.09 GB 的总流量是从什么时候开始统计的?是否包含上传与下载?
本文将对这些问题逐一解答。
Ttl 是什么?
Ttl 是 Total 的缩写,表示累计总流量。这个数值通常是接收(下载)+ 发送(上传)流量的总和,而非单向流量。
也就是说:
Ttl = RX(接收)+ TX(发送)
Ttl 的时间范围来自哪里?
大多数实时监控工具默认从程序启动时或系统启动时开始统计。例如:
nload和bmon等工具通常读取内核接口的统计数据,来源于/proc/net/dev;- 这个统计文件从系统启动时开始累积,除非手动重置;
- 所以 Ttl 往往表示“自上次系统重启以来的累计网络流量”。
例如:
cat /proc/net/dev
输出内容中会看到:
eth0: 85437292 bytes received, 123845903 bytes transmitted
这说明接口 eth0 自系统启动以来,已接收约 85MB,发送约 124MB,总和约为 209MB。
如何验证是否为系统启动以来的流量?
可以通过以下命令查看系统启动时间:
uptime -s
或者查看运行时间:
uptime
再结合 Ttl 的流量值,基本可以确认是否为启动以来的统计。例如,若系统已运行 3 天,而 Ttl 显示 94 GB,且平均速率在几百 kBit/s 到几十 MBit/s 波动,这在逻辑上是合理的。
是否包含双向流量?
是的,绝大多数工具的 Ttl 值都包含上传和下载的双向流量。以下是几个常见工具的行为:
| 工具 / 命令 | Ttl 是否包含双向 | 补充说明 |
|---|---|---|
nload | ✅ 是 | 左侧显示接收,右侧显示发送;总量为两者合计 |
vnstat -l | ✅ 是 | 实时累计流量(接收 + 发送) |
bmon | ✅ 是 | 单接口分别显示 TX/RX,可自行相加 |
iftop | ❌ 否 | 默认仅显示接收流量;需配置额外参数 |
ip -s link | ✅ 是 | 显示接口的接收/发送字节总数 |
总结
Ttl表示网络接口累计的双向流量(上传 + 下载)。- 在不重启系统或网卡的前提下,Ttl 是从系统启动时开始累积的。
- 若需要更精细的历史流量记录,可使用
vnstat的每日、每小时模式(vnstat -d,vnstat -h)。 - 若需要区分进程流量,可结合
nethogs或iftop使用。