在服务器上查看流量使用情况,可以通过多种方式实现,具体取决于你的操作系统(如 Linux)和你希望查看的粒度(实时流量、历史流量、按进程/用户/接口统计等)。以下是一些常用的命令和工具:
一、Linux 系统常用命令
1. iftop(实时查看网络流量)
显示实时的网络连接和带宽使用情况,按连接排序。
sudo iftop
- 安装(Ubuntu/Debian):
sudo apt install iftop - 安装(CentOS/RHEL):
sudo yum install iftop
提示:
iftop类似于top,但用于网络流量。
2. nethogs(按进程查看流量)
可以查看每个进程占用的带宽。
sudo nethogs
- 安装(Ubuntu/Debian):
sudo apt install nethogs - 安装(CentOS/RHEL):
sudo yum install nethogs
适合排查哪个程序在大量上传/下载。
3. sar(系统活动报告,包含历史流量)
来自 sysstat 包,可以查看历史网络流量。
# 查看网络接口流量(每秒)
sar -n DEV 1 5
输出示例:
IFACE rxpck/s txpck/s rxkB/s txkB/s
eth0 10.23 8.45 1.2 0.8
-
rxkB/s:接收速度(KB/s) -
txkB/s:发送速度(KB/s) -
安装
sysstat:sudo apt install sysstat # Debian/Ubuntu sudo yum install sysstat # CentOS/RHEL
sar数据默认会每天记录,可查看历史趋势。
4. ip 或 ifconfig 查看接口总流量
查看网卡累计收发数据量(自启动以来):
ip -s link show eth0
或(旧版):
ifconfig eth0
输出中会看到:
RX bytes:123456789 (117.7 MiB)
TX bytes:987654321 (941.9 MiB)
注意:这是累计值,不是实时速率。
5. vnstat(轻量级流量监控,支持历史记录)
专用于监控网络流量并记录历史数据。
# 安装
sudo apt install vnstat
# 查看统计
vnstat
vnstat -d # 按天
vnstat -m # 按月
vnstat -h # 按小时
vnstat后台运行,自动记录,适合长期监控。
6. netstat 或 ss 查看连接状态
虽然不直接显示流量,但可查看活跃连接:
netstat -tulnp
# 或
ss -tulnp
结合其他工具判断异常连接。
二、图形化/高级工具(可选)
| 工具 | 说明 |
|---|---|
| iftop / nethogs / vnstat | 命令行,简单高效 |
| ntopng | Web 界面,功能强大,可监控整个网络 |
| Cacti / Zabbix / Prometheus + node_exporter | 企业级监控系统,可图形化展示流量趋势 |
三、云服务器注意事项
如果你使用的是阿里云、腾讯云、AWS 等云服务器:
- 可直接在 云控制台 查看带宽和流量监控图表。
- 通常提供公网出入带宽的实时和历史数据。
- 注意区分:按带宽计费 vs 按流量计费
四、快速检查脚本示例
查看当前网卡实时速率(每秒):
watch -n 1 'cat /proc/net/dev | grep eth0'
输出示例:
eth0: 123456789 123456 0 0 0 0 0 0 987654321 98765 0 0 0 0 0 0
- 第二列是接收字节数(RX)
- 第十列是发送字节数(TX)
总结:推荐组合
| 需求 | 推荐工具 |
|---|---|
| 实时流量监控 | iftop |
| 查看哪个进程在传数据 | nethogs |
| 长期流量统计 | vnstat |
| 历史性能分析 | sar |
| 云服务器 | 控制台 + 命令行辅助 |
如有具体系统或需求(如 CentOS、需要监控某个端口),可进一步细化方案。
CDNK博客