游乐游手机版
首页/系统平台/文章详情

Linux实时网速与带宽占用查看工具推荐

时间:2026-06-14 07:46
查实时网速用nload最省心,查哪个进程在吃带宽用nethogs最准,查连接级流量(如谁连了80端口)用iftop最合适;三者定位不同、互补共存,常需同时运行交叉验证。 开门见山,直接说结论:想要快速查看实时网速,nload 是最省心的选择;想要揪出是哪个进程在疯狂占用带宽,nethogs 最为精准
查实时网速用nload最省心,查哪个进程在吃带宽用nethogs最准,查连接级流量(如谁连了80端口)用iftop最合适;三者定位不同、互补共存,常需同时运行交叉验证。

linux查看实时网速和带宽占用 常用工具推荐

开门见山,直接说结论:想要快速查看实时网速,nload 是最省心的选择;想要揪出是哪个进程在疯狂占用带宽,nethogs 最为精准;而想要看清连接级别的流量细节,例如谁在连接80端口,iftop 则最为合适。这三款工具定位各不相同,非但不冲突,在实际排查网络问题时,常常需要同时开启它们,进行交叉验证。

为什么不用 iftop 查进程带宽

许多人会误用 iftop 来查找进程,这是一个常见的陷阱。iftop 的核心功能是展示每个 socket 连接(IP+端口)的流量,但它并不会直接告诉你这个连接属于哪个进程。即使你加上 -P-p 参数,它也只是进行端口解析,并不会去查询 /proc 文件系统来关联进程。因此,当你看到某个 IP:45678 的连接占满了带宽时,你依然无法立刻判断这是 curl 在下载,还是某个 python3 app.py 在后台发送数据包。

一个典型的错误现象是:使用 iftop -n 看到了高流量连接,但用 ps aux | grep :45678 却无法搜到对应的进程。这可能是因为端口已经释放,或者进程的命令行里根本没有暴露端口信息。

真正能够将进程和网络连接关联起来的工具是 nethogs。它的原理是直接读取 /proc//fd//proc//net/tcp 等内核信息,天然支持按进程聚合流量。

从性能影响来看,两者也有区别:iftop 依赖 libpcap 抓包,如果开启混杂模式(-p),会轻微增加 CPU 开销;而 nethogs 通过轮询 /proc 获取数据,开销通常更小,但它无法捕获 UDP 碎片或内核模块直连的流量。

nload 的图表和单位容易误解

nload 使用起来很简单,但它的图表和单位设置也容易让人产生误解。它默认显示的是「当前瞬时速率」(单位是 KB/s 或 MB/s),而不是累计流量。问题在于,它那动态的柱状图纵轴没有刻度标识,新手很容易把柱子的瞬时峰值误认为是“总带宽”或“带宽上限”。实际上,它只反映采样时刻的吞吐量。

另外,nload 默认的采样刷新周期大约是 500 毫秒,这对于 HTTP/2 多路复用这类突发性的短连接流量可能不够敏感,图形上可能捕捉不到瞬间的峰值。

有几个关键参数可以帮你调整视图:nload -u M eth0 可以强制将单位固定为 MB/s,避免单位自动切换带来的困惑;nload -t 1000 则可以把刷新间隔设为 1 秒,让图形变化更平滑,避免视觉上的剧烈抖动。

还有一个容易踩的坑:在虚拟机或容器里直接运行 nload,看到的可能是宿主机物理网卡的聚合流量,而不是该容器实际的出口流量。正确的做法是进入容器的网络命名空间执行:nsenter -t -n nload

兼容性上也需要注意,某些嵌入式 Linux 发行版(比如 OpenWrt)默认可能没有编译 curses 库支持,运行 nload 会报错 error opening terminal。这种情况下,可以换用 vnstat -l 来查看近一分钟的滚动流量统计。

nethogs 启动必须加设备名才可靠

使用 nethogs 时,一个必须牢记的要点是:启动时最好显式指定网卡设备名。如果不带参数运行,它会自动选择第一个非回环接口(通常是 eth0)。但如果你的系统有多个活跃网卡(比如 ens33docker0、各种 vethxxx 虚拟设备),它很可能监控错了对象,导致出现“明明在传输大文件却看不到任何流量”的诡异情况。

