Linux服务器网络流量分析入门:用3款工具看清流量去向
为什么你需要学会分析服务器网络流量
刚接手 Linux 服务器时,经常遇到网站变慢、带宽跑满、被 DDoS 攻击等场景。
如果没有流量分析能力,只能凭感觉重启或找服务商。Linux服务器网络流量分析 能帮你快速定位是哪个进程、哪个 IP 在消耗带宽,是运维基本功。
本文面向纯新手,
用三种最常用的命令行工具 iftop、
nload、
vnstat 演示完整操作,
你只需要一台 Linux 服务器(CentOS 7+ 或 Ubuntu 18.04+)和 root 权限即可。
准备环境与安装工具
登录服务器后先更新软件源,然后分别安装这三个工具。
每个工具用途不同:iftop 看实时连接 IP 和流量,nload 看总带宽曲线,vnstat 保存历史流量。
# CentOS / RHEL
sudo yum install epel-release -y
sudo yum install iftop nload vnstat -y
# Ubuntu / Debian
sudo apt update
sudo apt install iftop nload vnstat -y
安装完成后启动 vnstat 后台服务(默认不自动启动):
sudo systemctl enable vnstat
sudo systemctl start vnstat
如果 eth0 不是你的网卡名,用 ip a 查看实际名称,后续命令中替换即可。
实时监控流量:iftop 和 nload
使用 iftop 查看 IP 级流量
直接在终端执行 iftop,默认监听 eth0。
如果网卡不是 eth0,指定网卡名:
sudo iftop -i ens33 # 替换为你的网卡名
界面说明:
- 上面一行显示本机 IP,下面两列是目标 IP。
=>和<=表示出站和入站方向。- 右侧数字显示当前速率(2s、10s、40s 平均)。
- 按
t键切换显示格式,按q退出。
重点:如果看到某个陌生 IP 持续占用大量流量,那十有八九是异常请求,建议 ss -tnp | grep <目标IP> 查对应进程。
使用 nload 看总带宽曲线
nload 以字符条形式展示总入站/出站流量,更直观:
nload ens33 # 替换网卡
从左到右分别是:当前速率、平均速率、最小速率、最大速率,底部有动态柱状图。
按 ← → 切换网卡,按 q 退出。
历史流量统计:vnstat
vnstat 在后台持续收集流量,适合查看一天、一周、一个月的数据。
安装启动后大约等 5 分钟才会生成第一条记录。
常用命令:
# 查看实时统计(需要等至少一个采样周期)
vnstat -l
# 查看今日流量
vnstat -d
# 查看本月流量
vnstat -m
# 指定网卡
vnstat -i ens33 -d
输出示例:
ens33 / daily
day rx | tx | total | avg. rate
------------------------------+-------------+-------------+---------------
2025-03-21 1.23 GiB | 456.78 MiB | 1.68 GiB | 164.75 kbit/s
------------------------------+-------------+-------------+---------------
避坑指南与高频问题
权限不足:iftop 和 nload 需要 root 或 sudo 才能抓包,否则会报错 interface lookup failed。
网卡名不对:云服务器常见 eth0、ens33、enp0s3,用 ip a 或 ls /sys/class/net/ 确认。
vnstat 没有数据:刚启动后 5 分钟内无输出,正常。
如果长时间空白,检查服务状态 systemctl status vnstat 和日志。
流量一直很高但看不到明显连接:试试 nethogs(需额外安装),按进程排序:sudo nethogs ens33。
如何定位哪个进程在发流量?:结合 iftop 看到的 IP,用 ss -tnp | grep 目标IP 找到 PID,再用 ps aux | grep PID 看进程名。
效果验证:对比两个工具观察同一时段
打开两个 SSH 窗口,一个运行 sudo iftop -i ens33,另一个运行 nload ens33。
然后在本机用 curl 下载一个大文件或 ping 一个外网 IP,观察两个工具是否同步显示流量上升。
如果看到数据变化一致,说明工具工作正常。
再通过 vnstat -d 查看今日累计流量,应该能对应上刚才的测试数据。
记住:iftop 侧重 IP 级对话,nload 侧重总带宽感受,vnstat 侧重长期趋势。
日常排查先用 iftop 找嫌疑 IP,再用 ss 确认进程。
如果你正在处理 Linux服务器网络流量分析,建议先按本文步骤完整执行,再根据自己的环境做微调;
遇到异常时优先回看避坑和高频问题部分。