在使用 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

这类信息通常出现在命令行工具如 nloadbmonvnstat -l 等生成的流量图中。很多用户对于 Ttl(Total)字段的含义产生疑问:这个 94.09 GB 的总流量是从什么时候开始统计的?是否包含上传与下载?

本文将对这些问题逐一解答。


Ttl 是什么?

Ttl 是 Total 的缩写,表示累计总流量。这个数值通常是接收(下载)+ 发送(上传)流量的总和,而非单向流量。

也就是说:

Ttl = RX(接收)+ TX(发送)

Ttl 的时间范围来自哪里?

大多数实时监控工具默认从程序启动时或系统启动时开始统计。例如:

  • nloadbmon 等工具通常读取内核接口的统计数据,来源于 /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)。
  • 若需要区分进程流量,可结合 nethogsiftop 使用。

Leave a Reply

Your email address will not be published. Required fields are marked *