当前位置: 首页 > news >正文

iftop、nethogs 和 nload:Linux 服务器网络流量实时监控工具介绍

iftop、nethogs 和 nload:Linux 服务器网络流量实时监控工具介绍

在管理 Linux 服务器时,网络流量异常是最常见的问题之一。带宽被耗尽、某个进程疯狂上传、服务器响应变慢——这些情况都需要快速定位根源。本文介绍四款互补的网络监控工具:iftopnethogsnloadvnstat,覆盖从实时连接级别到历史统计的全方位监控需求。


服务器配置

网络监控工具本身对硬件要求极低,任意 Linux 服务器即可运行。如果你还没有服务器,推荐使用雨云服务器 rainyun-com,1 核 1GB 机型完全够用。注册填优惠码2026off领 5 折。


四款工具概览

工具监控维度核心用途
iftop按连接(src/dst IP 对)查看哪个远端 IP 占用带宽
nethogs按进程(PID)查看哪个程序在消耗流量
nload按网卡总量简洁的实时吞吐量显示
vnstat历史统计每日/月度流量汇总

实战思路:带宽告急 → 先用nload确认总量 → 再用iftop找出占用带宽的远端 IP → 最后用nethogs锁定是哪个进程在发包。


一键安装

aptupdateaptinstalliftop nethogs nload vnstat-y

安装完毕后,各工具均可直接通过命令行调用。


iftop:连接级带宽监控

基础用法

# 监控指定网卡iftop-ieth0# 只统计特定子网的流量iftop-ieth0-F192.168.1.0/24# 不做 DNS 反解(避免因 DNS 查询导致界面卡顿)iftop-ieth0-n

解读输出界面

iftop 的主界面分三列:

12.5Kb 25.0Kb 37.5Kb 50.0Kb 62.5Kb └──────────────────────────────────────────────────────────────────────────┘ 203.0.113.5:443 => 1.23Mb 987Kb 876Kb your-server:45678 <= 456Kb 234Kb 189Kb
  • 右侧三列数字分别是2 秒均值、10 秒均值、40 秒均值(峰值到稳定值的过渡)
  • =>表示发送(upload),<=表示接收(download)
  • 底部 TX / RX / TOTAL 汇总全部连接

常用快捷键

按键功能
t切换显示模式:仅发送 / 仅接收 / 合计
s按源地址过滤
d按目的地址过滤
p切换显示端口号
n切换 DNS 解析开关
P暂停/继续刷新
q退出

实战场景:找出外联的大流量 IP

iftop-ieth0-n-p

打开端口显示后,可以立刻看到哪个远端 IP 的哪个端口在大量传输数据,结合业务判断是否正常。


nethogs:进程级带宽监控

iftop 告诉你"哪个 IP",nethogs 告诉你"哪个程序"。

基础用法

# 监控 eth0 上各进程的流量nethogs eth0# 同时监控多块网卡nethogs eth0 eth1# 设置刷新间隔为 2 秒(默认 1 秒)nethogs-d2eth0

输出解读

NetHogs version 0.8.7 PID USER PROGRAM DEV SENT RECEIVED 23451 www-data /usr/sbin/nginx eth0 1.234 MB/s 0.023 MB/s 18932 root /usr/bin/rsync eth0 0.000 MB/s 4.567 MB/s 1 root /sbin/init eth0 0.000 MB/s 0.000 MB/s
  • SENT是该进程的上传速率
  • RECEIVED是该进程的下载速率

非交互模式(适合脚本)

# -t 参数输出纯文本,适合 grep 和日志记录nethogs-t-d5eth02>/dev/null|grep-v"^$"

快捷键

按键功能
m切换单位(KB/s ↔ MB/s ↔ B/s ↔ 总量)
r按接收量排序
s按发送量排序
q退出

实战:找出疯狂上传的进程

nethogs-d2eth0

s按发送量排序,如果某个你不认识的进程排在第一位,立即用ps aux | grep PID查看详情,必要时kill掉。


nload:网卡级吞吐量可视化

nload 是最直观的工具,用 ASCII 柱状图展示当前网卡的进出流量,适合快速确认"现在带宽用到多少了"。

基础用法

# 监控默认网卡nload# 指定网卡nload eth0# 同时显示多块网卡(用空格分隔)nload eth0 lo

界面说明

Device eth0 [192.168.1.100] (1/2): ================================================================================ Incoming: Outgoing: #### #### ######## ########## ############## ############## #################### #################### ########################## Curr: 2.34 MBit/s Curr: 156.23 KBit/s Avg: 1.89 MBit/s Avg: 143.12 KBit/s Min: 0.12 MBit/s Min: 12.34 KBit/s Max: 5.67 MBit/s Max: 234.56 KBit/s Ttl: 1.23 GByte Ttl: 234.56 MByte

快捷键

按键功能
/切换网卡
F2打开设置(调整显示单位等)
q退出

调整显示单位

F2设置页面,可以将纵轴单位切换为 Kbit/s、Mbit/s 或 Gbit/s,方便对照服务器的带宽上限(例如 100Mbps 带宽的服务器,Mbit/s 是最直观的单位)。


vnstat:历史流量统计

前三款工具都是"实时"的,vnstat 则专注于历史统计,记录每小时、每天、每月的流量总量,非常适合:

  • 按月统计用量,避免超出流量包
  • 对比不同时段的流量基线
  • 生成流量报告

初始化与启动

