谁在占满你的带宽bandwhich 终端带宽监控快速上手指南【免费下载链接】bandwhichTerminal bandwidth utilization tool项目地址: https://gitcode.com/gh_mirrors/ba/bandwhich网速突然慢下来你ifstat一看总吞吐被拉满却完全不知道是哪个进程、哪条连接、连向哪台远程主机造成的流量。这种看得见速度、看不见源头的困境就是终端带宽监控工具 bandwhich 想解决的事它在同一个 TUI 界面里把进程 → 连接 → 远程 IP三层信息同时摆出来让你直接在终端里指认流量大户。一句话定位三个视角看同一份流量bandwhich 是一个运行在终端里的带宽监控工具按进程、连接、远程 IP/主机名三个维度展示当前网络接口的实时利用率。它和只显示总速度的小挂件的区别在于同一份流量三种粒度哪个进程在传、具体是哪条 TCP/UDP 连接、流量最终去了哪个远程地址一屏对齐方便交叉比对自动反查主机名通过反向 DNS 尽力把 IP 解析成可读的域名也能顺手展示 DNS 查询本身-s参数可交互、可脚本化空格键暂停画面定格Tab 键调整表格布局窗口变小时自动收缩显示-r还能输出机器友好的 raw 格式方便管道处理安装与快速上手30 秒看到进程级带宽监控表各发行版基本都有现成包最短路径是 Homebrew 或包管理器也可以走 Rust 生态brew install bandwhich # 或 cargo install bandwhich sudo bandwhich抓包需要提权Linux 下可以用sudo运行也可以一次性setcap授权后普通用户直接跑Windows 上可能要先装 npcap 才能抓包。各平台的完整安装方式见 INSTALL.md。运行后你会看到四块内容顶部是当前接口的总上传/下载速率下方三张表分别是进程表含连接数和速率、连接表本地端口 → 远程地址标注 TCP/UDP、远程地址表解析后的主机名与速率。画面会随流量实时滚动按SPACE可以随时暂停定格。核心功能拆解按你的排查习惯选粒度进程级3 秒定位流量大户第一张表按进程聚合列出 Connections 数和 Rate Up/Down。像 demo 里那样浏览器chrome占了多少、bandwhich自身占了多少一目了然。配合-p只显示进程表小窗口排查时更清爽。连接级看清每一条 TCP/UDP 通道连接表把流量拆到本地地址:端口 ↔ 远程地址:端口 (协议)这一级适合回答到底是这个进程的哪条连接在传。比如某个进程下有 20 条连接是单条打满还是几十条并发这里的 Rate Up/Down 列会直接给出答案。-c可以只显示这张表。远程 IP 级按目标地址归并带宽远程地址表按对端聚合并用反向 DNS 把 IP 翻译成主机名尽力而为。排查流量到底去了哪些服务时这张表最有用-a可单独显示-n可跳过 DNS 解析直接看 IP。展示与控制总量、单位、DNS 查询-t, --total-utilization显示累计总量而非瞬时速率适合看一段时间内谁吃得最多-u切换计量单位bin/si × bytes/bits-s显示 DNS 查询-d指定 DNS 服务器-i指定监听接口如eth0-r输出 raw 格式供脚本解析三分钟原理它怎么把流量关联到进程打个比方bandwhich 像站在小区大门口的快递管理员。它先数包裹——嗅探指定网卡、记录每个 IP 数据包的大小来统计吞吐再对号入座——在 Linux 上查/proc文件系统、macOS 上跑lsof、Windows 上走 WinApi把这条连接是哪个进程打开的查出来于是包裹流量就能记到住户进程头上。主机名则是在后台尽力反查得到的附加信息。抓包与进程关联的具体逻辑集中在 src/network/ 目录。谁适合用 bandwhich什么时候用如果你要排查的是某段时间带宽异常它比只看总速度的工具好使得多服务器带宽被占满时定位进程、确认某个服务是不是在偷偷往大量主机发数据、或者单纯想知道家里哪个应用在吃流量。需要说明的是项目目前处于被动维护状态——只修关键问题、不开发新特性但核心功能完整可用。下次带宽告警时先在终端里敲一条sudo bandwhich大概率用不了一分钟就能锁定元凶。【免费下载链接】bandwhichTerminal bandwidth utilization tool项目地址: https://gitcode.com/gh_mirrors/ba/bandwhich创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?