查看服务器网络流量使用情况有多种方法,可根据需求选择实时监控、历史统计、按进程/接口/协议分析等不同维度。以下是常用且实用的方法(适用于 Linux 服务器):
✅ 一、基础命令行工具(无需安装,系统自带)
1. iftop —— 实时按连接/进程查看流量(类似 top)
sudo iftop # 默认监控 eth0,显示实时连接的IP、端口、带宽
sudo iftop -P # 显示端口号
sudo iftop -f "port 80" # 过滤特定端口(如HTTP)
sudo iftop -n # 不解析域名(加快响应)
💡 提示:需
sudo权限;若未安装,用apt install iftop(Debian/Ubuntu)或yum install iftop(CentOS/RHEL)。
2. nethogs —— 按进程实时监控流量(最直观查哪个程序在“吃”带宽)
sudo nethogs # 默认监控所有网卡
sudo nethogs eth0 # 指定网卡
sudo nethogs -t # 显示时间戳
✅ 优势:直接显示 PID、程序名、发送/接收速率,适合排查异常进程(如X_X、备份、爬虫)。
3. ip -s link 或 cat /proc/net/dev —— 查看各网卡累计收发字节数
ip -s link show eth0 # 简洁显示 eth0 的 rx/tx 总量(bytes/packets/errors)
# 或
cat /proc/net/dev | grep eth0
📌 可结合脚本计算速率(如每秒增量),适合写监控脚本。
4. ss -i 或 netstat -s —— 查看协议级统计(TCP/UDP 重传、丢包等)
ss -i state established | head -10 # 查看活跃连接的 TCP 信息(含 cwnd、rtt)
netstat -s | grep -A 5 "Tcp:" # TCP 协议统计摘要
✅ 二、进阶/可视化工具(需安装)
1. vnstat —— 轻量级长期流量统计(后台守护进程,断电不丢数据)
# 安装 & 初始化数据库(以 eth0 为例)
sudo apt install vnstat
sudo vnstat -u -i eth0 # 创建数据库
sudo systemctl enable vnstat && sudo systemctl start vnstat
# 查看统计
vnstat # 今日/本月汇总
vnstat -d # 按天查看
vnstat -h # 按小时查看(最近24h)
vnstat -l # 实时速率估算(非实时流,是平均值)
✅ 优势:低开销、支持图表导出、可集成到 Web(如
vnstati生成图片)。
2. bmon / slurm —— 终端图形化实时监控(支持多网卡、颜色/图表)
sudo apt install bmon
bmon -p eth0 # 启动交互式界面(支持缩放、排序、导出)
🎨 支持 ASCII 图形、峰值标记,适合运维值班查看。
3. iftop + tcpreplay 配合抓包分析(深度排错)
sudo tcpdump -i eth0 -w traffic.pcap port 443 & # 抓HTTPS流量
# 后续用 Wireshark 分析,或用 tshark 统计:
tshark -r traffic.pcap -qz io,phs
✅ 三、快速诊断技巧(排查异常流量)
| 场景 | 命令 |
|---|---|
| 哪个进程占带宽高? | sudo nethogs -t |
| 谁在连外部可疑IP? | sudo ss -tunp | grep ESTAB 或 sudo lsof -i -P -n |
| 是否有大量短连接/连接风暴? | watch -n1 'ss -s' (看 total 和 established 变化) |
| 网卡是否丢包/错误? | ip -s link show eth0 | grep -A 3 "errors|dropped" |
| DNS 请求是否异常? | sudo tcpdump -i lo port 53 -c 20(本地DNS) |
✅ 四、生产环境建议
- 🔹 日常巡检:
vnstat -d(看日流量趋势) +nethogs(突发时快速定位) - 🔹 告警集成:用
vnstat --oneline输出文本,配合脚本 + Prometheus + Grafana 实现可视化监控 - 🔹 安全审计:定期
ss -tulnp+netstat -tulnp检查监听端口,结合journalctl -u systemd-networkd查网络服务日志 - 🔹 容器环境:K8s 用
kubectl top pods/nodes;Docker 用docker stats或docker network inspect bridge
需要我帮你:
- ✅ 写一个自动检测流量突增并告警的 Bash 脚本?
- ✅ 配置
vnstat+Grafana可视化面板? - ✅ 分析
tcpdump抓包结果识别攻击行为? - ✅ Docker/Kubernetes 环境下的流量监控方案?
欢迎随时告诉我你的具体场景(如:CentOS 7 / Ubuntu 22.04 / 有无 root 权限 / 是否容器化 / 关注入站还是出站),我可以给出定制化命令和配置 👇
云小栈