# 为网卡创建数据库vnstat-ieth0# 启动 vnstat 守护进程(开机自启)systemctlenablevnstat systemctl start vnstat

常用查询命令

# 查看概览(默认显示)vnstat# 按小时统计(今天)vnstat-h# 按天统计(最近30天)vnstat-d# 按月统计vnstat-m# 实时流量(类似 nload)vnstat-l-ieth0# 导出为 JSON(适合脚本处理)vnstat--json

输出示例

eth0 / monthly month rx | tx | total | avg. rate ------------------------+-------------+-------------+--------------- 2026-03 23.45 GiB | 12.34 GiB | 35.79 GiB | 114.52 kbit/s 2026-04 31.20 GiB | 15.67 GiB | 46.87 GiB | 147.89 kbit/s 2026-05 18.90 GiB | 9.45 GiB | 28.35 GiB | 132.14 kbit/s ------------------------+-------------+-------------+--------------- estimated 35.12 GiB | 17.56 GiB | 52.68 GiB |

综合实战:带宽问题排查流程

假设你的服务器突然变慢,SSH 连接也有些卡顿,按以下步骤排查:

第一步:确认带宽使用总量

nload eth0

如果接近或达到带宽上限(比如 100Mbps 的服务器显示 Curr: 95 MBit/s),说明确实存在带宽瓶颈。

第二步:找出高流量的远端 IP

iftop-ieth0-n-p

观察哪些远端 IP 占用最多带宽,判断是否是正常业务(如 CDN 回源、备份传输)。

第三步:锁定是哪个进程

nethogs eth0

s排序,找出发包最多的进程,记录 PID。

第四步:查看进程详情

psaux|grep<PID>ls-l/proc/<PID>/exe

第五步:查看历史趋势

vnstat-h

对比今天各小时的流量,判断异常是否持续。


总结

这四款工具构成了一套完整的网络流量监控体系:

  • nload— 快速感知整体带宽压力
  • iftop— 精确到连接粒度,找出"谁在占带宽"
  • nethogs— 精确到进程粒度,找出"什么程序在占带宽"
  • vnstat— 历史流量统计,掌握长期趋势

如果你正在寻找一台用于运维实验的云服务器,雨云服务器 rainyun-com的 1 核 1GB 机型即可流畅运行所有上述工具,注册填优惠码2026off领 5 折,非常适合学习和测试使用。

http://www.jsqmd.com/news/926807/

相关文章:

  • Rime小狼毫LaTeX方案深度调优:从能用,到好用,再到顺手(附完整配置文件)
  • 深度解析DeepSeek-LLM-7B-Base:2万亿tokens训练的革命性语言模型究竟有多强?
  • 别再问我H5怎么调用摄像头了!一个Vue3组件搞定拍照上传(附完整代码)
  • 意义行为哲学论纲——基于意义行为原生论、自感痕迹论与DOS框架
  • 保姆级教程:在Ubuntu 22.04上为KVM配置AMD SEV机密虚拟机(附完整命令)
  • 别再只把Consul当注册中心了:SpringBoot项目实战,解锁它的KV存储和健康检查
  • 河南武陟养殖场实景三维模型(3DTiles格式,开箱即用Cesium)
  • 从论文到产品:MiniCPM-V-4_5-GPTQ背后的混合思维模式与RLAIF-V技术
  • 别再只盯着升力了!聊聊固定翼无人机设计中那些容易被忽略的‘阻力’细节与优化实战
  • 从‘按月’到‘按天’:实战演示如何在线演进Iceberg表的分区策略而不重写数据
  • 附论:自感、痕迹与自由——对若干关键质疑的系统回应
  • Flutter Riverpod 状态管理详解:下一代状态管理方案
  • Yuzu模拟器版本选择终极指南:5分钟找到最适合你的完美版本
  • Granite-4.1-30B API接口详解:开发者必备的完整参考手册
  • 实战复盘:用Frida绕过Android APK签名校验的三种思路(附完整JS脚本)
  • 从实验数据到汇报图表:手把手教你用Matlab双纵轴展示传感器信号(附完整代码)
  • 手把手复现NLP期末「综合题」:用Python+最大熵/BERT实战命名实体识别(NER)
  • AI Skill:AI技能
  • 保姆级教程:在华大HC32L136上驱动SPI屏,用DMA发送数据的完整配置流程
  • GPT-2 Large微调终极指南:如何用自定义数据训练你的专属语言模型 [特殊字符]
  • 意义发生的层级问题——DOS框架与三位思想家的划界对话
  • 别再乱点U盘里的.exe了!手把手教你清除那个伪装成Usb Disk的顽固病毒
  • 鸣潮智能游戏管家:让AI成为你的最佳游戏伙伴
  • 如何10分钟上手Nanobrowser:免费AI浏览器自动化终极指南
  • PyTorch DDP实战:用4张3090显卡跑通Stable Diffusion训练,效率提升实测
  • HY-Embodied-0.5-X与开源模型的对比分析:性能优势与适用场景
  • Rime小狼毫输入法进阶玩法:用Lua滤镜打造你的专属联想词库(附完整配置包)
  • 别再只用VMware自带了!手把手教你给虚拟机开个VNC“后门”,远程调试真方便
  • 新手避坑指南:VMware安装Ubuntu时,关于磁盘分区和ISO镜像选择的5个关键决定
  • 深度学习炼丹时GPU突然‘罢工’?从Error 79到温度日志的完整避坑指南