正确的做法是,先用 ip -br a 命令确认你要监控的目标接口名称,然后显式指定:nethogs ens33

在监控 Docker 容器流量时,情况会更特殊一些。你不能只盯着 docker0 这个网桥,因为容器出向的流量经过 iptables 的 SNAT 规则后,源 IP 会变成宿主机的 IP。此时,更有效的方法是在宿主机上用 nethogs 监控物理网卡(如 eth0),看到高流量进程的 PID 后,再结合 docker top 命令来核对,看该 PID 是否属于某个容器。

权限问题也不容忽视。nethogs 需要 CAP_NET_RAW 能力,普通用户执行通常会报错 Unable to create socket,所以必须加上 sudo。但注意,在某些内核版本下,使用 sudo nethogs -p(启用混杂模式)可能会触发 SELinux 的拒绝策略,这时可能需要临时将 SELinux 设置为 permissive 模式才能正常运行。

说到底,真正让网络流量监控变得复杂的,往往不是工具本身,而是现代 Linux 网络栈的多层抽象带来的视角差。内核收发包、iptables 规则修改、cgroup 带宽限制、容器的网络命名空间隔离……这些层层叠叠的机制,都可能让一个看似简单的“网速”数字在不同层面表现出不一致。因此,千万别迷信单个工具的输出结果,交叉验证才是运维工作中的常态

来源:https://www.php.cn/faq/2355558.html
上一篇Linux系统修改LANG变量设置语言环境解决中文乱码 下一篇Win11开启多任务分屏布局 提升大屏窗口管理效率
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
微软详解Win11时间点还原 默认每24小时创建恢复点
系统平台 · 2026-06-30

微软详解Win11时间点还原 默认每24小时创建恢复点

微软今日推送了最新的 6 月可选更新,并发布博客详细解读了 Win11 全新的“时间点还原”(Point-in-time restore)功能——这一功能本质上是对系统恢复体验的一次全面升级,旨在让用户更轻松地应对电脑故障。 微软表示,面向 Windows 11 客户端用户的“时间点还原”功能现已正

Win11 26H1六月可选更新KB5095091 优化放大镜改善装机体验
系统平台 · 2026-06-30

Win11 26H1六月可选更新KB5095091 优化放大镜改善装机体验

微软今天推送了Windows 11 26H1设备的6月可选更新KB5095091,安装完成后系统版本号会升级到Build 28000 2340。值得一提的是,这次更新并非面向所有设备,而是专门为搭载高通骁龙X2系列芯片的机型准备的——包括骁龙X2 Plus、X2 Elite和X2 Elite Ext

Win11六月可选更新KB5095093修复回收站弹窗异常
系统平台 · 2026-06-30

Win11六月可选更新KB5095093修复回收站弹窗异常

微软已悄然推送Windows 11六月可选更新,编号KB5095093。本次更新覆盖两个版本:24H2用户安装后版本号升级至Build 26100 8737,而25H2用户则更新至Build 26200 8737。 本次更新并非仅是小修小补,而是带来了多项实质性新功能。下面我们就来详细解析这些更新内

苹果macOS 27 Beta2封堵Siri AI跳过候补名单漏洞
系统平台 · 2026-06-30

苹果macOS 27 Beta2封堵Siri AI跳过候补名单漏洞

科技媒体 Cult of Mac 昨日(6月23日)发布博文指出,苹果在 macOS 27 Beta 2 更新中悄然封堵了一个此前可用的后门——用户曾能通过一条终端命令绕过候补名单,直接启用新版 Siri AI,如今这一方法已失效。 简要回顾一下:在 macOS 27 Beta 1 阶段,只需在 M

微软加速Win11 25H2推送 覆盖所有符合条件家用PC
系统平台 · 2026-06-30

微软加速Win11 25H2推送 覆盖所有符合条件家用PC

近日(6月23日),科技媒体 Windows Latest 发布了一则值得关注的动态:微软已进一步扩大 Windows 11 25H2 的推送范围,所有满足硬件要求、且不受 IT 部门管理的家庭版和专业版设备,现在均可顺利接收本次更新。 此次升级有一个显著特点——采用“启用包”(eKB)方式进行推送